ATR Trendfolgestrategie


Erstellungsdatum: 2023-09-28 11:32:09 zuletzt geändert: 2023-09-28 11:32:09
Kopie: 0 Klicks: 795
1
konzentrieren Sie sich auf
1617
Anhänger

Überblick

Die Strategie basiert auf dem mittleren realen Wellenlängenindikator ATR, um die Richtung des Trends zu bestimmen. Wenn der Trend steigt, wird mehr getan, und wenn der Trend fällt, wird kurz gemacht. Sie gehört zu den Strategien, die dem Trend folgen.

Strategieprinzip

Die Strategie berechnet zunächst den einfachen Moving Average sma und den Index Moving Average ema der Preise. Dann wird der ATR-Indikator berechnet, also die durchschnittliche Bandbreite der Preise in den letzten N Tagen.

Die Strategie beurteilt die Richtung des Trends anhand der Ema-Durchschnitts-, der Ema-Oberstraße (EMA + ATR *-Faktor) und der Ema-Unterstraße (EMA - ATR *-Faktor). Wenn der Preis oben ist, machen Sie mehr; wenn der Preis unten ist, machen Sie weniger.

Hauptsächliche Logik:

  1. Berechnen Sie die Durchschnittspreise von SMA und EMA
  2. Berechnung der ATR-Durchschnittsspanne
  3. Berechnung der Auf- und Abfahrten
  4. Mehrfache Signale: Preise steigen in die Bahn
  5. Das sind die wichtigsten Faktoren, die die Preise beeinflussen.
  6. Stop-Loss-Gleichgewicht eingestellt: Preise unterhalb der Bahnlinie; Preise oben unterhalb der Bahnlinie

Durch ATR kann die Position dynamisch angepasst werden, um Trends zu verfolgen.

Strategische Vorteile

  1. Der ATR-Indikator kann die Richtung des Trends bestimmen und die Preisentwicklung effektiv erfassen.
  2. Ein durchschnittlich eingestellter Stop-Loss, mit dem die Risiken angemessen kontrolliert werden können
  3. Die Strategie ist klar und einfach zu verstehen.
  4. Konfigurierbare Parameter, die flexibel für unterschiedliche Marktumgebungen sind

Strategisches Risiko

  1. Der ATR-Indikator wird bei starken Marktschwankungen ausfallen
  2. Fehlgelegte Parameter können zu häufigen Positionen führen
  3. Stoppschäden können nicht wirksam sein, wenn ein unerwartetes Ereignis zu einer schnellen Umkehrung führt
  4. Markte mit hohen Transaktionsgebühren, Setting muss angepasst werden

Die Lösung:

  1. Bei starken Marktschwankungen ist es sinnvoll, die Strategie auszusetzen oder andere Indikatoren zu verwenden.
  2. Optimierung der Parameter zur Verringerung der Häufigkeit der Eröffnung von Positionen
  3. Erhöhung der Stop-Loss-Rate für wichtige Datenereignisse
  4. Anpassung der ATR-Berechnungsspanne an die jeweiligen Sorten

Richtung der Strategieoptimierung

  1. Kombination von Trendindikator-Optimierungsparametern, wie z. B. die Aufnahme von MACDs, um Trends zu bestimmen
  2. Ein zusätzlicher Filter, wie der von Brin, entscheidet, ob der Spieler eintritt
  3. Optimierung von Stop-Loss-Methoden, wie beispielsweise bewegliche Stop-Loss- oder Off-Party-Anzeigen
  4. Optimierung des ATR-Bereichs für bestimmte Sorten
  5. Erhöhung der Kapitalverwaltungsstrategien, wie z.B. der Festanlage
  6. Dynamische Optimierungsparameter in Kombination mit einer maschinellen Lernmethode

Zusammenfassen

Die ATR-Trendverfolgungsstrategie ist eine typische Trendverfolgungsstrategie. Die Strategie hat den Vorteil, dass sie einfach und einfach zu bedienen ist und die Trends effektiv verfolgen kann. Es besteht jedoch ein gewisses Risiko, dass sie für verschiedene Marktumgebungen optimiert und angepasst werden muss, um die Strategie optimal zu nutzen.

Strategiequellcode
/*backtest
start: 2023-08-28 00:00:00
end: 2023-09-27 00:00:00
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/
// © Investoz

//@version=4
strategy("ATR Strategy FOREX", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

len = input(26, type=input.integer, minval=1, title="Length")
mul = input(2.618, type=input.float, minval=0, title="Length")
mullow = input(2.386, type=input.float, minval=0, title="Length")

price = sma(close, 1)
average = ema(close, len)
diff = atr(len) * mul
difflow = atr(len) * mullow

bull_level = average + diff
bear_level = average - difflow
bull_cross = crossunder(price, bear_level)
bear_cross = crossunder(bull_level, price)

FromMonth = input(defval = 8, title = "From Month", minval = 1, maxval = 12)
FromDay   = input(defval = 18, title = "From Day", minval = 1, maxval = 31)
FromYear  = input(defval = 2008, title = "From Year", minval = 2008)
ToMonth   = input(defval = 1, title = "To Month", minval = 1, maxval = 12)
ToDay     = input(defval = 1, title = "To Day", minval = 1, maxval = 31)
ToYear    = input(defval = 2020, title = "To Year", minval = 2019)

start     = timestamp(FromYear, FromMonth, FromDay, 00, 00)  
finish    = timestamp(ToYear, ToMonth, ToDay, 23, 59)       
startTimeOk()  => true

if (startTimeOk()) and ema(close,1) > ema(close,528)
    strategy.entry("KOP", strategy.long, when=bull_cross) 
    strategy.close("KOP", when=bear_cross)  
if (startTimeOk()) and ema(close,1) < ema(close,528)
   strategy.entry("SALJ", strategy.short, when=bear_cross) 
   strategy.close("SALJ", when=bull_cross)

plot(price, title="price", color=color.black, transp=50, linewidth=2)
a0 = plot(average, title="average", color=color.red, transp=50, linewidth=1)
a1 = plot(bull_level, title="bull", color=color.green, transp=50, linewidth=1)
a2 = plot(bear_level, title="bear", color=color.red, transp=50, linewidth=1)
fill(a0, a1, color=color.green, transp=97)
fill(a0, a2, color=color.red, transp=97)