【发布时间】:2021-02-03 23:22:42
【问题描述】:
我正在尝试使用 GaussianPathGenerator 和 Quantlib python 中的 HestonProcess 生成底层路径。但它给了我“RuntimeError: Boost assertion failed: px != 0”。
如果我用 BS 或 HullWhite 进程替换 Heston 进程,则路径生成良好。有谁知道为什么 Heston 不工作?
非常感谢您的帮助!
将 QuantLib 导入为 ql
today = ql.Date(21, 10, 2020)
daycount = ql.Actual360()
calendar = ql.TARGET()
r_ts = ql.YieldTermStructureHandle(ql.FlatForward(today, 0.02, daycount))
d_ts = ql.YieldTermStructureHandle(ql.FlatForward(today, 0.01, daycount))
v0, kappa, theta, sigma, rho = 0.03, 10, 0.03, 0.4, 0.3
hs_process = ql.HestonProcess(r_ts, d_ts, ql.QuoteHandle(ql.SimpleQuote(100)), v0, kappa, theta, sigma, rho)
bs_process = ql.BlackScholesProcess(ql.QuoteHandle(ql.SimpleQuote(100)), r_ts,
ql.BlackVolTermStructureHandle(ql.BlackConstantVol(0, calendar, 0.20, daycount)))
timestep = 50
length = 1.0
rng = ql.GaussianRandomSequenceGenerator(ql.UniformRandomSequenceGenerator(timestep, ql.UniformRandomGenerator()))
seq = ql.GaussianPathGenerator(hs_process, length, timestep, rng, False)
path_1 = seq.next()
RuntimeError Traceback (most recent call last)
<ipython-input-23-e8c522a62dd1> in <module>
----> 1 path1 = seq.next()
~\Anaconda3\lib\site-packages\QuantLib\QuantLib.py in next(self)
22328
22329 def next(self):
> 22330 return _QuantLib.GaussianPathGenerator_next(self)
22331
22332 def antithetic(self):
RuntimeError: Boost assertion failed: px != 0
【问题讨论】:
-
您能否提供minimal working example 以便我们提供帮助?
-
是的!它使用最小的工作示例进行了编辑。谢谢@Léonard
标签: python montecarlo quantlib