A estratégia de cruzamento do indicador de momento é uma abordagem de negociação baseada na combinação de sinais de média móvel exponencial (EMA) e índice de força relativa (RSI).
O núcleo desta estratégia é o sistema de cruzamento de linhas EMA rápidas e lentas.ema1
, ema2
eema3
Entre eles,ema1
representa uma tendência a curto prazo,ema2
Representa uma tendência a médio prazo, eema3
A tendência de curto prazo representa uma tendência de longo prazo. Quando a tendência de curto prazo cruza acima da tendência de médio prazo, um sinal de compra é gerado. Quando a tendência de curto prazo cai abaixo da tendência de médio prazo, um sinal de venda é gerado.
Para filtrar os falsos sinais, a estratégia define também duas condições adicionais:bodybar1 > bodybar2
eclose > entrybar
(para sinal de compra) ouclose < entrybar
Isso garante que os dois candelabros recentes atendam à direção do sinal, e o preço atravessa o ponto de entrada para evitar entrada redundante.
Além disso, a estratégia incorpora o indicador RSI para avaliar as condições de sobrecompra e sobrevenda. A área de sobrecompra do RSI é usada para definir sinais de compra excessiva, enquanto a área de sobrevenda é usada para definir sinais de venda excessiva. Isso ajuda a evitar sinais errados em mercados sobreaquecidos e sobre-resfriados.
As vantagens desta estratégia incluem:
Os riscos desta estratégia incluem:
A estratégia pode ser otimizada nos seguintes aspectos:
A estratégia de cruzamento de indicadores de momento integra os pontos fortes da EMA e do RSI e forma sinais de negociação baseados em cruzamento de indicadores. A estratégia é simples e prática, adequada para iniciantes, e também pode ser expandida e otimizada de acordo com as necessidades reais para melhorar o desempenho da estratégia. Com uma gestão de risco rigorosa, a estratégia promete retornos excessivos estáveis.
/*backtest start: 2022-12-20 00:00:00 end: 2023-12-26 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('EMA Crossover Strategy', shorttitle='EMA Crossover', overlay=true) // Define input for position size as a percentage of equity position_size_pct = input(1, title='Position Size (%)') / 100 //Input EMA len1 = input.int(25, minval=1, title='EMA 1') src1 = input(close, title='Source') ema1 = ta.ema(src1, len1) len2 = input.int(100, minval=1, title='EMA 2') src2 = input(close, title='Source') ema2 = ta.ema(src2, len2) len3 = input.int(200, minval=1, title='EMA 3') src3 = input(close, title='Source') ema3 = ta.ema(src3, len3) //End of format //Format RSI lenrsi = input(14, title='RSI length') outrsi = ta.rsi(close,lenrsi) //plot(outrsi, title='RSI', color=color.new(color.blue, 0), linewidth=1) //hline(70, 'Overbought', color=color.red) //hline(30, 'Oversold', color=color.green) //End of format bodybar1 = math.abs(close - open) bodybar2 = math.abs(close[1] - open[1]) // Plot the EMAs plot(ema1, color=color.new(color.blue, 0), title='EMA 1') plot(ema2, color=color.new(color.red, 0), title='EMA 2') //plot(ema3, color=color.new(#ffffff, 0), title='EMA 3') // EMA Crossover conditions emaCrossoverUp = ta.crossover(ema1, ema2) emaCrossoverDown = ta.crossunder(ema1, ema2) var entrybar = close // Initialize entrybar with the current close // Calculate crossovers outside of the if statements emaCrossoverUpOccured = ta.crossover(close, ema1) and ema1 > ema2 and bodybar1 > bodybar2 and close > entrybar emaCrossoverDownOccured = ta.crossunder(close, ema1) and ema1 < ema2 and bodybar1 > bodybar2 and close < entrybar plotshape(series=emaCrossoverUpOccured, location=location.abovebar, color=color.new(color.green, 0), style=shape.triangleup, title='New Buy Order', size=size.tiny) plotshape(series=emaCrossoverDownOccured, location=location.belowbar, color=color.new(color.red, 0), style=shape.triangledown, title='New Sell Order', size=size.tiny) // Define trading logic with custom position size and RSI conditions if emaCrossoverUp or emaCrossoverUpOccured strategy.entry('Buy', strategy.long) entrybar := close // Update entrybar when entering a new buy position entrybar if emaCrossoverDown or emaCrossoverDownOccured strategy.entry('Sell', strategy.short) entrybar := close // Update entrybar when entering a new sell position entrybar