system: [SYSTEM]

user: 4. 实证分析 4.1. 数据处理 一般情况当月的期货合约具有成交量大，市场流动性好，交易活跃的特点，在市场中把这样的合约称之为主力合约。本文选取的数据为中证500股指期货和上证50股指期货每分钟主力合约的行情数据。数据长度为一个自然年：2019年6月3日到2020年6月1日，共58，807条记录。其中70%的数据用于训练集，30%的数据用于测试集，即训练数据为2019年6月3日到2020年2月14日的价差数据，测试数据为2020年2月14日到2020年6月1日的价差数据。数据来源于万得数据库。 在数据进行训练之间本文需要对数据进行预处理，因为股指价格数据的量级比较大，不利于神经网络参数的更新。所以，首先对数据进行归一化处理，使得数据范围限制在(0，1)之间。 s p r e a d = s p r e a d − M I N ( s p r e a d ) M A X ( s p r e a d ) − M I N ( s p r e a d ) ， (5) 式中：MAX(spread)，MIN(spread)分别表示spread序列的最大值和最小值。 由于金融数据具有强噪声性，所以本文在训练模型之前对价差数据进行5分钟移动平均，以便去除噪声的干扰，使得本文的模型可以更好的把握数据的本质趋势。 m a 5 _ s p r e a d t = s p r e a d t − 4 + s p r e a d t − 3 + s p r e a d t − 2 + s p r e a d t − 1 + s p r e a d t 5 ， (6) 式中：spread t 表示第t时刻的股指价差。 4.2. 预测过程 关于建立CNN卷积神经网络预测模型的过程，本文通过控制变量法，分别讨论模型的卷积层数，卷积核个数、卷积核大小，样本长度4个超参数。基于本文中卷积神经网络是对时间序列进行处理，时间序列数据相对于图片数据复杂度较小，所以，关于卷积层层数本文分别讨论1层和2层，为了避免模型的随机性使得对模型的结果的分析产生误判，所以讨论卷积层层数的过程中，分别设置样本的长度为30和40作为对比。因为卷积核的大小和样本长度相关，所以根据样本长度的不同，设置卷积核的大小分别为3和5，当模型的卷积层设置为两层时，第二层的卷积核个数设置为第一层的二倍，分别为5和10。 图1. 基于不同卷积层层数的模型预测结果 图1中real表示 m a 5 _ s p r e a d t ，C1-S30、C1-S40和C2-S30、C2-S40分别为样本长度为30、40时卷积层层数分别为一、二时的价差预测值曲线。 Table 2 Predicted result of different convolution layer Conv_num Kernel_num Sample_size Kernel_size MSE R 2 r 1 5 30 3 0.00007 0.9908 0.9959 40 5 0.00014 0.98203 0.9920 2 (5， 10) 30 3 0.00019 0.9748 0.9880 40 5 0.00016 0.9796 0.9900 表2. 不同卷积层的预测结果 通过图1和上表2中的MSE、R 2 和r可以看出，卷积层为1层的结果普遍比卷积层为2层的结果好，其中当超参数设置为(1， 5， 30， 3)时，均方误差为0.00007，决定系数R 2 为0.9908，皮尔逊相关系数为0.9959，最接近于1，结果表明此种情况下，预测数据与真实数据偏离程度最低，趋势最相似，对数据变异的解释能力也最强。所以在接下来的讨论过程中模型的卷积层数设置为1层。 确定了模型的卷积层数后，然后分析卷积核的大小，在对卷积核的研究过程中，为了产生更明显的对比性，固定样本长度为70，分别设置卷积核的大小为3，5，9，13。 图2. 基于不同卷积核大小的模型预测结果 图2中real表示 m a 5 _ s p r e a d t 。kersize_3、kersize_5、kersize_9、kersize_13分别为卷积核大小为3、5、9、13的价差预测值曲线。 表3表示当卷积层数为1，卷积核个数为5，样本长度为70，卷积核大小分别为3、5、9、13时，卷积神经网络对价差的预测结果。 Table 3 Predicted results of different convolution kernel size Kernel_size MSE R 2 r 3 0.00016 0.9792 0.9918 5 0.00017 0.9784 0.9929 9 0.00024 0.9691 0.9876 13 0.00030 0.9608 0.9837 表3. 不同卷积核大小的预测结果 图3. 基于不同样本长度的模型预测结果 通过上图和上表可以看出当Kernel_size为3时，均方误差MSE和R 2 都是最优的，皮尔逊相关系数r也为0.9918。表示当卷积核大小设置为3时，与真实数据的偏离情况最低和与真实情况的趋势相似性最高。所以，在接下来的情况中卷积核的大小设置为3。 确定了卷积层的层数为1和卷积核的大小为3后，接下来讨论样本的长度问题，因为训练数据为股指期货的分钟级价差数据，根据其特点，当前的价差受长期时间序列的影响较弱，所以设置样本长度分别为20、30、40、70。 图3中real表示 m a 5 _ s p r e a d t ，sample_20、sample_30、sample_40、sample_70分别为样本长度为20、30、40、70的价差预测值曲线。 表4表示当卷积层数为1，卷积核数为5，卷积核大小为3，样本长度分别为20、30、40、70时，卷积神经网络的预测结果。 Table 4 Predicted results without sample lengt Sample_size MSE R 2 r 20 0.000029 0.9963 0.9983 30 0.000084 0.9893 0.9951 40 0.000060 0.9923 0.9968 70 0.00094 0.8799 0.9581 表4. 不同样本长度的预测结果 当样本长度为20时，均方误差MSE为0.000029，决定系数R 2 为0.9963，皮尔逊相关系数r为0.9983，当样本长度为70时，均方误差MSE为0.00094，决定系数R 2 为0.8799，皮尔逊相关系数r为0.9581，可以观测到模型的表现效果随着样本长度的增加而衰退。这种结果也再次证实了高频股指数据对于短期的时间序列更加具有依赖性。 最后本文来研究模型卷积核个数，通过前面的分析可以固定卷积层的层数，卷积核的大小，样本的长度。然后设置模型的卷积核的个数分别为5、8、16、32。 图4. 基于不同卷积核个数的模型预测结果 图4中real表示真实值。kernum_5、kernum_8、kernum_16、kernum_32、分别表示卷积核个数为5、8、16、32的价差预测值曲线。 表5表示当卷积层数为1，卷积核大小为3，样本长度为20，卷积核个数分别为5、8、16、32时，卷积神经网络的预测结果。 Table 5 Prediction results of different convolution kernel Kernel_num MSE R 2 r 5 0.000033 0.9957 0.9980 8 0.000034 0.9956 0.9979 16 0.000026 0.9965 0.9985 32 0.000023 0.9970 0.9985 表5. 不同卷积核个数的预测结果 通过实验分析可以得出当卷积核个数为32时，均方误差MSE为0.000023，决定系数R 2 为0.9970，皮尔逊相关系数r为0.9985。分别在4种情况中表现最好。 根据上面对模型中超参数的讨论，最后可以设置CNN卷积神经网络模型中卷积层的层数为1，卷积核的大小为3，样本长度为20，卷积核的个数设置32。为了对CNN模型的预测结果进行对比分析，本文采用国内应用较为广泛的SVM模型和XGboost模型，它们的预测结果分别如表6所示。 Table 6 Comparison between predicted value and actual valu Mean Std Min 25% 50% 75% Max 真实值 0.296950 0.088837 0.000000 0.241792 0.299989 0.343670 0.515797 CNN 0.298125 0.087845 0.016718 0.243841 0.301164 0.344240 0.512961 SVM 0.400073 0.069181 0.173027 0.357542 0.402243 0.436633 0.569122 XGboost 0.542577 0.045901 0.391998 0.514417 0.544066 0.566803 0.654671 表6. 预测值与实际值的对比 表6显示真实价差值的均值为0.296950，CNN模型预测值的均值为0.298125，真实价差的最大值为0.515797，CNN模型预测价差的最大值为0.512961。而SVM模型XGboost模型预测值的均值分别为0.400073和0.542577，最大值分别为0.569122和0.654671，和真值均相差较远。所以从预测序列分布来看，在股指期货序列的预测方面，CNN模型要好于SVM模型和XGboost模型。下面将基于三种不同机器学习模型的预测结果根据套利策略进行套利交易。 4.3. 套利策略 本文对2020年2月14日到2020年6月1日期间的上证50股指期货主力合约和中证500股指期货主力合约进行回测。根据中金所要求，股指期货交易的手续费率为万分之0.23。关于止损策略，本文设置为4个点位，即当策略连续亏损4个价差点位的时候强行平仓，由于股指期货的保证金率为10%，按照操作资金占总仓位的80%计算，本文中假设初始保证金为280，000元。通过卷积神经网络的预测模型，可以得到价差的预测序列 p r e _ s p r e a d t 。通过 p r e _ s p r e a d t 得到预测值的价差增量 p r e _ I n t 。 I n t = m a 5 _ s p r e a d t − m a 5 _ s p r e a d t − 1 ， (7) p r e _ I n t = p r e _ s p r e a d t − m a 5 _ s p r e a d t − 1 . (8) 套利过程中开仓和正常性平仓的阈值由 I n t 的移动平均值和 I n t 的移动标准差共同构成。开多仓和开空仓的阈值分别设置为 X _ l ( t ) 和 X _ S ( t ) ，平仓的阈值为 M ( t ) 。 X _ l ( t ) = M s ( t ) + 2 × S t d s ( t ) ， X _ S ( t ) = M s ( t ) − 2 × S t d s ( t ) ， (9) 式中： M ( t ) 表示在t时刻的前s个 I n t 的移动平均值， S t d ( t ) 表示在t时刻前s个 I n t 的移动标准差值。 套利过程分为开仓、正常性平仓和止损性平仓，其中开多仓、开空仓和正常性平仓的交易阈值分别为 X _ l ( t ) 、 X _ S ( t ) 和 M ( t ) 。则交易策略为： 当 p r e _ I n t > X _ l ( t ) 时，买入一手上证50股指期货多头，买入一手中证500股指期货的空头； 当 p r e _ I n t > X _ l ( t ) 后，再次 p r e _ I n t < M ( t ) 时或亏损超过4个价差点位时进行平仓； 当 p r e _ I n t < X _ S ( t ) 时，买入一手上证50股指期货空头，买入一手中证500股指期货的多头； 当 p r e _ I n t < X _ S ( t ) 后，再次 p r e _ I n t > M ( t ) 时或亏损超过4个价差点位时进行平仓。 4.4. 结果分析 为了使回测结果更加具有对比性，防止回测结果具有偶然性。本文将策略的开平仓阈值的参数s分别设置为40、50和60。即策略开仓阈值分别设置为 I n t 的前40、50、60期的移动均值加减两倍标准差，策略的平仓阈值分别设置为 I n t 的前40、50、60期的移动均值。策略的回测结果如下。 图5. 策略净值曲线与价差走势曲线 图5中的蓝色、紫色、红色的曲线分别表示策略在阈值参数为40、50、60时的净值曲线。绿色曲线表示价差曲线。从图5中可以看出三种策略的净值曲线虽然在局部时有波动，但总体上表现为上升趋势。其中当阈值参数为40和60时策略的收益表现相对较好。并且通过图5可以看出无论价差的走势是在波动型走势（2020/3/11左右），还是趋势型走势（2020/4/7左右），策略的净值曲线总体都是上升趋势。 为了和基于卷积神经网络的套利交易策略进行对比分析，分别将基于SVM模型和XGboost模型的预测结果进行相同的交易过程，设置阈值参数为40，得出结果如表7所示。 Table 7 Return of arbitrage strateg 模型 CNN SVM XGboost 40 50 60 回测时间段 2020年2月14日到2020年6月1日 初始保证金(元) 280，000 交易次数 328 281 267 300 352 止损次数 201 189 170 230 255 总盈利(元) 41，449.4 23，039.4 46，577.3 11，664.3 13，480 最大回撤率 3.7% 3.5% 2.9% 3.2% 3.4% 收益率 15% 8% 17% 4.1% 4.7% 年化收益率 50% 28% 57% 13% 15% 表7. 套利策略收益情况表 通过表7可以看出在阈值参数同为40的情况下，基于CNN模型、SVM模型、XGboost模型的收益率分别为15%、4.1%、4.7%，交易次数分别为328、300、352；最大回撤率分别为3.7%、3.2%、3.4%。所以可以看出在相同阈值参数的设置下基于CNN模型交易策略的收益率要好于基于SVM模型交易策略和基于XGboost模型交易策略的收益率。并且基于CNN模型的交易结果随着s值越大交易次数越少，这是因为s越大，阈值受越多数据的影响，因此套利区间越宽松，套利机会就越少。对于CNN模型，基于三种不同阈值参数模型的收益率分别为15%、8%、17%，最大回撤率分别为3.7%、3.5%、2.9%。年化收益率分别为50%、28%、57%。阈值参数s为60时，策略的年化收益率最大，并且同时最大回撤也最小。但阈值参数s为50时，策略的收益率相对最小，说明了策略的表现与s的大小并不呈单调关系。