gpt4 book ai didi

c++ - 在市场给定的到期日和行使价之间插入行使价和到期日的价格/IV

转载 作者:行者123 更新时间:2023-11-28 05:18:30 27 4
gpt4 key购买 nike

我“到处”都找过了,但找不到。是否有示例说明如何使用 c++ Quantlib 来对具有合成行使价/到期日的期权价格进行插值?

例如,如果“今天”是 2017 年 2 月 6 日,我得到了 2017 年 2 月 17 日、2017 年 3 月 17 日、2017 年 4 月 14 日等到期日的 INTC 期权链的批量报价,为了有论点说,大众报价中的行使价从 15 到 45 以 5 美元的幅度递增,我计算了给定到期日/行使价/价格(使用某种模型)的市场大众报价的 IV 表面,如何插入一个 __synthetic__ 到期日和/或行使价,假设我想要“2017 年 4 月 5 日,39.33 行使价”选项的 IV 和价格?

我看到 QL 支持这些插值方法,但我不确定使用哪种方法或如何设置问题来运行求解器。

LinearInterpolation (1-D)
LogLinearInterpolation and LogCubicInterpolation (1-D)
BackwardFlatInterpolation (1-D)
ConvexMonotone (1-D)
CubicInterpolation (1-D)
ForwardFlatInterpolation (1-D)
SABRInterpolation (1-D)
BilinearInterpolation (2-D)
BicubicSpline (2-D)

[我可能不想在两者之间使用每周的插值。可能只有每月和每季度到期,因为我相信这些价格,尤其是到期时间越长。]

这是一个与引导 yield 曲线类似的问题,不同之处在于我们在 vol 表面上已知值之间的罢工/期限维度上引导到某个给定的粒度。同样有趣的是,我们可以通过模拟底层值(value)的变化而无需额外的工作来看到期权的 NPV 变化的新值 [因为市场数据存储在 Quote 实例中,因此可以在任何参数发生变化]并保持其他一切不变。图书馆不支持通过在罢工/男高音上转动刻度盘来支持相同类型的“模拟”,这似乎是一个遗漏。这也是一个逆问题,使用不同的维度。

我需要有/没有红利的美国和欧洲。

最佳答案

您创建一个黑色波动率表面并让它进行插值。

此时,您唯一可以执行此操作的类是 BlackVarianceSurface 类。它的构造函数采用行权日期 vector 、行权 vector 和相应波动率矩阵。矩阵必须是完整的,因此您需要为每个行使价和罢工价的组合引用一个波动率。默认情况下,它对方差使用双线性插值;可以通过调用更改方法

volSurface.setInterpolation<Bicubic>();

构建后。

构建表面后,您可以使用它来获取波动率和价格。要获得波动率,请询问表面:

Volatility v = volSurface.blackVol(exerciseDate, strike);

将在行使日期内插并执行并返回波动率。要获得价格,将整个表面传递给 Black-Scholes 过程的实例,将过程传递给引擎并使用后者为期权定价;引擎将为给定的练习和罢工选择正确的波动率。

关于c++ - 在市场给定的到期日和行使价之间插入行使价和到期日的价格/IV,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42046842/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com