隐含波动率的机器学习

2023-02-21 16:54发布

今天一起来看一篇还蛮有意思的金融+机器学习的文章,发表在SIGKDD2021,题目为Incorporating Prior Financial Domain K
1条回答
1楼 · 2023-02-21 17:31.采纳回答

今天一起来看一篇还蛮有意思的金融+机器学习的文章,发表在SIGKDD2021,题目为Incorporating Prior Financial Domain Knowledge into Neural Networks for Implied Volatility Surface Prediction

本文主要聚焦于摘要中提出的几个使机器学习适用于金融领域的改进:

  1. 新的激活函数以涵盖波动率微笑
  2. 无套利机会,边界和渐近梯度都涵盖在损失函数中(值得一提的是同样研究隐含波动率曲面的Neurips 2020文章Deep Smoothing of the Implied Volatility Surface也通过加入软约束来保证无套利机会,本文最后会把两种机制加以对比)
  3. 模型的训练也加入了先验的金融知识

文章表明作者提出的模型超越了基准模型,同时也表现出了符合金融理论相关的结果。接下来我们就一起来看看吧。


基本模型设定

模型输入: log forward moneyness, time to maturity

模型输出:隐含波动率

m 是log forward moneyness, m=\log \left\{K / F_{t, T}\right\} ,其中 K 是strike price, F_{t, T} 是到期日为 T 的资产在时刻 t 的价格。

\tau 是距离到期日时间,定义为 \tau=\frac{T-t}{A} ,其中 A 是年化因子

本文假定隐含波动率 v=v(m,\tau)


无套利约束

为了保证不存在套利机会,隐含波动率 v 需要满足如下的条件

  1. 对任意(m, \tau) \in \mathbb{R} \times \mathbb{R}^{+}, v(m, \tau)>0
  2. 对 \tau>0 , v(m, \tau) 关于 m 二阶可微
  3. 对 m \in \mathbb{R} ,要求 \sqrt{\tau} v(m, \tau) 在 \mathbb{R}^{+} 上关于 \tau 单调增。由一阶导数大于零可得, v(m, \tau)+2 \tau \partial_{\tau} v(m, \tau) \geq 0
  4. 对任意的 (m, \tau) \in \mathbb{R} \times \mathbb{R}^{+}, v(m, \tau)>0 , \left[1-\frac{m \partial_{m} v(m, \tau)}{v(m, \tau)}\right]^{2}-\frac{1}{4}\left[v(m, \tau) \tau \partial_{m} v(m, \tau)\right]^{2}+\tau v(m, \tau) \partial_{m m } v(m, \tau) \geq 0
  5. 定义 d_{\pm}(m, \tau)=-\frac{m}{\sqrt{\tau} v(m, \tau)} \pm \frac{1}{2} \sqrt{\tau} v(m, \tau) , \tau>0 ,要求满足 \lim _{m \rightarrow+\infty} d_{+}(m, \tau)=-\infty

这五条约束来自文献[1],接下来我们来看看,作者如何将上面的约束转化为损失函数,从而将金融的先验知识代入训练。

对于上面的第三条单调性约束 v(m, \tau)+2 \tau \partial_{\tau} v(m, \tau) \geq 0 ,作者定义 a(m, \tau)=v(m, \tau)+2 \tau \partial_{\tau} v(m, \tau) ,提出了如下形式的损失函数 \ell_{1}=\sum_{p=1}^{P} \sum_{q=1}^{Q} \max \left\{0,-a\left(m_{p}, \tau_{q}\right)\right\} ,其中 P,Q 分别对应moneyness和距离到期日时间的样本数。若 a(m, \tau)<0 ,则该损失非负,从而起到促使 a(m, \tau) 往大于等于 0 的方向走的约束效果。

对于第四条无蝴蝶套利的约束,同样的定义左边需要大于等于 0 的部分为 b(m, \tau) ,构建类似的惩罚 \ell_{2}=\sum_{p=1}^{P} \sum_{q=1}^{Q} \max \left\{0,-b\left(m_{p}, \tau_{q}\right)\right\} ,促使 b(m, \tau) 往非负的方向前进,促进约束的实现。


边界条件

第一部分中提出的隐含波动率模型,除了需要满足无套利约束外,还要满足下面两条边界约束。其中 d_{\pm}(m, \tau) 的定义同上, n(\cdot), N(\cdot) 分别代表标准正态分布的密度函数和累积分布函数。

  1. 如果 m\geq 0 ,那么 N\left(d_{-}(m, \tau)\right)-\sqrt{\tau} \partial_{m} v(m, \tau) n\left(d_{-}(m, \tau)\right) \geq 0
  2. 如果 m< 0 ,那么 N\left(-d_{-}(m, \tau)\right)+\sqrt{\tau} \partial_{m} v(m, \tau) n\left(d_{-}(m, \tau)\right) \geq 0

这两条边界约束来自于文献[2]。

同样的,这里的约束跟之前的约束一样,也为非负约束。定义公式左边需要非负的部分为 c_{1}(m, \tau), c_{2}(m, \tau) ,可以得到如下的损失函数 \ell_{3}=\sum_{p_{1}=1}^{P_{1}} \sum_{q=1}^{Q} \max \left\{0,-c_{1}\left(m_{p_{1}}, \tau_{q}\right)\right\}+\sum_{p_{2}=1}^{P_{2}} \sum_{q=1}^{Q} \max \left\{0,-c_{2}\left(m_{p_{2}}, \tau_{q}\right)\right\}

因为 c_{1},c_{2} 中moneyness的取值范围不同,故需要分开抽样。其中 P_{1} 为不同的非负moneyness样本数, P_{2} 为不同的负的moneyness样本数,Q 为不同的距离到期日时间样本数。

最后还有一条渐近斜率的约束:如果 \tau>0 ,则 2|m|-v^{2}(m, \tau) \tau>0

这一条约束来自于文献[3]。一样的处理办法,定义不等号左端的部分为 g(m, \tau) ,获得如下损失函数 \ell_{4}=\sum_{p=1}^{P} \sum_{q=1}^{Q} \max \left\{0,-\left(g\left(m_{p}, \tau_{q}\right)-\epsilon\right)\right\}

此处跟前面不同的地方在于,这里要求严格大于 0 ,故在损失函数中插入了一个很小的整数 \epsilon 来保证 g(m, \tau) 将会被优化到 0 的上方,而不是停留在 0 。


TBD

下面再写一下这几个损失函数具体是怎么计算的,以及最后的实验结果反映这样的优化方式是否能保证约束的成立。

未完待续..


参考文献

[1] Gulisashvili, A. Analytically Tractable Stochastic Stock Price Models. Springer, 2012

[2] Carr, P., and Wu, L. Stochastic skew in currency options. Journal of Financial Economics 86, 1 (2007), 213–247

[3] Lee, R. The moment formula for implied volatility at extreme strikes. Mathematical Finance 14, 3 (2004), 469–480.