December 2018
Beginner
720 pages
15h 32m
English
The following presents a class definition for a European call option in the Black-Scholes-Merton (1973) model. The class-based implementation is an alternative to the one based on functions as presented in “Python Script”:
## Valuation of European call options in Black-Scholes-Merton model# incl. vega function and implied volatility estimation# -- class-based implementation## Python for Finance, 2nd ed.# (c) Dr. Yves J. Hilpisch#frommathimportlog,sqrt,expfromscipyimportstatsclassbsm_call_option(object):''' Class for European call options in BSM model.Attributes==========S0: floatinitial stock/index levelK: floatstrike priceT: floatmaturity (in year fractions)r: floatconstant risk-free short ratesigma: floatvolatility factor in diffusion termMethods=======value: floatreturns the present value of call optionvega: floatreturns the vega of call optionimp_vol: floatreturns the implied volatility given option quote'''def__init__(self,S0,K,T,r,sigma):self.S0=float(S0)self.K=Kself.T=Tself.r=rself.sigma=sigmadefvalue(self):''' Returns option value.'''d1=((log(self.S0/self.K)+(self.r+0.5*self.sigma**2)*self.T)/(self.sigma*sqrt(self.T)))d2=((log(self.S0/self.K)+(self.r-0.5*self.sigma**2)*self.T)/(self.sigma*sqrt(self.T)))value=(self.S0*stats.norm.cdf(d1,0.0,1.0)-self.K*exp(-self.r*self.T)*stats.norm.
Read now
Unlock full access