def black_scholes_numba(stockPrice, optionStrike,
optionYears, Riskfree, Volatility):
callResult = np.empty_like(stockPrice)
putResult = np.empty_like(stockPrice)
S = stockPrice
X = optionStrike
T = optionYears
R = Riskfree
V = Volatility
for i in range(len(S)):
sqrtT = math.sqrt(T[i])
d1 = (math.log(S[i] / X[i]) + (R + 0.5 * V * V) * T[i]) / (V * sqrtT)
d2 = d1 - V * sqrtT
cndd1 = cnd_numba(d1)
cndd2 = cnd_numba(d2)
expRT = math.exp((-1. * R) * T[i])
callResult[i] = (S[i] * cndd1 - X[i] * expRT * cndd2)
putResult[i] = (X[i] * expRT * (1.0 - cndd2) - S[i] * (1.0 - cndd1))
return callResult, putResult
评论列表
文章目录