https://mp.weixin.qq.com/s/N12GzvYCOpcqDlkaei5moA
本期遴选论文
来源:SSRN
标题:Deep Order Flow Imbalance: Extracting Alpha at Multiple Horizons from the Limit Order Book
作者:Petter N. Kolm、Jeremy Turiel、Nicholas Westray
作者基于原始订单数据,构建了订单状态指标、订单流指标,并结合深度学习模型对Nasdaq的115股票构建高频价格预测模型,并对比了多个模型的效果。核心观点如下:
-
订单流的原始数据,可以直接作为深度学习模型的输入,而不需要过多的进行特征工程。
-
模型预测的效果与股票交易活跃度有关,成交活跃的股票,模型的整体效果更优。
-
在多预测时间段的测试中,模型整体对于短期价格的变动有优秀的预测能力,模型效果的最优表现出现在K=10附近。
订单数据
订单簿如下图所示,按照价格优先时间优先的原则将买单卖单做如下排列,
针对订单簿的数据,作者定义了以下指标:订单簿状态LOB,订单流OF,订单流失衡(OFI)
1、Order Book States(LOB)
其中 为前十档的卖价, 为前十档的卖量, 为前十档的买价格, 为前十档的买量。
2、Bid-Ask Order Flow(OF)
3、Order Flow Imbalance(OFI)
预测模型
作者测试了多种模型,对比各种模型的预测效果。
实证
因变量
因变量是股票在未来一段时间用mid-price计算的收益率,对于每一时刻t,模型预测了多个未来horizon的收益率,用向量r表示:
其中r为mid-price return, 表示两个tick之间中间价计算的收益率。该模型是采用长度为w的滚动窗口进行计算,对于所有模型,w统一设置为100:
如表6所示,由于每个股票的成交活跃度都不一样,EBAY和MSFT每天Order Book的活跃度(Updates)差了三个数量级。所以作者针对每个股票设定各自的时间划分间隔(stock specific time increment):
其中分子是一个交易日交易时间的毫秒数,N表示这个股票每天非零的mid-price returns的数量。那对于(14)中,具体的预测时间点为以下10个时间点:
各时间点的mid-price return为:
其中 表示时刻t的mid-price, 是为了考虑延迟,所以在时间t用的实际上是 的mid-price, 的取值是10毫秒。
自变量
作者测试了两种自变量的表现,分别是上式(1)的LOB和上式(4)的OF,对于所有自变量和因变量都Winsorize到0.5%和99.5%的区间,并转换为z-score。最终作者选取了纳斯达克上市的115只股票的订单数据作为训练样本。
对于每个测试时间段,模型评价采用以下方式:
其中 是模型的mean square error, 是基于测试时间段 r 的均值计算的mean square error,以此作为模型表现得基准。 大于0,说明模型的效果优于Benchmark。
模型设置
表2给出了所有模型的参数及设置,单个模型的训练时间在10-60分钟左右。
结果
短期预测效果对比
下图给出了各模型短期预测效果的对比,其中左边的自变量是OF,右边的自变量是LOB。X轴对应不同的预测horizon(如17表示,一共10个horizons);Y轴是根据18计算的模型表现,首先计算每个股票每个Horizon每天平均的 ,然后把所有股票的 平均就得到Y轴的值。可以看出:
-
基于LOB的模型,处理CNN=LSTM跑赢基准,其他模型都没法从LOB中学习到有效信息。由于OF只是基于LOB计算的衍生指标,给定足够数据的情况下,理论上深度学习的模型(如LSTM等)应该能够学到如基于OF模型一样的效果,但是整体而言,基于OF(左边)的模型表现更好。
-
模型的效果在X轴等于2(k=10)时,达到了上限,也就是说深度学习模型整体对短期的价格变动有更好的预测结果。
预测准确度比较
基于OF和LOB两种输入,分别测试的6个模型,所以一共有12个组合。每天对12个模型的不同horizon的表现进行排序(1-12名),然后把所有测试时间段,每个模型每天的排序计算平均值,由下图表示:
-
OF模型的整体排名要由于LOB
-
含有LSTM部分的模型的表现要由于ARX和MLP
-
CNN-LSTM的表现很稳定,在各horizon得排在第一
预测表现和股票其他特征之前的关系
作者针对OF作为输入的LSTM模型,研究模型表现与股票特征之间的关系,计算出每个模型测试时间的 均值,并计算对 与股票各特征做回归,包括Tick Size, LogUpdates, LogTrades, LogPriceChg, Log(Updates/PriceChg。可以发现模型的表现与TickSize和Updates正相关,与PriceChg负相关。其中PriceChg表示单位时间价格变动的次数,一定程度反映了股票的波动性。
具体的截面回归的结果如下表所示:
长期预测能力
以上的结果都限定在k=10以内(等式17中的k),对于更长时间的预测效果,如下图所示,可以看出模型的表现在x轴等于2的时候达到最大,当x超过2,模型的效果持续下降。
总结
-
订单流的原始数据,可以直接作为深度学习模型的输入,而不需要过多的进行特征工程。
-
模型预测的效果与股票交易活跃度有关,成交活跃的股票,模型的整体效果更优。
-
在多预测时间段的测试中,模型整体对于短期价格的变动有优秀的预测能力,模型效果的最优表现出现在K=10附近。
参考文献
Zhang, Zihao, Stefan Zohren, and Stephen Roberts (2018). \BDLOB: Bayesian Deep Convolutional Neural Networks For Limit Order Books". In: arXiv preprint arXiv:1811.10041.