Diese Strategie ist eine Trend-Breakout-Strategie, die auf dem ATR-Indikator basiert. Seine Hauptidee ist es, Trend-Breakout-Trades zu machen, wenn der Preis ein bestimmtes Vielfaches von ATR übersteigt. Die Strategie umfasst auch Trendbestätigung und Begrenzung von Trades innerhalb von Datumsbereichen.
Die Strategie verwendet den ATR-Indikator, um die Preisvolatilität zu messen. ATR steht für Average True Range und misst die durchschnittliche Volatilität über einen Zeitraum. Der Längeparameter in der Strategie berechnet die ATR-Periode und numATRs stellt den ATR-Multiplikator für den Ausbruch dar.
Wenn der Preis über das obere Multiple von ATR bricht, wird eine Long-Position eingenommen.
Darüber hinaus umfasst die Strategie Needlong- und Needshort-Bool-Variablen, um nur lange oder nur kurze Trades zu steuern.
Die Strategie verwendet eine Größenvariable zur Bestimmung der Positionsgröße und berechnet die Auftragsgröße anhand eines Prozentsatzes des Eigenkapitals des Kontos.
Verwendet ATR zur automatischen Anpassung an die Marktvolatilität ohne manuelle Gewinn-/Verlust-Einstellungen.
Flexible Auswahl von lang, kurz oder nur lang/kurz.
Kann Datumsbereiche festlegen, um bei wichtigen Ereignissen nicht zu handeln.
Flexible Positionsgröße basierend auf dem Eigenkapitalanteil.
Der ATR berücksichtigt nur die Preisvolatilität. Es kann während großer Marktschwankungen nicht genügend Stop-Loss haben. Andere Indikatoren können kombiniert werden.
Die Datumsbereichsgrenzen können Chancen verpassen, wenn keine guten Einstellungen vor/nach vorgenommen werden.
Die Verteilung der Anteile in Prozent führt zu großen Verlusten bei Einzelgeschäften.
Hinzufügen von gleitenden Durchschnitten für den Trendfilter zur Verringerung von falschen Breakout-Rauschen.
Test ATR-Perioden, um optimale Parameter zu finden.
Kombination mit anderen Strategien zur Nutzung der Stärken und Verbesserung der Stabilität.
Dies ist ein verständlicher Trend nach der Strategie mit ATR, um sich an die Volatilität anzupassen. Parameteroptimierung und Kombination mit anderen Strategien können die Leistung und Stabilität weiter verbessern.
/*backtest start: 2023-09-30 00:00:00 end: 2023-10-30 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=3 strategy(title = "Noro's Volty Strategy v1.0", shorttitle = "Volty 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 100) //Settings needlong = input(true, defval = true, title = "Long") needshort = input(false, defval = false, title = "Short") capital = input(100, defval = 100, minval = 1, maxval = 10000, title = "Lot, %") length = input(5) numATRs = input(0.75) fromyear = input(1900, defval = 1900, minval = 1900, maxval = 2100, title = "From Year") toyear = input(2100, defval = 2100, minval = 1900, maxval = 2100, title = "To Year") frommonth = input(01, defval = 01, minval = 01, maxval = 12, title = "From Month") tomonth = input(12, defval = 12, minval = 01, maxval = 12, title = "To Month") fromday = input(01, defval = 01, minval = 01, maxval = 31, title = "From day") today = input(31, defval = 31, minval = 01, maxval = 31, title = "To day") //Indicator atrs = sma(tr, length) * numATRs //Trading size = strategy.position_size lot = 0.0 lot := size == 0 ? strategy.equity / close * capital / 100 : lot[1] if (not na(close[length])) and needlong strategy.entry("L", strategy.long, lot, stop = close + atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if (not na(close[length])) and needlong == false strategy.entry("L", strategy.long, 0, stop = close + atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if (not na(close[length])) and needshort strategy.entry("S", strategy.short, lot, stop = close - atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59))) if (not na(close[length])) and needshort == false strategy.entry("S", strategy.short, 0, stop = close - atrs, when = (time > timestamp(fromyear, frommonth, fromday, 00, 00) and time < timestamp(toyear, tomonth, today, 23, 59)))