zoukankan      html  css  js  c++  java
  • 基于Order Book的深度学习模型:预测多时间段收益序列

    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.

  • 相关阅读:
    全局上下文(GO)
    重写数组拓展方法
    spring + spring mvc 使用 maven 编译出现异常
    shiro 配置注解后无权访问不进行页面跳转异常:org.apache.shiro.authz.UnauthorizedException: Subject does not have permission
    shiro 配置注解异常 java.lang.ClassNotFoundException: org.aspectj.util.PartialOrder$PartialComparable
    kaptcha 配置
    maven 安装 jar 包
    jsp 页面 javax.servlet.jsp.JspException cannot be resolved to a type 异常
    操作系统下载地址
    java file 常用操作
  • 原文地址:https://www.cnblogs.com/dhcn/p/15142021.html
Copyright © 2011-2022 走看看