RUMI 策略与 SQN 评估

RUMI 策略

最近经常看到 RUMI 策略,逻辑非常简单,就只是均线的金叉死叉来驱动交易的买卖点,但是许多回测上效果非常好。也手写了一下策略的代码。

逻辑

选择 2 条均线,一条长期,一条短期。在一定的时间周期内,用短期均线减去长期均线,获得每个时间点的差值。把这些差值简单求和再除以时间周期,就是 RUMI 指标。

  1. 快速均线 :: SMA 简单移动平均线
  2. 慢速均线 :: WMA 加权移动平均线
  3. DIFF :: 计算快慢均线的偏离度
  4. RUMI :: 对偏离度使用 SMA 进行平滑处理

买卖点:

  • RUMI 上穿 0 轴,买入做多
  • RUMI 下穿 0 轴,卖出做空

回测结果

使用最开始的模型,交易夏普率 0.287 ,回测十年,收益率 40.9% 。结果挺一般的,做一下优化。

  1. 使用 RUMI 2次的斜率代替默认的 RUMI 的值。
  2. 使用 SAR 指标做额外的退出指标。

夏普率提升到 0.626 , 回测十年的收益率为 62.9%,貌似还是挺一般的。

策略优化

使用更严格的开仓策略和更开放的平仓策略

对于 RUMI 策略,买入和持有过程中,不够灵活,可以通过增加对行情的判断,优化策略的长短策略。

  1. SMA22.SLOPE > 0
  2. RUMI.M > 0 OR CLOSE.SLOPE > 0

1/2 同时满足才开多仓。

  1. RUMI.M 小于 0
  2. SMA22.SLOPE 小于 0
  3. RUMI.R.SLOPE 小于 0
  4. CLOSE.SLOPE 小于 0

1-4 有一个成立就平多仓。

def signal(self):
    self.signal_buy = (
        self.rumi.m > 0 \
        or self.slope_close > 0
    ) and self.slope_ma_22 > 0
    self.signal_sell = (
        self.rumi.m < 0 \
        or self.slope_rumi < 0 \
        or self.slope_ma_22 < 0 \
        or self.slope_close < 0
        )

优化后的策略,夏普率提升到 0.902 ,SQN 评分达到 2.598 ,十年回测的收益率为 105.39% 。

SQN 评估

SQN 是交易系统的评估方案,具体的评测如下:

  • 1.6–1.9 Poor but tradable 不怎么样,可以凑合用
  • 2.0–2.4 Average 普通
  • 2.5–2.9 Good 好
  • 3.0–5.0 Excellent 杰出
  • 5.0–6.9 Superb 一流
  • 7.0- Holy Grail 圣杯

策略从 SQN 从 0.7 提升到 1.91 变得勉强能用了。