双移动平均线黄金交叉策略


创建日期: 2023-12-25 15:15:46 最后修改: 2023-12-25 15:15:46
复制: 0 点击次数: 349
1
关注
1188
关注者

双移动平均线黄金交叉策略

概述

本策略运用双移动平均线的黄金交叉原理,结合RSI指标来判断买卖点。策略主要判断26周期EMA与12周期EMA的交叉情况,及100周期SMA与200周期SMA的交叉情况,在交叉发生时结合RSI指标判断是否发出交易信号。

策略原理

该策略主要基于双移动平均线的交叉原理。双移动平均线中,26周期EMA代表短期趋势,12周期EMA代表更短期的价格波动。当短期EMA上穿较长期EMA时,代表价格由跌转涨,属于做多信号;当短期EMA下穿较长期EMA时,代表价格由涨转跌,属于做空信号。该策略增添100周期SMA和200周期SMA的判断,它们分别代表中长期趋势和长期趋势,其交叉情况也可用于判断价格走势转折。

在判断EMA和SMA的交叉的同时,策略还会结合RSI指标来发出交易信号。RSI可判断价格是处于超买还是超卖状态。RSI高于70时为超买信号,低于30时为超卖信号。所以策略会在EMA或SMA发生交叉时,同时检查RSI指标来避免在价格超买超卖时发出错误的交易信号。

策略优势

  1. 使用双EMA判断短期价格走势,使用双SMA判断中长期价格走势,可有效发现价格turning point。

  2. 结合RSI指标可避免在价格超买超卖时错误发出交易信号。

  3. 通过调整EMA、SMA的参数可适应不同周期及不同交易品种。

  4. 策略思路简单清晰,容易理解和优化。

策略风险

  1. 双移动平均线都有滞后性,无法提前判断价格转折点。

  2. 如果不适当设置EMA、SMA参数,可能产生大量错误信号。

  3. RSI指标也可能出现失效的情况,无法有效判断价格的超买超卖状态。

  4. 交易品种不同,需要调整参数,不具有普适性。

风险解决方法

  1. 结合其他先导指标判断价格走势和可能的转折点。

  2. 测试参数的稳定性,选取参数组合的胜率最高者。

  3. 结合其他指标如KD、BOLL来避免RSI失效的情况。

  4. 根据不同交易品种分别测试参数,保存参数组合模板。

策略优化方向

  1. 测试不同EMA和SMA周期参数的组合,找到最优参数。

  2. 增加其他指标判断,形成指标组合策略。常见的有KD,MACD等。

  3. 增加止损止盈策略,设置合理的止损止盈比例。

  4. 优化入场时机,避免在价格波动过大时入场。可设置价格波动阈值。

  5. 区分多空行情,设置不同的交易信号条件。

总结

本策略主要运用双移动平均线交叉原理发出交易信号,简单实用,容易优化。但存在一定滞后性无法判断价格转折点,也可能在特定市场中失效。可通过参数优化与指标组合来提高策略的稳定性与胜率。总体来说,该策略适合中长期趋势交易,也可作为其它策略的组成部分,具有一定的实用价值。

策略源码
/*backtest
start: 2022-12-18 00:00:00
end: 2023-12-24 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(shorttitle = "Gamma pips EMA Cross", title="MA Cross", overlay=true)
s100sma = sma(close, 100)
s200sma = sma(close, 200)
s26ema = ema(close,26)
s12ema = ema(close,12)

plot(s100sma, color = green, linewidth = 5)
plot(s200sma, color = blue, linewidth = 5)
plot(s26ema, color = yellow, linewidth = 3)
plot(s12ema, color = red, linewidth = 3)
EMACross = plot(cross(s26ema, s12ema) ? s26ema : na, style = cross, linewidth = 5, color = red)
SMACross = plot(cross(s100sma, s200sma) ? s200sma : na, style = cross, linewidth = 5, color = white)
Alert = cross(s26ema, s12ema)
alertcondition(Alert, title="EMA Crossing")

//============ signal Generator ==================================//
EMACrossover = crossover(s26ema, s12ema) //if yellow cross and is above red ->SELL
EMACrossunder = crossunder(s26ema, s12ema) //if yellow cross and is below red ->BUY
SMACrossover = crossover(s100sma, s200sma) //green crosses above blue ->Buy
SMACrossunder = crossunder (s100sma, s200sma) //green crosses below below ->Sell
price = close
BuyCondition = (EMACrossunder) and (price >= s100sma)
SellCondition = (EMACrossover) and (price <= s100sma)

///---------Buy Signal-------------///
if (BuyCondition)
    strategy.order("BUY ema crossunder", strategy.long)

 
///Short signal------//
if(SellCondition)
    strategy.order("SELL ema crossover", strategy.short)
   

更多内容