【Elite量化策略实验室】RUMI策略 - 2

发布于VeighNa社区公众号【vnpy-community】

原文作者:用Python的交易员 | 发布时间:2023-3-30

R-Cubed指标

上篇文章展示了RUMI策略在rb99.SHFE上的初步回测绩效,跑通了策略回测下一步自然就是参数优化。
《海龟交易法则》这本书的参数优化章节中提到,传统上使用较多的总收益率(total_return)、收益回撤比(return_drawdown_ratio)、夏普比率(sharpe_ratio)等指标,由于其计算公式中过度依赖【起始】和【结束】两个点的数值,导致其用于策略绩效评估中的【稳健性略有不足】。

这里用图例来说明,下图中的紫色实线为某一策略的回测资金曲线:

绿色和红色两条虚线,分别为选取不同的起始和结束时间点后,体现出的策略整体收益情况。对于同样一条资金曲线,仅仅由于所选时间段的区别,就造成了虚线斜率(总收益率,同时影响收益回撤比和夏普比率计算中的分子)相当显著的偏差,在参数优化中也就更容易导致【过度拟合】的问题。

搞清楚了问题所在,解决方案也十分简单:就是让整条资金曲线上更多的数据点能够参与斜率的计算。经典方法之一就是统计学中的线性回归(Linear Regression),体现为上图中的这条蓝色虚线,相对更能够代表策略的长期收益情况。

围绕这一思路,《海龟交易法则》的作者柯蒂斯提出了【R-Cubed】稳健优化指标:

  • 使用每日策略净值的回归斜率作为分子
  • 使用5次历史极值回撤的均值作为分母
  • 结合两者来计算R-Cubed指标的数值

VeighNa Elite版的CTA回测引擎中内置了R-Cubed统计指标,基于其对RUMI策略在rb99.SHFE的2010-2019时间段上进行优化后(结合使用广域遗传和分组穷举),得到的策略参数为:

  • bar_window: 30
  • bar_interval: "1m"
  • bar_buffer: 200
  • fast_window: 2
  • slow_window: 55
  • rumi_window: 13
  • stop_percent: 0.044
  • max_holding: 80
  • risk_window: 20
  • risk_capital: 100_000

以此在2010至2023年初的回测结果即为上一篇的封面图:

可靠性的评估

上一篇文章发布后,有同学反馈担心使用99这种进行了平滑处理的指数会导致结果失真,这里使用过去一年三个具体主力合约和99的回测结果做一个对比(策略参数均使用上一步优化结果):

可以看到rb2205和rb2209的绩效统计指标要好于同期的rb99,而rb2301上则差于同期的rb99,但整体还是保持了较为明显的一致性。

更多品种效果

除了螺纹钢rb以外,我们也在其他一些品种上尝试了RUMI策略。这里我们使用2017年至2023年2月(6年多)的数据来作为总数据集,选择从2017年1月到2020年6月作为样本内进行参数优化,然后使用2020年7月至2023年2月作为样本外进行检验。

为了节约文章长度,以下回测图表和统计指标均为总数据集上的结果:

al99.SHFE(铝)

回测参数:

  • 交易成本
  • 佣金:6元/手(体现在滑点中)
  • 滑点:1跳
  • 策略参数
  • bar_window: 25
  • bar_interval: "1m"
  • bar_buffer: 204
  • fast_window: 2
  • slow_window: 10
  • rumi_window: 40
  • stop_percent: 0.04
  • max_holding: 100
  • risk_window: 20
  • risk_capital: 100_000

hc99.SHFE(热卷板)

回测参数:

  • 交易成本
  • 佣金:0.02%
  • 滑点:1跳
  • 策略参数
  • bar_window: 25
  • bar_interval: "1m"
  • bar_buffer: 200
  • fast_window: 2
  • slow_window: 60
  • rumi_window: 12
  • stop_percent: 0.04
  • max_holding: 50
  • risk_window: 20
  • risk_capital: 100_000

j99.DCE(焦炭)

回测参数:

  • 交易成本
  • 佣金:0.03%
  • 滑点:1跳
  • 策略参数
  • bar_window: 20
  • bar_interval: "1m"
  • bar_buffer: 200
  • fast_window: 2
  • slow_window: 70
  • rumi_window: 32
  • stop_percent: 0.04
  • max_holding: 80
  • risk_window: 20
  • risk_capital: 100_000

策略评估总结

至此我们围绕RUMI策略的研究告一段落。作为一套流传甚广的CTA策略,RUMI策略的核心逻辑体现出了量化研究中典型的【渐进式优化】特征:站在前人肩膀上(均线金死叉)迈出新的一步(过滤均线缠绕),从而实现更好的风险收益比。

今年接下来的时间里【Elite量化策略实验室】系列会持续更新,努力为大家带来更多量化策略深入解析。

posted @ 2023-10-11 16:16  MasonLee  阅读(160)  评论(0编辑  收藏  举报