December 2014
Intermediate to advanced
606 pages
13h 46m
English
Example B-1 contains a class definition for a European call option in the Black-Scholes-Merton (1973) model (cf. Chapter 3, and in particular Example 3-1).
## Valuation of European call options in Black-Scholes-Merton Model# incl. Vega function and implied volatility estimation# -- class-based implementation# bsm_option_class.py#frommathimportlog,sqrt,expfromscipyimportstatsclasscall_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 : floatreturn present value of call optionvega : floatreturn Vega of call optionimp_vol: floatreturn 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.cdf(d2,0.0,1.0))returnvaluedefvega(self):''' Returns Vega of ...
Read now
Unlock full access