主要内容

统计套利的机器学习III:训练、调优和预测

这个例子使用贝叶斯优化来调整算法交易模型中的超参数,由交易日结束时的回报监督。这是统计套利的机器学习系列相关例子的一部分机器学习的应用)。

加载lobvars.mat,纳斯达克证券INTC的预处理LOB数据集。

加载LOBVars

数据集包含每个订单的以下信息:到达时间T.(午夜秒),1级问价格Moask.,一级投标价格MOBid,反而使S.、失衡指数一世

这个示例包含几个支持函数,它们存储在金宝appmatlabroot / /金融/数据/ LOBSupportingFi金宝apples例子。要查看它们,请更改工作文件夹。

cd (fullfile (matlabroot,“例子”“金融”“数据”'lob金宝appsupportingfiles'));

交易策略

贸易矩阵问:包含未来价格变动的概率,给定当前和以前的状态rho.限价订单簿(LOB)不平衡指数一世和最新观察到的价格方向DS.

查看支持功能金宝apptradeOnQ.m,它实现了一个基于模式的简单交易策略问:

函数现金= tradeOnQ(数据、问、n, n)统计套利的机器学习%第二部分:特性工程和模型开发%的数据t = Data.t;MOBid = Data.MOBid;MOAsk = Data.MOAsk;%的国家(ρ,DS) = getStates(数据、n, n);%开始交易现金= 0;资产= 0;%Active Trading.T =长度(T);对于tt = 2: sn%交易蜱虫%get q行,当前状态的列索引行=ρ(tt-1) + n * (DS (tt-1) + 1);downColumn =ρ(tt);= rho(tt) + 2*n;如果预测向下价格移动,%如果q(行,下层)> 0.5 CASH = CASH + MOBID(TT);%出售assets = assets - 1;%如果预测价格向上移动elseifQ(行,upcolumn)> 0.5现金=现金 -  Moask(TT);%买资产=资产+ 1;结束结束交易结束百分比(平仓)如果资产> 0现金=现金+资产*MOBid(T);%出售elseif资产< 0现金=现金+资产*掩码(T);%买回结束

该算法使用来自问:在每个时间点做出交易决定。它说明了任何优化的机器学习算法的一般机制。

该策略寻求在出现套利机会时,利用每一个点位上的单股市场指令(触盘最佳报价)从预期的价格变化中获利。这种策略可以扩大到更大的交易量。利用条件概率得到的问:,这tradeOnQ函数执行以下操作之一:

  • 如果上向前价格变化的可能性大于0.5,则执行购买。

  • 如果期货价格向下变动的概率大于0.5,执行卖出。

在交易日结束时,该函数将触摸触摸的位置。

战略需要数据蜱虫倍T.和相应的市场订单出价并询价价格MOBidMoask.,分别。在实时交易中,数据由交易所提供。这个示例通过将历史样本划分为以下几个部分来评估策略训练(校准)和验证次级样本。验证子样本充当实时交易数据的代理。策略取决于问:,交易矩阵本身,您在制作多个封立的选择后估计。投入NN是在优化策略时要调优的超参数。

Hyperparameters

连续时间马尔可夫模型和由此产生的交易矩阵问:取决于四个超参数的值:

  • λ—计算不平衡度指标的权重参数一世

  • -用于平均的反向节拍数一世在平滑

  • 麻木- 用于分区平滑的箱数一世对离散化

  • DS.- 用于转换价格的前向蜱数S.到离散DS.

通常,这四个超参数都是可调的。然而,为了方便可视化,该示例仅通过调优来减少维数麻木N。示例:

  • 修复λ

  • 叶子麻木=N,在那里N可以自由变化

  • 使窗口长度相等=DS.=N,在那里N可以自由变化

这些限制对优化结果没有显著影响。优化算法在二维参数空间(NN)以获得最大交易回报的配置。

培训和验证数据

机器学习需要一个子样本来进行估计问:以及另一个子样本来评估超参数的选择。

指定一个断点将数据分离为训练和验证子样本。断点影响目标函数的求值,本质上是另一个超参数。但是,因为您没有对断点进行调优,所以它位于优化过程的外部。

BP =圆形((0.80)*长度(t));%使用80%的数据进行培训

在时间表中收集数据以传递给tradeOnQ

数据=时间表(t,s,i,mobid,moask);TDATA =数据(1:BP,:);%培训数据vdata =数据(bp + 1:结束,:);%验证数据

交叉验证

交叉验证描述了评估培训结果的各种技术(这里是计算问:)以预测可靠性将其推广到独立验证数据(这里是盈利交易)。交叉验证的目标是标记训练结果中的问题,如偏差和过拟合。在交易策略的背景下,过拟合是指的时间依赖性或非平稳性问:。作为问:随着时间的推移而变化,在预测未来的价格变动方面变得不太有效。关键的诊断问题是达到的程度问:在有限的交易地平线上变化,at是什么速率。

训练和验证数据就绪后,指定超参数并进行比较问:在两个副页中。支持功能金宝appmakeq.m.提供制作步骤问:

%设定特定的超参数n = 3;% I的垃圾箱数量n = 20;%窗口长度%比较Qsqt = makeq(tdata,n,n);qv = makeq(vdata,n,n);qtvdiff = qt  -  qv
QTVDiff =9×9.0.0070 0. 0.0175 -0.07-0.0175 -0.07-0.0110.0110.0110.0110 0.001110.2430 0.00110 0.011 0.0110 0.0110 0.0110 0.0110 0.0110 0.0980 0.0110 0.0110 0.0110 0.0948 0.0195 -0.1021 -0.1004 0.001110073 0.0168 0.0462 0.0180 0.011 0.0.0110.0.0254 -0.0512-0.0172 0.0417 0.0417 0.0417 0.0417 0.0417 0.0417 0.0417 0.0417 0.0417 0.0417 0.0417 0.04170.0009 -0.0671 0.0543 0.0089 0.0219 -0.0556 -0.0169 -0.0331 0.0013 0.0080 0.0112 0.1037 0.0221 0.0184 -0.1043 -0.0401 -0.0479 0.0006 0.0180 0.0295 0.0266 0.0066 0.0054 -0.0821 -0.0143 -0.0116 0.0555 0.0077 0.0062 0.0615 0.0050 0.0060 -0.0189 -0.0207 -0.0262 -0.04260.0157 0.0203 0.0735 0.0103 0.0090 -0.0788 -0.1216 -0.0453 0.0053 0.1113 0.0362

之间的差异QTQV看起来是次要的,尽管它们根据它们在矩阵中的位置而变化。识别交易效率低下,这是由一个矩阵给出交易线索(概率值> 0.5)而另一个没有给出交易线索的指数(市场状态)造成的。

不均匀性= (QT > 0.5 & QV < 0.5) | (QT < 0.5 & QV > 0.5)
不均匀性=9 x9逻辑阵列0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 00 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

具有给定的高参数设置的数据中没有显着的不均匀性。

不知道与同质性假设进行的严重程度先天的,并且只能从更全面的回溯测试中出现。如中所述,可以进行统计测试[4][5]为例。在实时交易中,滚动计算问:合适大小的过尾随训练数据可以提供最可靠的线索。这种方法承认了市场固有的非平稳性。

机器学习

机器学习指的是通过检测模式(例如,计算),以自动化的方式有效执行任务(例如,交易)的一般方法问:),并根据现有数据做出推论。通常,数据是动态的,大到需要专门的计算技术。评估过程——调优超参数来描述数据和直接执行任务——正在进行中。

除了处理大数据的挑战,评估复杂的、有时是黑箱的目标函数的过程也具有挑战性。目标函数监督超参数评估。交易策略通过第一次计算来评估超参数调整问:然后在评估(实时)子样本中进行交易。其目标是在适当约束条件下(NN)。这个目标是一个典型的“昂贵”目标函数。贝叶斯优化是一种适合于这样的目标函数的机器学习。它的主要优点之一是不需要昂贵的导数评估。为了实现贝叶斯优化,使用统计和机器学习工具箱™函数Bayesopt.

支持功能金宝appoptimizeTrading.m使用Bayesopt.优化交易策略tradeOnQ

函数结果= optimizeTrading (TData VData)%的优化变量n = optimizableVariable (“numBins”,[1 10],“类型”“整数”);N = optimizableVariable (“numTicks”, 50 [1],“类型”“整数”);%目标函数手柄f = @ (x) negativeCash (x, TData VData);%优化结果= Bayesopt(F,[N,N],“IsObjectiveDeterministic”,真的,'获取功能名称'“expected-improvement-plus”'maxobjectiveevaluations'25岁的'探索力'2,“详细”, 0);结束%优化替代替代%的目标(本地)函数(x,TData,VData) n = x. numbins;N = x.numTicks;%制作交易矩阵qQ = makeQ (TData, n, n);按季交易%现金= tradeOnQ (VData, Q, n, n);%客观价值损失=现金;结束% negativeCash

通过培训和验证数据来优化交易策略optimizeTrading

rng (0)%的再现性结果= optimizeTrading (TData VData);

估计的最低目标与最低观察到的目标(搜索是单调)一致。与基于衍生的算法不同,Bayesopt.不收敛。当它试图找到全局最小值时,Bayesopt.继续探索,直到它达到指定的迭代数量(25)。

通过参数获取最佳配置结果bestPoint

[校准,negReturn] = bestPoint(结果,“标准”“min-observed”
校准=1×2表numBins numTicks _______ ________ 3 24
negReturn = -7100

按照指示,每次勾选一次股票问:,使用最佳策略(NN) =(3,24)在交易日最后20%的交易中获得0.71美元的回报。修改交易量会影响收益。

另一个专为昂贵的目标设计的优化器是surrogateopt(全局优化工具箱)。它使用不同的搜索策略,可以根据目标更快地找到最优。支持功能金宝appoptimizeTrading2.m使用surrogateopt代替Bayesopt.优化交易策略tradeOnQ

rng (0)%的再现性results2 = optimizeTrading2 (TData VData)

results2 =1×23个24

surrogateopt与之一样Bayesopt.结果。该情节包含了关于搜索进度的信息,这是特定于surrogateopt算法。

计算问:通过将最佳超参数和整个数据集传递给makeQ

bestQ = makeQ(数据、3、24)
BESTQ =9×9.0.3933 0.1868 0.1268 0.5887 0.7722 0.6665 0.0180 0.0410 0.2068 0.5430 0.3490 0.2716 0.4447 0.6379 0.6518 0.0123 0.0131 0.0766 0.6197 0.3897 0.3090 0.3705 0.5954 0.6363 0.0098 0.0150 0.0547 0.1509 0.0440 0.0261 0.8217 0.8960 0.6908 0.0273 0.0601 0.2831 0.1900 0.0328 0.0280 0.7862 0.9415 0.8316 0.0238 0.0257 0.1404 0.2370 0.0441 0.0329 0.7391 0.92210.8745 0.0239 0.0338 0.0925 0.1306 0.0234 0.0101 0.7861 0.6566 0.4168 0.0833 0.3200 0.5731 0.1276 0.0169 0.0118 0.7242 0.6505 0.4712 0.1482 0.3326 0.5171 0.1766 0.0282 0.0186 0.7216 0.7696 0.6185 0.1018 0.2023 0.3629

贸易矩阵bestQ可以用作下一个交易日的起点。

总结

这个示例实现了前两个相关示例中开发的优化交易策略。可用数据被分成训练和验证的子样本,分别用来计算交易矩阵问:然后执行得到的交易算法。使用全局优化器在超参数设置空间内重复此过程Bayesopt.surrogateopt,两者都确定了一个能产生正收益的最优策略。该方法有许多可供进一步定制的选项。

参考文献

[1]公牛,亚当D。"高效全局优化算法的收敛速度。"机床学习研究(2011年11月):2879-904。

[2]鲁比索夫,安东·d·”使用限制令书不平衡的统计仲裁硕士论文,多伦多大学,2015年。

斯努克,贾斯珀,雨果·拉罗谢尔和瑞安·p·亚当斯"实用贝叶斯算法优化机器学习算法”。在神经信息处理系统的进展F. Pereira等编辑,2012年。

[4] Tan, Barış,和Kamil Yılmaz。时间依赖性和同质性的马尔科夫链检验:一种分析性和实证性的评估。欧洲运营研究杂志137年,没有。3(2002年3月):524-43。https://doi.org/10.1016/s0377 - 2217 (01) 00081 - 9

[5] Weißbach,拉斐尔和Ronja Walter。评级转换平稳性的似然比检验计量经济学杂志155,没有。2(2010年4月):188-94。https://doi.org/10.1016/j.jeconom.2009.10.016

相关的话题