Adaptive ATR Trend Breakout Strategie


Erstellungsdatum: 2023-10-31 15:58:46 zuletzt geändert: 2023-10-31 15:58:46
Kopie: 0 Klicks: 690
1
konzentrieren Sie sich auf
1617
Anhänger

Adaptive ATR Trend Breakout Strategie

Überblick

Die Strategie ist eine auf den ATR-Indikatoren basierende Trend-Breaking-Strategie. Ihre Hauptidee besteht darin, einen Trend-Breaking-Operation durchzuführen, wenn der Preis eine bestimmte Vielzahl von ATR übersteigt. Die Strategie enthält gleichzeitig eine Trendbestätigung und die Funktion, den Handel mit einem begrenzten Datumsbereich zu nutzen.

Grundsätze

Die Strategie verwendet die ATR-Anzeige, um die Preisschwankungen zu ermitteln. Die ATR ist die durchschnittliche reale Wellenlänge, die die durchschnittliche Preisschwankung in einem bestimmten Zeitrahmen misst. Die Strategie setzt die Length-Parameter für die Berechnung der ATR-Zyklen ein, die numATRs-Parameter für die ATR-Mehrzahl der Durchbrüche.

Wenn die Preise steigen, brechen sie die oberen numATRs multipliziert mit ATR durch. Wenn die Preise sinken, brechen sie die unteren numATRs multipliziert mit ATR durch.

Darüber hinaus enthält die Strategie BOOL-Variablen, die eine Long-Position benötigen und eine Short-Position benötigen. Sie können nur mehr oder nur weniger handeln. Die Strategie setzt auch einen Datumsbereich ein, der nur zwischen den angegebenen Daten gehandelt wird, um eine Zeitbereichsbeschränkung zu erreichen.

Die Strategie nutzt die Variable “size” um die Positionen zu beurteilen und berechnet die Anzahl der einzelnen Hände nach der Situation der Positionen. Die Anzahl der Hände wird nach dem Prozentsatz der Rechte und Zinsen des Kontos berechnet.

Vorteile

  • Automatische Anpassung an Marktschwankungen mit dem ATR-Indikator ohne manuelle Einstellung der Stop-Loss-Stopp-Distanz
  • Flexibilität, mehr oder nur mehr zu tun
  • Ein Date-Range für den Handel, um wichtige Zeitpunkte zu umgehen
  • Flexible Handsets, Bestellprozentsätze auf Konten

Risiken und Lösungen

  • Der ATR-Indikator berücksichtigt nur die Preisschwankungen und kann bei starken Marktveränderungen zu klein sein, um die Stop-Loss-Distanz zu optimieren, die in Kombination mit anderen Indikatoren erforderlich ist
  • Bei der Begrenzung des Datumsbereichs kann der Datumsbereich angemessen erweitert werden, wenn keine geeignete Gelegenheit vor oder nach einem wichtigen Zeitraum vorhanden ist, was zu verpassten Handelsmöglichkeiten führen kann.
  • Bei Bestellungen mit Kontoanteil ist ein vernünftiger Prozentsatz erforderlich, um zu hohe Einzelschäden zu vermeiden

Optimierung

  • Einige Unternehmen können auch Trendindikatoren wie beispielsweise bewegliche Durchschnitte einbeziehen, um die Geräusche von Nicht-Trend-Breakouts zu filtern.
  • Verschiedene ATR-Zyklusparameter können getestet werden, um die beste Kombination auszuwählen
  • Erwägung der Verwendung in Kombination mit anderen Strategien zur Nutzung der jeweiligen Vorteile und zur Verbesserung der Strategie-Stabilität

Zusammenfassen

Die Gesamtkonzeption dieser Strategie ist klar und verständlich. Die Verwendung von ATR-Indikatoren zur automatischen Anpassung an die Marktvolatilität ist eine allgemeine Trendverfolgungsstrategie. Durch die Optimierung der Parameter und die Kombination anderer Strategien kann die Strategieleistung und Stabilität weiter verbessert werden.

Strategiequellcode
/*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)))