Múltiplas médias móveis e estratégia de stop-profit e stop-loss de crossover RSI dinâmico ATR

SMA RSI ATR TP SL
Data de criação: 2025-02-21 13:44:39 última modificação: 2025-02-21 13:44:39
cópia: 0 Cliques: 330
2
focar em
319
Seguidores

Múltiplas médias móveis e estratégia de stop-profit e stop-loss de crossover RSI dinâmico ATR Múltiplas médias móveis e estratégia de stop-profit e stop-loss de crossover RSI dinâmico ATR

Visão geral da estratégia

A estratégia é um sistema de negociação automatizado baseado em múltiplos sinais de cruzamento de médias móveis (SMA) e indicadores relativamente fracos (RSI). Combina mecanismos de verificação múltipla de médias móveis de curto e médio prazo e confirma tendências através do indicador RSI, enquanto usa o stop loss ATR dinâmico para controlar o risco, criando um quadro de decisão de negociação completo. A estratégia é usada principalmente para capturar pontos de inflexão de tendências de mercado e aumentar a precisão das negociações através da confirmação cruzada de múltiplos indicadores técnicos.

Princípio da estratégia

A lógica central da estratégia baseia-se em cinco critérios fundamentais:

  1. Preços ultrapassam média móvel de alta de 20 ciclos
  2. Preços ultrapassam média móvel de baixa de 20 ciclos
  3. Preços ultrapassam média móvel de alta de 50 ciclos
  4. Preços ultrapassam média móvel de baixa de 50 ciclos
  5. RSI (7) subiu para 50

A estratégia produz um sinal de compra somente quando essas cinco condições são simultaneamente satisfeitas. Após a entrada, a estratégia usa um nível de stop loss e stop loss dinâmico baseado no ATR, com o stop loss definido como 1,5 vezes o ATR e o stop loss definido como 2,5 vezes o ATR, um design que permite ajustar automaticamente os parâmetros de gerenciamento de risco de acordo com a volatilidade do mercado.

Vantagens estratégicas

  1. O mecanismo de verificação múltipla aumenta significativamente a confiabilidade dos sinais de transação, reduzindo o impacto de sinais falsos, exigindo a confirmação simultânea de vários indicadores técnicos.
  2. O sistema de gestão de risco dinâmico pode ajustar automaticamente os níveis de stop loss e stop loss de acordo com a volatilidade do mercado, permitindo uma boa adaptabilidade da estratégia.
  3. A combinação de tracking de tendências e inversão de momentum permite capturar brechas de força e travar prejuízos em tempo hábil para proteger os lucros.
  4. Os parâmetros da estratégia são altamente ajustáveis, permitindo que os comerciantes ajustem os parâmetros de acordo com diferentes cenários de mercado e preferências de risco pessoais.

Risco estratégico

  1. A satisfação simultânea de múltiplos requisitos pode fazer com que você perca algumas oportunidades de negócios em potencial.
  2. Em mercados turbulentos, a frequente passagem de preços pela linha média pode desencadear sinais de negociação excessivos.
  3. O multiplicador ATR fixo pode não ser suficientemente flexível em condições de mercado extremas.
  4. A estratégia não leva em consideração os fatores fundamentais do mercado, e a análise puramente técnica pode falhar diante de uma notícia importante.

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

  1. Introdução de filtros de volatilidade de mercado para ajustar a frequência de negociação e o tamanho das posições durante períodos de alta volatilidade.
  2. Aumentar o mecanismo de confirmação do volume de transações e aumentar a confiabilidade do sinal de ruptura.
  3. Desenvolver um mecanismo de regulação do multiplicador ATR auto-adaptável para ajustar os níveis de stop loss e stop loss de acordo com a dinâmica da taxa de flutuação histórica
  4. Adicione um filtro de força de tendência para evitar o excesso de negociação em mercados de fraqueza.

Resumir

Trata-se de uma estratégia de negociação técnica razoavelmente concebida para aumentar a precisão da negociação através da confirmação cruzada de múltiplos indicadores técnicos e para proteger os lucros com o uso de um sistema de gestão de risco dinâmico. Embora a estratégia tenha certas limitações, pode ser melhorada ainda mais com a orientação de otimização recomendada.

Código-fonte da estratégia
/*backtest
start: 2024-02-22 00:00:00
end: 2025-02-19 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"SOL_USDT"}]
*/

//@version=5
strategy("Virat Bharat Auto Trade", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// **User-Defined Inputs for Customization**
smaLength20 = input(20, title="SMA High/Low 20 Length")
smaLength50 = input(50, title="SMA High/Low 50 Length")
rsiLength = input(7, title="RSI Length")
rsiLevel = input(50, title="RSI Crossover Level")
atrMultiplierSL = input(1.5, title="ATR Multiplier for Stop Loss")
atrMultiplierTP = input(2.5, title="ATR Multiplier for Target")

// **Defining the Indicators with Custom Inputs**
smaHigh20 = ta.sma(high, smaLength20)
smaLow20 = ta.sma(low, smaLength20)
smaHigh50 = ta.sma(high, smaLength50)
smaLow50 = ta.sma(low, smaLength50)
rsiValue = ta.rsi(close, rsiLength)
atrValue = ta.atr(14)  // ATR for Dynamic Stop Loss & Target

// **Conditions for Buy Signal**
condition1 = ta.crossover(close, smaHigh20)
condition2 = ta.crossover(close, smaLow20)
condition3 = ta.crossover(close, smaHigh50)
condition4 = ta.crossover(close, smaLow50)
condition5 = ta.crossover(rsiValue, rsiLevel)

// **Final Buy Signal (Only when all conditions match)**
buySignal = condition1 and condition2 and condition3 and condition4 and condition5

// **Buy Price, Stop Loss & Target**
buyPrice = close
stopLoss = buyPrice - (atrValue * atrMultiplierSL)  // Dynamic Stop Loss
target = buyPrice + (atrValue * atrMultiplierTP)  // Dynamic Target

// **Plot Buy Signal on Chart**
plotshape(buySignal, location=location.belowbar, color=color.green, style=shape.labelup, title="BUY", size=size.small, text="BUY")

// **Plot Labels for Buy, Stop Loss & Target**
if buySignal
    label.new(x=bar_index, y=buyPrice, text="BUY @ " + str.tostring(buyPrice, format="#.##"), color=color.green, textcolor=color.white, size=size.small, style=label.style_label_down, yloc=yloc.price)
    label.new(x=bar_index, y=stopLoss, text="STOP LOSS @ " + str.tostring(stopLoss, format="#.##"), color=color.red, textcolor=color.white, size=size.small, style=label.style_label_down, yloc=yloc.price)
    label.new(x=bar_index, y=target, text="TARGET @ " + str.tostring(target, format="#.##"), color=color.blue, textcolor=color.white, size=size.small, style=label.style_label_up, yloc=yloc.price)

// **Strategy Trading Logic - Automated Entry & Exit**
if buySignal
    strategy.entry("BUY", strategy.long)
    strategy.exit("SELL", from_entry="BUY", loss=atrValue * atrMultiplierSL, profit=atrValue * atrMultiplierTP)