Estratégia de stop loss dinâmica multiindicadora baseada na confirmação de tendências

SMA MACD ADX Swing Low
Data de criação: 2025-02-20 11:19:58 última modificação: 2025-02-20 11:19:58
cópia: 2 Cliques: 323
2
focar em
319
Seguidores

Estratégia de stop loss dinâmica multiindicadora baseada na confirmação de tendências Estratégia de stop loss dinâmica multiindicadora baseada na confirmação de tendências

Visão geral

Trata-se de uma estratégia de acompanhamento de tendências que combina vários indicadores técnicos, principalmente através da combinação de três indicadores: SMA, MACD e ADX. A estratégia usa um mecanismo de parada de perda dinâmico para otimizar a gestão de risco e obter um controle de posição mais preciso através da identificação de pontos baixos de oscilação.

Princípio da estratégia

A lógica central da estratégia é baseada em mecanismos de tripla verificação:

  1. Para determinar a direção da tendência geral, o preço acima da linha média representa uma tendência ascendente através do SMA 30
  2. Use MACD ((9,18,9) para capturar a energia de preço, exigindo que a linha MACD fique acima da linha de sinal e seja positiva
  3. O ADX ((14) confirma a intensidade da tendência, e o ADX maior que 25 indica que a tendência é suficiente.
  4. Abrir uma posição e fazer mais quando as três condições acima são cumpridas
  5. Estabelecer um stop loss dinâmico através da identificação de mínimos secundários e liquidar a posição quando o preço for abaixo do SMA

Vantagens estratégicas

  1. Verificação cruzada de múltiplos indicadores reduz significativamente o impacto de falsos sinais
  2. A utilização de negociações a nível de rotação para evitar a interferência de flutuações durante o dia
  3. Mecanismos de stop loss dinâmicos, que se adaptam ao ponto de parada ao mover o ponto baixo
  4. ADX filtra tendências fracas para melhorar a qualidade das transações
  5. Gestão de risco abrangente, incluindo proteção dupla de reversão de tendência e parada de prejuízos

Risco estratégico

  1. Indicadores múltiplos podem levar a sinais de atraso e a oportunidades perdidas em corridas rápidas
  2. A operação no nível da circunferência pode enfrentar um grande recuo
  3. Identificação de pontos baixos de oscilação pode ser instável em fortes flutuações
  4. A maior parte dos dados de preços são obtidos por meio de um processo de análise de dados.
  5. Falsos sinais podem ser frequentes em mercados em turbulência

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

  1. Considere a introdução de parâmetros de indicadores de adaptação, ajustados à dinâmica da volatilidade do mercado
  2. Aumentar a verificação de indicadores de volume de transação e aumentar a confiabilidade do sinal
  3. Desenvolvimento de algoritmos mais inteligentes de reconhecimento de Swing Low
  4. Adição de classificação de cenários de mercado, com parâmetros diferentes para diferentes estados de mercado
  5. Optimizar a lógica de stop loss, considerando a introdução de stop loss móvel

Resumir

A estratégia constrói um robusto sistema de acompanhamento de tendências por meio da sinergia de múltiplos indicadores técnicos. O mecanismo de parada dinâmico oferece um bom controle de risco, adequado para acompanhar tendências de médio e longo prazo. As principais vantagens da estratégia são a alta confiabilidade do sinal e o gerenciamento perfeito do risco, mas também enfrenta desafios como o atraso do sinal.

Código-fonte da estratégia
/*backtest
start: 2024-02-20 00:00:00
end: 2024-03-12 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/

//@version=5
strategy("Invest SMA|MACD|ADX Long Weekly Strategy (BtTL)", overlay=true)

// SMA Inputs
smaLength = input.int(30, title="SMA Länge")
// MACD Inputs
macdFastLength = input.int(9, title="MACD schnelle Periode")
macdSlowLength = input.int(18, title="MACD langsame Perside")
macdSignalLength = input.int(9, title="MACD Signal Smoothing")
//ADX Inputs
adxlen = input(14, title="ADX Smoothing")
dilen = input(14, title="DI Länge")

// SMA-Berechnung
smaValue = ta.sma(close, smaLength)
isAboveSMA = close > smaValue
isBelowSMA = close < smaValue

// MACD-Berechnung
[macdLine, signalLine, _] = ta.macd(close, macdFastLength, macdSlowLength, macdSignalLength)
isMACDBuy = macdLine > signalLine and macdLine > 0

// Swing-Low Berechnung (5-Kerzen)
isSwingLow = low[2] > low[1] and low[3] > low[1] and low[1] < low and low[1] < low[4]
var float lastSwingLow = na
var float secondLastSwingLow = na

// Wenn ein neuer Swing-Low gefunden wird
if (isSwingLow[1])
    secondLastSwingLow := lastSwingLow
    lastSwingLow := low[1]

//ADX ermitteln
[pDI,mDI,ADX] = ta.dmi(dilen, adxlen)
IsInTrend = ADX > 25

// Einstiegskondition mit MACD und SMA
longCondition = isAboveSMA and isMACDBuy and IsInTrend
if (longCondition)
    strategy.entry("Long", strategy.long)

// Ausstiegskondition am vorletzten Swing-Low
if (isBelowSMA and na(secondLastSwingLow) == false)
    strategy.exit("Exit", from_entry="Long", stop=secondLastSwingLow)

// Reset bei Position schließen
if(strategy.position_size <= 0)
    secondLastSwingLow := na
    lastSwingLow := na

// Plots
plot(smaValue, title="SMA 30", color=#063eda, linewidth=2)
plot(na(lastSwingLow) ? na : lastSwingLow, title="Last Swing Low", color=#ffb13b, linewidth=1, style=plot.style_circles)
plot(na(secondLastSwingLow) ? na : secondLastSwingLow, title="Second Last Swing Low", color=color.red, linewidth=1, style=plot.style_circles)