在QuantLib Python中使用GarmanKohlagen过程为外汇期权定价

2024-09-28 03:19:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用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


Tags: datedtoptionprintqlrfforeigncalculation
1条回答
网友
1楼 · 发布于 2024-09-28 03:19:19

提供t和x值。有点奇怪的是,t或x的任何值的输出都是相同的。例如

print('Diffusion:', gkp.diffusion(1, 1))
print('Diffusion:', gkp.diffusion(2, 2))

相关问题 更多 >

    热门问题