我没有跟上形势的变化。我在看下面的Black-Scholes公式:https://aaronschlegel.me/black-scholes-formula-python.html。似乎有一些重构是在SymPy中完成的,所以这不再有效。如何更改以下内容以使其再次工作:
import sympy as sy
import sympy.statistics as systats
def euro_put_sym(S, K, T, r, sigma):
#S: spot price
#K: strike price
#T: time to maturity
#r: interest rate
#sigma: volatility of underlying asset
N = systats.Normal(0.0, 1.0)
d1 = (sy.ln(S / K) + (r + 0.5 * sigma ** 2) * T) / (sigma * sy.sqrt(T))
d2 = (sy.ln(S / K) + (r - 0.5 * sigma ** 2) * T) / (sigma * sy.sqrt(T))
put = (K * sy.exp(-r * T) * N.cdf(-d2) - S * N.cdf(-d1))
return put
The errors I get are:
No name 'statistics' in module 'sympy'
Unable to import 'sympy.statistics'
特别是,Normal
和cdf
现在该怎么做?你知道吗
我认为这是从旧的统计数据包到新的统计数据包的正确转换。你们怎么看?你知道吗
symphy中的统计模块名为
stats
。 另外,Normal
接受3个参数。下面是一个简单的使用示例:如需进一步参考,请参阅Sympy Stats docs和Normal Distribution docs。你知道吗
对于你的情况,让我来解释一下你应该做什么。你知道吗
现在
输出为
这是预期产出吗?你知道吗
我通过您提供的链接中的示例进行了测试,结果是匹配的。你知道吗
相关问题 更多 >
编程相关推荐