Esta estrategia es una estrategia de negociación a largo plazo que establece un stop loss dinámico basado en el Simple Moving Average (SMA) y el Average True Range (ATR).
Entra largo cuando el precio de cierre cruza por encima de SMA 200 más ATR 14, cierra la posición cuando el precio de cierre cruza por debajo de SMA 200 menos ATR 14. La estrategia utiliza SMA 200 para determinar la dirección de la tendencia principal, y establece la línea de stop loss dinámicamente con ATR 14, realizando una stop loss dinámica. Específicamente, la señal de compra se activa cuando el precio de cierre rompe SMA 200 más ATR 14. Esta ruptura significa que el mercado actual se mantiene en tendencia alcista. La señal de stop loss se activa cuando el precio de cierre rompe SMA 200 menos ATR 14. Esta ruptura significa que se rompe la tendencia alcista.
Esta estrategia combina las ventajas de ambos indicadores SMA y ATR. SMA 200 filtra el ruido del mercado y bloquea en la dirección de la tendencia primaria. ATR 14 establece una línea de stop loss basada en la volatilidad de las últimas dos semanas, realizando una función de stop loss dinámica. Esto logra una rentabilidad sostenida dentro de la tendencia, al tiempo que también controla las reducciones de manera efectiva.
Seguir las tendencias y controlar los riesgos conduce a una mayor relación beneficio/pérdida.
Las reducciones controlables: el stop loss dinámico con ATR reduce el impacto de las perturbaciones esporádicas del mercado.
Sólo dos parámetros equilibran los riesgos y los rendimientos, evitando el exceso de adaptación.
Algunos de los riesgos de esta estrategia deben ser:
El riesgo de reversión de tendencia: la estrategia en sí misma no puede identificar la reversión de tendencia, lo que puede conducir a enormes pérdidas si aparece un cambio repentino de tendencia.
El riesgo de retraso de la SMA tiene cierto efecto de retraso que no puede reflejar el cambio de tendencia al instante.
Riesgo de los parámetros ATR: la configuración incorrecta de los parámetros ATR puede afectar el rendimiento de la estrategia.
Soluciones:
Esta estrategia puede optimizarse aún más en los siguientes aspectos:
Prueba diferentes combinaciones de parámetros SMA y ATR para encontrar el óptimo.
Añadir más indicadores técnicos para juzgar la reversión, por ejemplo MACD.
Optimizar el mecanismo de stop loss con stop loss trasero, stop loss móvil, etc.
Combine factores fundamentales para evitar comprar acciones con fundamentos débiles.
Esta estrategia integra el seguimiento de tendencias y métodos dinámicos de gestión de riesgos para optimizar el stop loss y obtener ganancias durante los períodos de retención largos. Cuenta con una alta relación ganancia/pérdida, reducciones controlables y un perfil de riesgo/rendimiento equilibrado. Pero también tiene algunos riesgos de inversión de tendencias y dificultad en la optimización de parámetros. En general, esta estrategia simple y efectiva proporciona una idea de trading a largo plazo digna de más pruebas y optimización para el trading cuantitativo.
/*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")