Definition of an implied volatility
From the previous chapter, we know that for a set of input variables—S (the present stock price), X (the exercise price), T (the maturity date in years), r (the continuously compounded risk-free rate), and sigma (the volatility of the stock, that is, the annualized standard deviation of its returns)—we could estimate the price of a call option based on the Black-Scholes-Merton option model. Recall that to price a European call option, we have the following Python code of five lines:
from scipy import log,exp,sqrt,stats def bs_call(S,X,T,r,sigma): d1=(log(S/X)+(r+sigma*sigma/2.)*T)/(sigma*sqrt(T)) d2 = d1-sigma*sqrt(T) return S*stats.norm.cdf(d1)-X*exp(-r*T)*stats.norm.cdf(d2)
After entering a set of five values, we can estimate the call price as follows:
>>>bs_call(40,40,0.5,0.05,0.25) 3.3040017284767735
On the other hand, if we know S, X, T, r, and c, how can we estimate sigma? Here, sigma is our implied volatility....