【Veighna量化策略实验室】RSJ高频波动率择时指标 - 2 - 样本内外
原文发布于vn.py社区公众号【vnpy-community】
原文作者:Bili | 发布时间:2021-08-06
前情回顾
我们在前文中叙述了RSJ指标,并且将该指标策略进行了源码复现,在初步回测中得到了一个还不错的回测结果。那么我们有了一个策略指标,接下来该怎么做?实盘交易测试策略的有效性吗?不,在使用资金进行冒险前,应该先对策略进行回溯检验,使用历史数据模拟交易测试策略是否有效。
测试原理
整体的思路为:选取过去一个时间段为样本,在样本内对参数优化,将优化结果带入策略中在样本中进行回测,保证回测结果中资金曲线呈现上扬趋势。将在样本中参数优化的结果带入样本之后的一个时间段再次进行回测,如果样本外回测的资金曲线也呈上扬趋势则说明该策略有效;反知,则说明该策略无效。具体操作步骤如下[代码请参照前文]:
- 选取样本内的时间段
- 进行参数优化
- 将优化后参数带入策略在样本内进行回测(保证资金曲线上扬)
- 选取样本外时间段
- 将优化后的参数带入样本外数据进行回测
测试结果
实验一
1.选取样本内时间:2015.7.30 — 2018.7.29
2.参数优化(参照总收益率)
优化结果:m = 44**
3.样本内回测:
选择使用米筐RQData提供的IC888平滑主力合约数据,在CtaBacktester中的回测配置如下:
- 本地代码:IC888.CFFEX
- K线周期:1分钟
- 开始日期:2015-7-30
- 结束日期:2018-7-29
- 手续费率:0.00003
- 交易滑点:0.4
- 合约乘数:300
- 价格跳动:0.2
- 回测资金:100W
4.选取样本内时间:2018.7.30 — 2019.7.29
5.参数m = 44 ,样本外回测
实验二
1.选取样本内时间:2015.7.30 — 2018.7.29
2.参数优化(参照总收益率)
优化结果:m = 19
3.样本内回测:
选择使用米筐RQData提供的IH888平滑主力合约数据,在CtaBacktester中的回测配置如下:
- 本地代码:IH888.CFFEX
- K线周期:1分钟
- 开始日期:2015-7-30
- 结束日期:2018-7-29
- 手续费率:0.00003
- 交易滑点:0.4
- 合约乘数:300
- 价格跳动:0.2
- 回测资金:100W
4.选取样本内时间:2018.7.30 — 2019.7.29
5.参数m = 19 ,样本外回测
实验三
1.选取样本内时间:2016.7.30 — 2020.7.29
2.参数优化(参照夏普比率)
优化结果:m = 37
3.样本内回测:
选择使用米筐RQData提供的IF888平滑主力合约数据,在CtaBacktester中的回测配置如下:
- 本地代码:IF888.CFFEX
- K线周期:1分钟
- 开始日期:2016-7-30
- 结束日期:2020-7-29
- 手续费率:0.00003
- 交易滑点:0.4
- 合约乘数:300
- 价格跳动:0.2
- 回测资金:100W
4.选取样本内时间:2020.7.30 — 2021.7.29
5.样本外回测(参数m = 37):
总结
基于上述样本内外检验的结果,结合RSJ指标本身极为简单的计算逻辑,足以证明其作为策略核心交易信号的有效性。在后续的系列文章中,我们就可以放心的对RsjStrategy进行扩展加强,引入更多的参数自由度,同时结合其他指标信号,来尝试进一步优化策略的交易绩效。