Volatility Forecasting

Volatility Forecasting with Machine Learning and Intraday Commonality

Abstract

本文主要基于机器学习模型探索股票的commnality对预测realized volatility(RV)的影响,结论表明neural networks表现超过linear & tree-based models,该结论在直接用未出现在训练集里的股票测试时同样成立,这说明了股票之间共同的volatility mechanism。文中最后利用过去的日内波动率来预测未来一天的波动率,预测效果能够超过传统只用daily RVs的方式,并观察到了time-of-day效应对预测的影响。

Introduction

HFT往往需要robust并且准确地预测日内波动率,Engle and Sokalska指出intraday volatility的预测对风险管理,衍生品定价,量化策略设计都有重要用途。但是学界缺少相关研究,大部分都是从日频收益出发,结果很难推广到日内。

本文利用美国S&P 500指数中流动性最好的100支股票从2011年7月到2021年6月的高频数据,研究了non-parametric ML models在forecast multi-asset intraday volatility上的表现。首先提出了日内波动率commonality的衡量方式,实验结果说明commnality能够提升预测表现,同时NNs在样本外表现也超出linear & tree-based models。当应用训练集未出现的股票做测试时,同样获得较好的结果,降低了对复杂模型过拟合风险的担忧。最后,日内波动率能为预测未来daily波动率提供额外信息。

1. Related Literature

这里主要介绍了相关文献,第一部分是研究金融市场commonality,第二部分是预测daily波动率,但是预测日内波动率的关注较少,传统GARCH和SV 模型可能由于参数限制难以有效考虑金融变量间复杂且非线性的关系。第三,ML模型在金融领域潜力巨大,Bucci(2020)的研究表明RNNs在预测S&P指数月度波动率方面能够超过传统计量经济的模型。

2. Data and RV

数据使用从2011-07-01到2021-06-30 S&P index Top 100成分股的高频数据,筛选掉没有横跨整个周期的股票,剩余93支,板块分类如下:
Alt text1

$P_{i,t}$代表金融资产i的价格过程如下,$\mu_i$代表drift, $\sigma_{i,t}$代表顺势波动率,$W_t$是标准布朗运动

$$
dlogP_{i,t} = \mu_idt + \sigma_{i,t}dW_t
$$

股票i在(t-b, t]之间的theoretical integrated variance表示为:
$$
IV_{i,t}(b) = \int_{t-b}^{t}\sigma_{i,s}^2 ds
$$
b代表回看长度,如10min, 30min, 1天。每分钟的中间价对数收益为:

$$
r_{i,t}:=log(\frac{P_{i,t}}{P_{i,t-1}})
$$

日内收益的平方和是IV的一致估计量,RV可以被当作IV的proxy,在(t-b, t]之间,RV被定义为:

$$
RV_{i,t}^{(b)} := log[\sum_{s=t-b+1}^t r_{i,s}^2]
$$

overnight的信息不再考虑范围内。

数据处理部分对收益做了0.5%的winsorize。下图可以看到整个样本里在不同回看周期上pairwise correlation的直方图,具体计算方式应该是每两只股票的RV或者return计算一个correlation,然后看整体数值,也就是$C_{93}^2$个数据点的分布,比较有趣的是日内随着b(回看窗口)的拉长,RV相关性实际会先上升,但到1-day又会降低,这说明股票间日内波动率的关联可能比daily波动率更稳定。
Alt text2

Figure2可以看到股票之间整体的daily RV的时序变化,两边quantile的弥散度在欧洲主权债务危机,中国股灾,英国脱欧,中美贸易战和COVID-19期间都明显紧缩,Figure 3可以看到30min RV在一天内形成的rever-J-shape.
Alt text3
Alt text4

3. Commonality Estimation

这部分主要讲如何估计股票之间的commonality,主要利用如下回归的adjust $R^2$作为波动率commonality的衡量,其中$\mathrm{RV}_{M, t}^{(b)}$代表t时刻根据单个股票加权计算的市场波动率:

$$
\mathrm{RV}{M, t}^{(b)}=\frac{1}{N} \sum{i=1}^N \mathrm{RV}{i, t}^{(b)},\qquad \mathrm{RV}{i, t}^{(b)}=\alpha_i+\beta_i \mathrm{RV}{M, t}^{(b)}+\epsilon{i, t}
$$

每月进行一次回归并在股票之间取平均,可以从Figure4看到日内的commonality现象是要比daily的更显著且稳定的。Figure5中展示了在交易时段每半个小时的commonality的均值和标准差,与之前波动率的J-curve不同,这里接近收盘commonality会逐渐上升。

Alt text5
Alt text6

4. Methodology

本节尝试利用股票之间的commonality来预测跨资产的波动率,整体模型可以表示为:
$$
\begin{aligned}
\mathrm{RV}{i, t+b}^{(b)} & =F_i(\mathbf{u} ; \theta)+\epsilon{i, t+b} \
& =F_i\left(\mathrm{RV}{i, t}^{(b)}, \ldots, \mathrm{RV}{i, t-(p-1) b}^{(b)}, \mathrm{RV}{M, t}^{(b)}, \ldots, \mathrm{RV}{M, t-(p-1) b}^{(b)} ; \theta\right)+\epsilon_{i, t+b}
\end{aligned}
$$
注意这里$\mathrm{RV}_{i, t+b}^{(b)}$代表的是未来波动率。输入特征包含两部分,首先是individual features,包含单个股票截止t已知的信息,另外是market features,聚合了所有股票包含t时刻已知的信息,$\theta$代表模型参数。模型的细节这里就不赘述了,基本介绍了Seasonal ARIMA, HAR with diurnal effects, OLS, Lasso/Ridge, XGBoost, MLP以及LSTM。model训练部分会有三种方式,逐渐向其中加入cross asset和market information:

  1. Single: 只使用股票i的过去RVs作为特征
  2. Universal: 股票i还是只是本身特征,但是所有股票的数据放在一起训练
  3. Augmented: 股票i使用individual and market features,同样股票放在一起训练

评价指标使用:

  • Mean - squarederror (MSE): $\frac{1}{N} \sum_{i=1}^N \frac{1}{T_{\text {test }}} \sum_{t \in \mathcal{T}{\text {test }}}\left(\mathrm{RV}{i, t}^{(b)}-\widehat{\mathrm{RV}}_{i, t}^{(b)}\right)^2$,

  • Quasi - likelihood (QLIKE): $\frac{1}{N} \sum_{i=1}^N \frac{1}{T_{\text {trst }}} \sum_{t \in \mathcal{T}{\text {test }}}\left[\frac{\exp \left(\mathrm{RV}{i, t}^{(b)}\right)}{\exp \left(\widehat{\mathrm{RV}}{i, t}^{(b)}\right)}-\left(\mathrm{RV}{i, t}^{(b)}-\widehat{\mathrm{RV}}_{i, t}^{(b)}\right)-1\right]$

5. Experiments

数据集会被划分为: training, validation, testing,采用roll forward的方式,一年做validation, 一年testing,前面的日期都作为training。 MLP & NNs会采用ensemble的方式,即在不同的初始化条件下训练多个模型后做平均。

Alt text7

实验结果如上表所示,可以看到LSTM能够在日内表现最好,并且有着最高的realized utility。但是能看到,在1-day的时候,LASSO表现最好,这可能是因为数据稀缺性导致的(相比日内)。Figure 7中展示了不同trading shcema下QLIKEs的差值,即$\Delta QLIKE$, 该数值越负代表out of sample表现的提升,可以看到Universal相比Single的提升其实并不名贡献,但是加入市场的信息后提高了预测表现。

Alt text8

另外一个值得思考的问题是Universal或Augmented setting的提升是否与股票的commonality有联系。从Figure8可以看到,样本外的QLIKE是会随着股票commonality的提升而下降的。
Alt text9

为了测试拟合模型的generalization能力,可以使用训练集里未出现的股票来测试模型,记录模型使用的股票为raw stocks, 新的测试股票为unseen stocks, Figure 9展示了得到的结果,能够得出结论,在聚合的股票池上训练出的NN模型有更好的预测能力,为股票间的universal volatility mechanism提供了证据。

Alt text10

6. Forecasting Daily RVs with Intraday RVs

从前述实验可以看到预测日内波动率时股票之间commonality的作用,这里对利用日内波动率来预测未来的daily波动率进行研究,介绍了Intraday2Daily的方式,模型为:

$$
\mathrm{RV}{i, t+1}^{(d)}=F_i\left(\mathrm{RV}{i, t}^{(b)}, \ldots, \mathrm{RV}{i, t-(p-1) b}^{(b)}, \mathrm{RV}{i, t-1}^{(d)}, \ldots, \mathrm{RV}{i, t-(p-1)}^{(d)} ; \theta\right)+\epsilon{i, t+1}
$$
这里,前半部分$\left(\mathrm{RV}{i, t}^{(b)}, \ldots, \mathrm{RV}{i, t-(k-1) b}^{(b)}\right)$代表股票i在日内horizon b上的波动率,后半部分$\left(\mathrm{RV}{i, t-1}^{(d)}, \ldots, \mathrm{RV}{i, t-(p-1)}^{(d)}\right)$代表过去daily RVs,但是只截止到t-1天,相当于用t天的日内波动率和t-1之前的daily RVs来预测未来RVs。

Alt text11

Alt text12

与之前的实验结果相比,这种方式能够提升基准模型的表现,使用了日间信息的MLP模型达到了最好的表现,同时也达到了更高的utilities。最后,这里还研究了time-of-day的现象,使用上述实验最近一天OLS model intraday RV的系数进行比较,可以看到,接近收盘的波动率时最重要的指标,而非白天的波动模式。有数据表明收盘半小时会占据美国市场3000支股票2020年前几个月约23%的交易量,这也使得收盘前的波动率成为预测下一日波动率的重要信息。
Alt text13

这篇文章对股票的commonality进行了详细研究,并且比较了不同模型和setting下的表现, NN因为能够捕捉predictors之间的复杂关系而有着更好的表现,同时训练出的模型也展示出了一定的泛化能力,即在未见过的股票上进行预测。最后,利用日内波动率预测daily RVs有一定效果,同时也能观察到收盘前波动率的重要性。受限于篇幅,很多细节没有展开,大家感兴趣可以参考原文。

  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2022-2024 Zstar
  • Visitors: | Views:

请我喝杯咖啡吧~