Estratégia de trailing stop loss baseada em SMA e ATR


Data de criação: 2024-02-06 10:06:29 última modificação: 2024-02-06 10:06:29
cópia: 0 Cliques: 751
1
focar em
1617
Seguidores

Estratégia de trailing stop loss baseada em SMA e ATR

Visão geral

A estratégia é uma estratégia de negociação de longo prazo baseada em uma média móvel simples (SMA) e uma taxa de flutuação real média (ATR) com configurações de stop loss. Combina os benefícios de acompanhamento de tendências e gerenciamento de risco, com o objetivo de controlar retrações e maximizar os lucros.

Princípio da estratégia

A estratégia usa o SMA 200 para determinar a direção da grande tendência, usa o ATR para definir a linha de parada e para monitorar a perda dinâmica. Concretamente, o sinal de compra é o fechamento do SMA 200 mais o ATR 14 dias, o que significa que o fechamento está atualmente em alta. O sinal de perda é o fechamento do SMA 200 menos o ATR 14 dias, o que significa que a tendência de alta foi quebrada.

Análise de vantagens

A estratégia combina as vantagens dos dois indicadores SMA e ATR. A SMA 200 filtra o ruído do mercado, bloqueando a direção principal da linha longa; e a ATR 14 dias pode definir uma linha de parada com base na flutuação das últimas duas semanas, atingindo o efeito de um stop loss de acompanhamento dinâmico. Isso permite um lucro contínuo na tendência, além de controlar efetivamente as retrações.

  1. O risco de controle de perda, seguindo a tendência, pode ser obtido com um alto índice de lucro.

  2. Retirada controlada: o rastreamento dinâmico do ATR reduz a incidência de incidentes inesperados e controla efetivamente a retirada.

  3. Parâmetros simples. Usar apenas dois parâmetros para equilibrar riscos e benefícios e evitar otimização excessiva.

Análise de Riscos

A estratégia também tem alguns riscos que devem ser levados em conta. Os principais riscos são:

  1. Risco de reversão de tendência. A estratégia em si não pode determinar a reversão de tendência, podendo causar grandes perdas se ocorrer uma reversão súbita.

  2. Risco de atraso do SMA. O SMA tem um certo atraso e não pode refletir imediatamente a mudança de tendência.

  3. Riscos de configuração de parâmetros ATR. Se os parâmetros ATR forem muito grandes ou pequenos, eles afetarão o desempenho da estratégia.

Resolução:

  1. Combinado com outros indicadores para avaliar tendências, como o MACD.
  2. Teste diferentes combinações de parâmetros para encontrar o melhor equilíbrio.

Direção de otimização

A estratégia também pode ser melhorada em alguns aspectos:

  1. Teste diferentes combinações de parâmetros SMA e ATR para encontrar o melhor.

  2. Adição de outros indicadores técnicos para a inversão de julgamento, como o MACD.

  3. Optimizar mecanismos de suspensão, como suspensão de mudança, suspensão móvel, etc.

  4. Combine os indicadores fundamentais das ações para evitar a compra de ações que não têm perspectivas de alta.

Resumir

A estratégia integra métodos de acompanhamento de tendências e gerenciamento de risco dinâmico, permitindo a otimização de stop loss e stop loss durante a posse de longas linhas. Tem características de alta taxa de ganho e perda, retorno controlado e equilíbrio de risco e ganho. Mas também existe um certo risco de reversão de tendência e dificuldade de otimização de parâmetros.

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

//@version=5
strategy("SMA+ATR Strategie", overlay=true)

// Benutzer-Inputs für SMA, ATR und die Anzeigeoption
smaLength = input(200, title="SMA Länge")
atrLength = input(14, title="ATR Länge")
showSMAandATR = input(true, title="Zeige SMA und ATR-Bänder")

// Berechnung von SMA und ATR
sma = ta.sma(close, smaLength)
atr = ta.atr(atrLength)

// Kauf- und Verkaufslogik basierend auf SMA und ATR
buyCondition = close > sma + atr
sellCondition = close < sma - atr

// Variable zum Speichern des Eintrittspreises
var float entryPrice = na

// Kauf- und Verkaufssignale
if (buyCondition)
    strategy.entry("Buy", strategy.long)
    entryPrice := close // Speichere den Eintrittspreis

if (sellCondition)
    // Nur wenn ein Kauf stattgefunden hat
    if not na(entryPrice)
        // Berechne die Performance seit dem Kaufsignal
        performanceSinceBuy = ((close - entryPrice) / entryPrice) * 100
        // Anzeigen der Performance
        // Wähle die Box-Farbe basierend auf dem Vorzeichen der Performance
        plColor = performanceSinceBuy >= 0 ? color.green : color.red
        // Anzeigen der Performance in der entsprechenden Farbe
        plBox = "P/L: " + str.tostring(performanceSinceBuy, "#.##") + "%"
        label.new(bar_index, high, text=plBox, color=plColor, textcolor=color.white, style=label.style_label_center, yloc=yloc.price)
        
    // Schließe den Trade und setze den Eintrittspreis zurück
    strategy.close("Buy")
    entryPrice := na

// Optionale Anzeige von SMA und ATR-Band
plot(showSMAandATR ? sma : na, color=color.blue, title="SMA 200")
plot(showSMAandATR ? sma + atr : na, color=color.green, title="SMA 200 + ATR")
plot(showSMAandATR ? sma - atr : na, color=color.red, title="SMA 200 - ATR")