AFML读书笔记--Backtesting through Cross-Validation

Advance Finance Machine Learning读书笔记

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。

因为年初疫情影响,书剩在别的地方无法出门取,所以断更了很久,现在持续更新中……
之前有搜到大神weixin_38753422的AFML系列。写得很详细并且有代码和图片解释,链接在此
此系列从Part 1 Chapter 3开始写起,Chapter3之前内容可以在上面的链接里看到。(注意并不是所有内容的整理,而是我个人觉得需要整理的内容)

本文讲的时Part 3 Chapter 12 Backtesting through Cross-Validation (使用CV进行回测)

啥是回测

回测是用于检测投资策略在OOS上的性能表现,大致有两个方向:

  • 前向回测法:将策略在曾经的数据上跑一边,这也是经常被提到的那个回测(历史数据检测)
  • 虚拟回测法:模拟从未发生过的数据,在这个数据上进行测试

前向回测法

缺点:

  • 因为是在一条单一时间线上进行回测,所以很容发生过拟合
  • 如果测试放在一些明显的趋势性时间序列上,会导致在上下波动的区间训练的策略表现极差,如果实际交易中发生于回测时间序列区间相反的趋势,就会发生过拟合,无法泛化的结果
  • 训练数据集太少(Warm-up set 没看懂)

优点:

  • 前向法在历史数据上进行模拟交易,所以它的表现可以直接有策略交易详单得出
  • 历史回测本身就可以避免信息泄露,只要Purge这步操作过就能保证Testset是OOS

交叉验证回测法

优点:

  • 使用CV的Test set是k个不同的情境
  • 生成策略的训练集样本大小一致,也就说利用的信息量一致,后期有可比性
  • 每一个样本都能参与到test set中去

缺点:

  • 和WF回测一样仍是在已有的时间序列方向上进行测试
  • CV在历史数据上并没有像WF一样有交易的模拟记录
  • 操作时要特别主要Test Set 的信息不能流入Train Set(参考Chapter 7 提到的Purge 和 Embargo)

将Purge与CV结合的CPCV回测

1.第一步:将T TT个样本进行分组,分成N NN个组,前1 … … N − 1 1……N-11N1个组的样本容量是T / N T/NT/N,最后第N NN组的样本容量是T − [ T / N ] ∗ ( N − 1 ) T-[T/N]*(N-1)T[T/N](N1).
([.]为向下求整,[3.33]=3)
2.第二步:我们从N NN个组中取k kk个组作为Test set 那么就有C N n − k C_N^{n-k}CNnk个组合(N-k个Train,k个test)
3.对每一组组合进行Purge 和 Embargo 因为有一些测试集的标签可能又训练集的数据得到
4.在每个组合上的训练集上训练出模型,并在对应的测试集上做出预测结果
5.我们可以得到ϕ \phiϕ个Path 每个Path上面都有N NN个测试集预测结果,并最后计算每个Path的夏普率

Path计算公式:

在这里插入图片描述
在这里插入图片描述
(注意:图中红框圈出来的为Path 1)
解释一下这个图:
一共六个组(N = 6 N=6N=6)
要选两个测试组(K = 2 K=2K=2)
一共C 6 2 C_6^{2}C62种组合法(C 6 2 = 15 C_6^{2}=15C62=15)
看第一个组合S 1 S_1S1,组1和组2是选做了测试集所以在图片中标出,那么组3、组4、组5、组6将合成训练集,这个训练集将fit出模型1并在组1、组2的测试集上得出预测结果,并计算出执行策略在Test set上面的夏普率
(个人觉得CV中test set 应该叫validation set)

文中关于CPCV的例子

K = 1 K=1K=1时:

CPCV的Path只有一条,那么CPCV就退化成了普通CV

K = 2 K=2K=2时:

CPCV的Path有N − 1 N-1N1条,十分接近于N NN组,所以当我们有指定的Path需要生成时,我们直接将数据分成P a t h + 1 Path+1Path+1组就可以了。理论上我们希望Path 越多越好这样就能更真实地反应策略的效果。那么我们极限情况下可以把N = T N=TN=T(T之前提到过是总共样本数),那么这时的Path共有T − 1 T-1T1个,那么策略将会在1 − 2 T 1-\frac{2}{T}1T2的比例上进行训练。实际运用中通常将K设置成2就行了。


版权声明:本文为weixin_41985789原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。