本策略使用MACD指标来判断RSI指标的趋势,从而产生交易信号。属于利用指标组合进行滤波的策略类型。
该策略主要基于两部分指标进行判断:
RSI指标 计算常规的14周期RSI值。
RSI的MACD 对RSI指标计算MACD值,默认快线12周期,慢线26周期,信号线9周期。
当RSI的MACD柱体由负转正,即MACD快慢线金叉时判断为多头趋势,进行买入。
当RSI的MACD由正转负,即MACD快慢线死叉时判断为空头趋势,进行卖出。
这里使用MACD指数平滑移动平均线来判断RSI本身的长期趋势方向,从而产生更准确的交易信号。
可以通过以下措施降低风险:
该策略可以从以下几个方面进行优化:
测试RSI和MACD的参数组合
在MACD信号发出时,添加第二确认条件
例如考虑K线形态、交易量或布林带位置等
优化止盈止损策略,改为追踪止损
加入重新入场机制
在止损退出后,如果趋势继续,可以重新建立仓位
在高波动时减小仓位,低波动时增加仓位
本策略通过组合RSI和MACD两个指标,互相验证判断趋势方向,可以有效提高信号的准确性和稳定性。但仍需优化参数,并辅以其他技术指标或交易规则进一步确认,减少被突发事件影响的可能。同时要注重止损策略的优化改进,以及动态调整仓位的资金管理。只有不断学习和优化,才能适应市场的变化,获取持续稳定的收益。
/*backtest
start: 2022-09-14 00:00:00
end: 2023-09-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title = "MACD of RSI", overlay = false)
//////////////////////// RSI ///////////////////////////
src = close, len = input(14, minval=1, title="Length")
up = sma(max(change(src), 0), len)
down = sma(-min(change(src), 0), len)
rsi = down == 0 ? 100 : up == 0 ? 0 : 100 - (100 / (1 + up / down))
//////////////////////// RSI //////////////////////////
//////////////// MACD ////////////////////////////
sourcemacd = rsi
fastLength = input(12, minval=1), slowLength=input(26,minval=1)
signalLength=input(9,minval=1)
fastMA = ema(sourcemacd, fastLength)
slowMA = ema(sourcemacd, slowLength)
macd = fastMA - slowMA
signal = ema(macd, signalLength)
delta=macd-signal
swap1 = delta>0?green:red
plot(delta,color=swap1,style=columns,title='Histo',histbase=0,transp=20)
p1 = plot(macd,color=blue,title='MACD Line')
p2 = plot(signal,color=red,title='Signal')
fill(p1, p2, color=blue)
hline(0)
/////////////////////////MACD //////////////////////////
// Conditions
longCond = na
sellCond = na
longCond := crossover(delta,0)
sellCond := crossunder(delta,0)
monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)
if ( longCond )
strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND", comment="BUY")
else
strategy.cancel(id="BUY")
if ( sellCond )
strategy.close("BUY")