Estratégia de Crossover EMA e RSI

EMA RSI ATR
Data de criação: 2024-06-03 11:08:30 última modificação: 2024-06-03 11:08:30
cópia: 0 Cliques: 933
1
focar em
1617
Seguidores

Estratégia de Crossover EMA e RSI

Visão geral

A estratégia de cruzamento entre EMA e RSI identifica sinais potenciais de compra ou venda através da combinação de dois indicadores técnicos, a média móvel do índice (EMA) e o índice relativamente forte (RSI). Quando um cruzamento entre EMA e RSI ocorre, indica que a dinâmica do mercado pode mudar. Por exemplo, quando um EMA de curto período atravessa um EMA de longo período e, ao mesmo tempo, um RSI atravessa uma barreira, indica que uma tendência ascendente pode ocorrer, conhecida como cruzamento de pessimismo.

Princípio da estratégia

  1. Calcule o valor do indicador RSI para o período especificado e trace-o em um gráfico.
  2. Calcule o valor do indicador EMA para o período especificado e trace-o em um gráfico.
  3. Quando o preço está abaixo da EMA e o RSI é menor que 20, é um sinal de compra; quando o preço está acima da EMA e o RSI é maior que 80, é um sinal de venda.
  4. Quando surgir um sinal de compra e o atual preço de fechamento da linha de arbitragem for superior ao da linha de arbitragem anterior, abra uma posição a mais; Quando surgir um sinal de venda e o preço de fechamento da linha de arbitragem for inferior ao da linha de arbitragem anterior, abra uma posição a zero.
  5. O preço de parada e o preço de parada são calculados usando a amplitude real média ((ATR)). O preço de parada é o preço de abertura menos ((ATR + comprimento da linha de umidade), o preço de parada é o preço de abertura mais ((1.2)*(ATR + comprimento da entidade do fio de alumínio))

Vantagens estratégicas

  1. A combinação de EMA e RSI, um indicador de tendência, permite um julgamento mais abrangente da tendência do mercado.
  2. Os sinais de negociação são emitidos no início da formação de uma tendência, ajudando a aproveitar as oportunidades de tendência mais cedo.
  3. O uso do ATR para ajustar dinamicamente o stop loss e a distância de suspensão permite uma melhor adaptação às flutuações do mercado.
  4. Ao mesmo tempo, considera a relação entre a posição do preço e o indicador e a forma do fio de alumínio, aumentando a confiabilidade do sinal.

Risco estratégico

  1. Os indicadores EMA e RSI apresentam um certo atraso, podendo ocorrer um cruzamento entre os indicadores e o preço não reverter imediatamente, resultando em falsos sinais.
  2. O RSI geralmente gera sinais de cruzamento em mercados de turbulência, o que pode levar a um excesso de negociação.
  3. Os limites fixos do RSI podem não ser aplicáveis a todas as condições de mercado e precisam ser ajustados de acordo com as características do mercado.
  4. A estratégia depende fortemente do ATR para o cálculo de stop loss e stop loss, mas o valor do ATR pode ser alterado por uma forte flutuação súbita do preço.

Direção de otimização da estratégia

  1. Otimizar os parâmetros do EMA e do RSI para encontrar a combinação de parâmetros mais adequada para o mercado atual.
  2. No mercado de turbulência, adicione outras condições de filtragem, como mudanças no volume de negociação, volatilidade, etc., para filtrar os falsos sinais frequentes.
  3. O RSI é ajustado para se adaptar a diferentes condições de mercado.
  4. Usar vários métodos de parada e parada, como parada de perda baseada em pontos de resistência de suporte ou parada móvel em combinação com a direção da tendência, para melhorar a capacidade de controle de risco.
  5. Adicione o módulo de gerenciamento de posições e ajuste o tamanho da posição de cada transação de acordo com a volatilidade do mercado e a situação de risco da conta.

Resumir

A estratégia de cruzamento entre EMA e RSI é uma estratégia de acompanhamento de tendências simples e fácil de usar, que combina indicadores de duas dimensões de tendência e dinâmica para determinar a direção do mercado de forma mais abrangente. Ao mesmo tempo, a estratégia usa condições de filtragem e métodos de stop loss dinâmicos para melhorar a qualidade do sinal e a capacidade de controle de risco. No entanto, a estratégia também possui algumas limitações, como atraso no indicador, frequência de negociação e outros problemas.

Código-fonte da estratégia
/*backtest
start: 2023-05-28 00:00:00
end: 2024-06-02 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © pritom980

//@version=5
strategy("EMA RSI Cross", overlay=true, margin_long=100, margin_short=100)

// add RSI

rsi_period = input.int(7,"RSI Period")
rsi_val =  ta.rsi(close[1],rsi_period)
plot(rsi_val, color=color.blue, linewidth=2, title="RSI")

buyRsiFlag = rsi_val < 20
sellRsiFlag = rsi_val > 80

// add EMA
ema = ta.ema(close, 50)
plot(ema, color=color.red, linewidth=2, title="EMA")


// check buy

// buy when the price is below ema 
buyFlag = ema > close ? true : false

// sell when the price is above ema
sellFlag = ema < close ? true : false


bgcolor(buyFlag and buyRsiFlag ? color.green : na )
bgcolor(sellFlag and sellRsiFlag ? color.red : na )




// Check if current candle's body is bigger than previous candle's body and of opposite color
is_body_bigger_long = math.abs(close - open) > math.abs(close[1] - open[1]) and close > open != close[1] > open[1]


greenCandle = close > close[1]
redCandle = close < close[1]
// Mark the candle
bgcolor(is_body_bigger_long and greenCandle and buyFlag  ? color.blue : na, transp=70)


// ENTRY ---------------------

// Input for ATR period
atr_length = input(14, title="ATR Length")

// Calculate ATR
atr_value = ta.atr(atr_length)

// Calculate stop loss and take profit levels
candleBody = math.abs(close-open)
slDist = atr_value + candleBody

stop_loss_long = close - slDist
take_profit_long = close + (1.2 * slDist) 


stop_loss_short = high + slDist
take_profit_short = high - (1.2 * slDist)

// Entry and exit conditions
if (buyFlag and buyRsiFlag  and strategy.opentrades >= 0 and greenCandle)
    strategy.entry("Long", strategy.long)
    strategy.exit("Take Profit/Stop Loss", "Long", stop=stop_loss_long, limit=take_profit_long)

// Entry and exit conditions
if (sellFlag and sellRsiFlag   and strategy.opentrades <= 0 and redCandle)
    strategy.entry("Short", strategy.short)
    strategy.exit("Take Profit/Stop Loss", "Short", stop=stop_loss_short, limit=take_profit_short)