发布于veighna社区公众号【vnpy-community】
 
原文作者:用Python的交易员 | 发布时间:2023-3-30
 

R-Cubed指标

 

上篇文章展示了RUMI策略在rb99.SHFE上的初步回测绩效,跑通了策略回测下一步自然就是参数优化。

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

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

description

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

description

搞清楚了问题所在,解决方案也十分简单:就是让整条资金曲线上更多的数据点能够参与斜率的计算。经典方法之一就是统计学中的线性回归(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年初的回测结果即为上一篇的封面图:

description

 

可靠性的评估

 

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

description

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

 

更多品种效果

 

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

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

 

al99.SHFE(铝)

description

description

回测参数:

  • 交易成本

    • 佣金: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(热卷板)

description

description

回测参数:

  • 交易成本

    • 佣金: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(焦炭)

description

description

回测参数:

  • 交易成本

    • 佣金: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量化策略实验室】系列会持续更新,努力为大家带来更多量化策略深入解析。

VeighNa Elite已于本周正式上线发布1.0.0版本,目前对量化私募机构的投研人员提供一个月免费试用,感兴趣的同学请扫码添加小助手:

description

 

免责声明

文章中的信息或观点仅供参考,作者不对其准确性或完整性做出任何保证。读者应以其独立判断做出投资决策,作者不对因使用本报告的内容而引致的损失承担任何责任。