【发布时间】:2021-05-12 18:45:50
【问题描述】:
我正在尝试使用 Python 中的 QuantLib 为欧洲外汇看涨期权定价。
国内无风险利率为0.16%。 国外无风险利率为-0.46%。 估值日期为 2020 年 6 月 30 日。 交易日期为 2020 年 6 月 25 日。 行权日期为 2020 年 7 月 2 日。 波动率为 9.935%。
行使价为 1.122,即期汇率为 1.12385。
代码如下:
import QuantLib as ql
calculation_date = ql.Date(30, 6, 2020)
ql.Settings.instance().evaluationDate = calculation_date
rf_domestic = 0.16 # in %
rf_foreign = -0.46 # in %
usd_domestic = ql.YieldTermStructureHandle(ql.FlatForward(calculation_date, rf_domestic/100, ql.ActualActual()))
eur_foreign = ql.YieldTermStructureHandle(ql.FlatForward(calculation_date, rf_foreign/100, ql.ActualActual()))
volTS = ql.BlackVolTermStructureHandle(ql.BlackConstantVol(ql.Date(30, 6, 2020), ql.NullCalendar(), 9.935/100, ql.ActualActual()))
gkp = ql.GarmanKohlagenProcess(ql.QuoteHandle(ql.SimpleQuote(1.122)), usd_domestic, eur_foreign, volTS)
engine = ql.BinomialVanillaEngine(gkp, 'crr', 1000)
option = ql.EuropeanOption(ql.PlainVanillaPayoff(ql.Option.Call, 1.12385), ql.EuropeanExercise(ql.Date(2, 7, 2020)))
option.setPricingEngine(engine)
print('NPV:', option.NPV())
print('Diffusion:', gkp.diffusion(t, x))
print('Drift:', gkp.drift(t, x))
print('Variance:', gkp.variance(t0, x0, dt))
print('Standard Deviation:', gkp.stdDeviation(t0, x0, dt))
print('Expectation:', gkp.expectation(t0, x0, dt))
对于漂移、扩散、方差、标准差和期望的计算(上面代码的最后5行),参数(t,x,dt,t0)应该是什么?
任何帮助将不胜感激。
谢谢, AA
【问题讨论】: