由来 From
我的好朋友燃哥去年曾多次问过我,能不能写一种日内策略。
也有很多朋友来问我,要求写一个网格、做市商策略。
但我一般都直接回绝了,关于这些策略,首先你要有很强的数学功底,起码得有一个数学博士。
另外高频量化比的更是财力,比如说资金量和宽带网速等等。
最重要的是这些违背了我对交易的理解。
那有没有其他办法可以做高频交易呢,当然有。
今天我们就来介绍这个基于 Larry Connors 开发的RSI均值回归策略。
介绍 Introduction
RSI2策略是一种相当简单的均值回归交易策略,由拉里·康纳斯(Larry Connors)开发。
主要是在价格修正期,操作买卖。
当RSI2跌破10时,被认为是超卖了,交易者应该寻找买入机会。
当RSI2涨破90时,被认为是超买了,交易者应该寻找卖出机会。
这是一种相当激进的短期策略,旨在参与持续的趋势。它并非旨在识别主要的顶部或底部。
策略 Strategy
此策略有四个步骤。
1,使用长期移动平均线确定主要趋势;
Connors建议200天移动平均线。长期趋势在高于200天均线时上升,在低于其200天均线时则下降。
交易者应该在200日均线上方寻找买入机会,在200日均线下方寻找卖空机会。
2,选择RSI范围确定买入或卖出机会。
Connors测试的RSI水平在0到10之间进行买入,在90到100之间进行卖出。(基于收盘价)
他发现,当RSI跌破5时买入的收益要高于跌破10时的收益。RSI越低,后续多头头寸的收益就越高。
相对应,在RSI高于95时卖空的收益高于在90上方时的收益。
3,涉及实际的买入或卖空订单及其下达时间。
Connors倡导采用“close”方法。 等待收盘开仓给交易者更大的灵活性,并可以提高进入水平。
4,设置出场位置。
stop应该放在哪里?
Connors不主张使用止损。是的,你没看错。
在经过数十万笔交易的定量测试中,康纳斯发现,使用stop的表现实际上是“损害”了业绩。
但在示例中,康纳斯建议在5天均线上方止损多头头寸,在5天均线下方止损空头头寸。
显然,这是一种短期交易策略,可以快速退出。
或者考虑设置追踪止损或采用SAR合成止损策略。
有时候市场确实确实有向上的漂移的现象,不使用止损可能会导致超额损失和大量亏损。
这就需要使用者自己去考量和决定了。
交易验证 Trading Examples
下图显示了道琼斯工业平均指数SPDR(DIA)以及200天SMA(红色),5周期SMA(粉红色)和2周期RSI。
当DIA高于200天SMA并且RSI(2)跌至5或更低时,出现看涨信号。
当DIA低于200天SMA并且RSI(2)升至95或更高时,会出现看跌信号。
在这12个月中,有7个信号,4个看涨和3个看跌。
在4个看涨信号中,DIA上涨了4次中的3个,这意味着这些信号可能是可以盈利的。
在4个看跌信号中,DIA仅下跌了1次。
在十月份出现看跌信号之后,DIA突破了200天均线。
一旦超过200天均线,则RSI2不会跌至5或更低以产生另一个买入信号。
至于损益,将取决于止损和获利的水平。
第二个示例显示了苹果(APL),它在大部分时间段内都在200天均线上方。
在此期间,至少有十个买入信号。
由于APL从2011年2月下旬至6月中旬呈锯齿状走低,因此很难避免前五个指标的损失。
随着APL从8月至1月呈锯齿状上升,后五个信号的表现要好得多。
从该图表可以看出,许多信号很早。
换句话说,苹果在最初的买入信号之后跌至新低,然后反弹。
结论 Conclusion
RSI2策略为交易者提供了参与持续趋势的机会。
Connors指出,交易者应该购买回调,而不是突破。
相反,交易者应该卖出超卖的反弹,而不是支撑突破。
这个策略符合他的哲学。
即使Connors的测试表明止损影响了业绩,但对于交易者而言,为任何交易系统制定退出和止损策略还是谨慎的。
当情况变得超买或设定止损时,交易者可以退出多头。
同样,当条件超卖时,交易者可以退出空头。
使用这些想法来增强您的交易风格,风险回报偏好和个人判断。
FMZ 源码展示
Connors的策略较简单,就单纯的使用麦语言编写好了。(大家都能看懂)
因为原策略设计标的为美股,采用200日均线作为参考。
而在波动较大的数字货币领域,恰好适合短周期价值回归。
所以我们调整了时间范围为15分钟,ma周期取70。
并使用1倍杠杆进行交易回测。
(*backtest
start: 2019-01-01 00:00:00
end: 2020-05-12 00:00:00
period: 15m
basePeriod: 5m
exchanges: [{"eid":"Futures_OKCoin","currency":"BTC_USD"}]
args: [["TradeAmount",5000,126961],["MaxAmountOnce",5000,126961],["ContractType","quarter",126961]]
*)
liang:=INTPART(1*MONEYTOT*REF(C,1)/100);
//使用一倍杠杆
LC := REF(CLOSE,1);
RSI2: SMA(MAX(CLOSE-LC,0),2,1)/SMA(ABS(CLOSE-LC),2,1)*100;
//RSI2值
ma1:=MA(CLOSE,70);
//MA值
CLOSE>ma1 AND RSI2>90,SK(liang);
CLOSE>ma1 AND RSI2<10,BP(SKVOL);
//大于均线的情况下,rsi>90 开空,rsi<10 平空
CLOSE<ma1 AND RSI2<10,BK(liang);
CLOSE<ma1 AND RSI2>90,SP(BKVOL);
//小于均线的情况下,rsi<10 开多,rsi>90 平多
AUTOFILTER;
策略复制https://www.fmz.com/strategy/207157
回测效果
经过系统回测,我们看到,rsi策略总体胜率较高。其表现让我们比较满意。
最大回撤发生在312,极端行情会对震荡回归一类策略伤害较大。
调整及思考 Tweaking
在RSI2飙升至95以上后,行情可以继续走高;
在RSI2跌至5以下后,行情可以继续走低。
为了纠正这种情况,我们可能要涉及OHLCV分析,日内图表形态,其他动量指标等等。
在RSI2飙升至95以上后,行情可以继续走高,建立空头头寸很危险。
交易者可以考虑通过等待RSI2返回其中心线50以下来过滤此信号。
参考文献
https://school.stockcharts.com
https://www.tradingview.com/ideas/connorsrsi/
https://www.mql5.com/zh/code/22421