簡體   English   中英

使用 Heston model 的 QuantLib-python 定價障礙選項

[英]QuantLib-python pricing barrier option using Heston model

我最近開始探索 python 的 QuantLib 選項定價庫,並且遇到了一個我似乎不明白的錯誤。 基本上,我正在嘗試使用 Heston model 為 Up&Out Barrier 選項定價。 我編寫的代碼取自網上的示例,並根據我的具體情況進行了調整。 本質上,問題是當我運行下面的代碼時,我得到一個錯誤,我認為該錯誤是在代碼的最后一行觸發的,即 European_option.NPV () function

*** RuntimeError: 錯誤的參數類型

有人可以解釋一下我做錯了什么嗎?

# option inputs
maturity_date = ql.Date(30, 6, 2020)
spot_price = 969.74
strike_price = 1000
volatility = 0.20
dividend_rate = 0.0
option_type = ql.Option.Call
risk_free_rate = 0.0016
day_count = ql.Actual365Fixed()
calculation_date = ql.Date(26, 6, 2020)
ql.Settings.instance().evaluationDate = calculation_date

# construct the option payoff
european_option = ql.BarrierOption(ql.Barrier.UpOut, Barrier, Rebate,
                      ql.PlainVanillaPayoff(option_type, strike_price),
                      ql.EuropeanExercise(maturity_date))

# set the Heston parameters
v0 = volatility*volatility # spot variance
kappa = 0.1
theta = v0
hsigma = 0.1
rho = -0.75
spot_handle = ql.QuoteHandle(ql.SimpleQuote(spot_price))

# construct the Heston process
flat_ts = ql.YieldTermStructureHandle(ql.FlatForward(calculation_date,
                                                     risk_free_rate, day_count))

dividend_yield = ql.YieldTermStructureHandle(ql.FlatForward(calculation_date,
                                                            dividend_rate, day_count))
heston_process = ql.HestonProcess(flat_ts, dividend_yield,
                                  spot_handle, v0, kappa,
                                  theta, hsigma, rho)

# run the pricing engine
engine = ql.AnalyticHestonEngine(ql.HestonModel(heston_process),0.01, 1000)
european_option.setPricingEngine(engine)

h_price = european_option.NPV()

問題是 AnalyticHestonEngine 無法為障礙期權定價。

在此處查看https://www.quantlib.org/reference/group__barrierengines.html以獲取障礙期權定價引擎列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM