A estratégia de seguimento da tendência multi-EMA e RSI

Autora:ChaoZhang, Data: 2024-03-01 13:26:24
Tags:

img

Resumo

Este artigo analisa principalmente a estratégia quantitativa de negociação desenvolvida por Ravikant_sharma com base em múltiplas médias móveis exponenciais (EMA) e índice de força relativa (RSI).

Princípio da estratégia

Cálculo do indicador

A estratégia usa 5 EMAs com períodos diferentes, incluindo linhas de 9 dias, 21 dias, 51 dias, 100 dias e 200 dias.

Condições de entrada

Antes da compra, deve preencher-se uma das seguintes condições:

  1. A EMA de 9 dias cruza acima da EMA de 21 dias
  2. A EMA de 9 dias cruza acima da EMA de 51 dias
  3. A EMA de 51 dias cruza abaixo da EMA de 100 dias

Ao mesmo tempo, o RSI deve ser superior a 65, indicando uma forte tendência de alta.

Condições de saída

Uma das seguintes condições deve ser preenchida antes do encerramento da posição:

  1. A EMA de 9 dias cruza abaixo da EMA de 51 dias, indicando uma inversão de tendência
  2. O preço de fechamento excede 125% do preço de entrada, atingindo a meta de lucro
  3. RSI cai abaixo de 40, sinalizando reversão
  4. Preço de fechamento abaixo de 98% do preço de entrada, stop loss acionado

Análise das vantagens

Trata-se de uma tendência típica que segue uma estratégia com os seguintes pontos fortes:

  1. Utilização de cruzamentos da EMA para determinar a direção da tendência para um acompanhamento eficaz da tendência
  2. A combinação de EMAs de diferentes períodos identifica sinais de tendência mais fiáveis
  3. O filtro RSI evita sinais falsos em mercados de intervalo
  4. Configurações de preenchimento de lucros e stop loss bloqueiam lucros e controlam riscos

Riscos e soluções

Ainda existem alguns riscos:

  1. Os mercados de gama podem apresentar sinais incertos com frequência, causando excesso de negociação.
  2. Outros indicadores podem ser adicionados para determinar a força do sinal longo/curto.
  3. Os parâmetros devem ser otimizados de acordo com diferentes produtos e ambientes de mercado.

Orientações de otimização

A estratégia pode ser ainda melhorada das seguintes maneiras:

  1. Optimização de parâmetros para diferentes produtos
  2. Adição de outros indicadores técnicos para a construção de modelos multifatores
  3. Incorporação de algoritmos de aprendizagem de máquina para julgar a qualidade do sinal
  4. Combinar análise de sentimentos para evitar armadilhas emocionais
  5. Teste de diferentes estratégias de take profit/stop loss para encontrar o ideal

Conclusão

Em conclusão, esta é uma estratégia geral confiável e fácil de implementar. Com o crossover da EMA para a direção da tendência e o filtro RSI para sinais falsos, bons resultados de backtest fornecem uma base sólida para mais parâmetros e otimização do modelo para obter lucros constantes. No entanto, os traders ainda devem ser cautelosos com inversões acentuadas e parâmetros inadequados que representam riscos.


/*backtest
start: 2024-01-30 00:00:00
end: 2024-02-29 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Ravikant_sharma

//@version=5

strategy('new', overlay=true)

start = timestamp(1990, 1, 1, 0, 0)
end = timestamp(2043, 12, 12, 23, 59)
ema0 = ta.ema(close, 9)
ema1 = ta.ema(close, 21)
ema2 = ta.ema(close, 51)
ema3 = ta.ema(close, 100)
ema4 = ta.ema(close, 200)

rsi2=ta.rsi(ta.sma(close,14),14)
plot(ema0, '9', color.new(color.green, 0))
plot(ema1, '21', color.new(color.black, 0))
plot(ema2, '51', color.new(color.red, 0))
plot(ema3, '200', color.new(color.blue, 0))   

//plot(ema4, '100', color.new(color.gray, 0)) 


//LongEntry = (  ta.crossover(ema0,ema3)  or  ta.crossover(ema0,ema2) or  ta.crossunder(ema2,ema3) ) // ta.crossover(ema0,ema1) //
LongEntry=false
if ta.crossover(ema0,ema1) 
    if rsi2>65
        LongEntry:=true
if ta.crossover(ema1,ema2)
    if rsi2>65
        LongEntry:=true
        
LongExit =  ta.crossunder(ema0,ema2) or close >(strategy.position_avg_price*1.25) or rsi2 <40 or close < (strategy.position_avg_price*0.98)



if time >= start and time <= end 
    if(LongEntry and rsi2>60)
        strategy.entry('Long', strategy.long, 1)
    if(LongExit)
        strategy.close('Long') 



Mais.