Die Dual ATR Trailing Stop Strategie ist eine kurzfristige Handelsstrategie, die auf dem Indikator Average True Range (ATR) basiert.
Der Kern dieser Strategie besteht darin, zwei ATR-Stop-Loss-Linien zu verwenden. Eine ist die schnelle ATR-Linie mit kurzer Periode und einem kleinen Multiplikator für eine schnelle Reaktion. Die andere ist die langsame ATR-Linie mit einer längeren Periode und einem größeren Multiplikator für die Filtration. Wenn die schnelle ATR-Linie über die langsame ATR-Linie kreuzt, erzeugt sie ein Kaufsignal. Wenn die schnelle ATR-Linie unter die langsame ATR-Linie kreuzt, erzeugt sie ein Verkaufssignal.
Die spezifische Logik ist: Berechnen Sie eine schnelle ATR-Linie und eine langsame ATR-Linie. Wenn der Preis über der langsamen Linie liegt, verwenden Sie eine schnelle Linie, um den Stop-Loss zu verfolgen. Ansonsten verwenden Sie eine langsame Linie, um den Stop-Loss zu verfolgen. Die Farbe von Kline repräsentiert die aktuelle Stop-Loss-Linie. Grün und Blau bedeutet, dass Sie eine schnelle Linie verwenden. Rot und Gelb bedeutet, dass Sie eine langsame Linie verwenden. Verlassen Sie, wenn der Marktpreis die Stop-Loss-Linien berührt.
Die Vorteile dieser Strategie sind:
Es gibt auch einige Risiken:
Wir können die Risiken reduzieren, indem wir die ATR-Periode optimieren, den ATR-Multiplikator anpassen, andere Indikatoren für die Filtration kombinieren usw.
Die Optimierungsrichtungen sind:
Die Dual ATR Trailing Stop Strategie ist leicht zu verstehen und umzusetzen, besonders für hochvolatile Szenarien geeignet und kann Risiken effektiv kontrollieren.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h 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/ // © ceyhun //@version=4 strategy("ATR Trailing Stop Strategy by ceyhun", overlay=true) /////////notes//////////////////////////////////////// // This is based on the ATR trailing stop indicator // // width addition of two levels of stops and // // different interpretation. // // This is a fast-reacting system and is better // // suited for higher volatility markets // ////////////////////////////////////////////////////// SC = input(close, "Source", input.source) // Fast Trail // AP1 = input(5, "Fast ATR period", input.integer) // ATR Period AF1 = input(0.5, "Fast ATR multiplier", input.float) // ATR Factor SL1 = AF1 * atr(AP1) // Stop Loss Trail1 = 0.0 Trail1 := iff(SC > nz(Trail1[1], 0) and SC[1] > nz(Trail1[1], 0), max(nz(Trail1[1], 0), SC - SL1), iff(SC < nz(Trail1[1], 0) and SC[1] < nz(Trail1[1], 0), min(nz(Trail1[1], 0), SC + SL1), iff(SC > nz(Trail1[1], 0), SC - SL1, SC + SL1))) // Slow Trail // AP2 = input(10, "Slow ATR perod", input.integer) // ATR Period AF2 = input(2, "Slow ATR multiplier", input.float) // ATR Factor SL2 = AF2 * atr(AP2) // Stop Loss Trail2 = 0.0 Trail2 := iff(SC > nz(Trail2[1], 0) and SC[1] > nz(Trail2[1], 0), max(nz(Trail2[1], 0), SC - SL2), iff(SC < nz(Trail2[1], 0) and SC[1] < nz(Trail2[1], 0), min(nz(Trail2[1], 0), SC + SL2), iff(SC > nz(Trail2[1], 0), SC - SL2, SC + SL2))) // Bar color for trade signal // Green = Trail1 > Trail2 and close > Trail2 and low > Trail2 Blue = Trail1 > Trail2 and close > Trail2 and low < Trail2 Red = Trail2 > Trail1 and close < Trail2 and high < Trail2 Yellow = Trail2 > Trail1 and close < Trail2 and high > Trail2 // Signals // Bull = barssince(Green) < barssince(Red) Bear = barssince(Red) < barssince(Green) Buy = crossover(Trail1, Trail2) Sell = crossunder(Trail1, Trail2) TS1 = plot(Trail1, "Fast Trail", style=plot.style_line,color=Trail1 > Trail2 ? color.blue : color.yellow, linewidth=2) TS2 = plot(Trail2, "Slow Trail", style=plot.style_line,color=Trail1 > Trail2 ? color.green : color.red, linewidth=2) fill(TS1, TS2, Bull ? color.green : color.red, transp=90) plotcolor = input(true, "Paint color on chart", input.bool) bcl = iff(plotcolor == 1, Blue ? color.blue : Green ? color.lime : Yellow ? color.yellow : Red ? color.red : color.white, na) barcolor(bcl) if Buy strategy.entry("Buy", strategy.long, comment="Buy") if Sell strategy.entry("Sell", strategy.short, comment="Sell")