def BlackSholesFormula(IsCall, S, K, Vol, Texp, Rd, Rf):
x1 = d1(S, K, Vol, Texp, Rd, Rf )
x2 = d2(S, K, Vol, Texp, Rd, Rf )
y = pnorm(x1)
res = {}
if IsCall:
res['Price'] = S * exp(-Rf*Texp)* x1 - K * exp(-Rd*Texp) * x2
res['Delta'] = x1 * exp(-Rf*Texp)
else:
res['Price'] = K * exp(-Rd*Texp) * (1 - x2) - S * exp(-Rf*Texp) * (1 - x1)
res['Delta'] = (x1 - 1) * exp(-Rf*Texp)
res['Vega'] = S * sqrt(Texp) * y * exp(-Rf*Texp)
res['Gamma'] = y * exp(-Rf*Texp)/(S*Vol* sqrt(Texp))
return res
评论列表
文章目录