Super-ATR-Trendfolgestrategie


Erstellungsdatum: 2024-02-19 11:41:20 zuletzt geändert: 2024-02-19 11:41:20
Kopie: 0 Klicks: 669
1
konzentrieren Sie sich auf
1617
Anhänger

Super-ATR-Trendfolgestrategie

Überblick

Die Super-ATR-Trend-Tracking-Strategie ist eine Trend-Tracking-Strategie, die auf dem ATR-Indikator basiert. Sie verwendet den ATR-Indikator, um die Volatilität des Marktes zu messen, und erfolgt mit einer Stop-Line, die mehrere Male der ATR beträgt.

Strategieprinzip

Die Strategie berechnet zunächst den ATR-Indikator, wobei der ATR-Indikator der bewegliche Durchschnitt der Preisschwankungen der Aktien in den letzten N Tagen ist, um das Risiko und die Volatilität des Marktes darzustellen. Die Strategie erlaubt uns, die Berechnungsmethode für den ATR zu ändern, indem wir die gewöhnliche ATR- oder SMA-Berechnung wählen.

Dann multiplizieren Sie die ATR-Werte mit einem Multiplikator, um die Auf- und Abfahrt zu berechnen:close - Multiplier * ATRAbfahrt:close + Multiplier * ATR❚ Das ist ein Trendkanal, der auf dem ATR-Indikator basiert.

Wir beurteilen dann, ob der aktuelle Preis den Kanal auf- und abgleitet. Wenn der Preis den Kanal aufbricht, wird er als Abwärtstrend bezeichnet.

Darüber hinaus gibt es ein Zeitfenster für den Handel, in dem nur innerhalb eines bestimmten Zeitraums gehandelt wird.

Strategische Vorteile

Diese Strategie, die auf einem Indikatorkanal basiert, bietet folgende Vorteile:

  1. Automatische Anpassung der Stop-Position mit dem ATR-Indikator zur effektiven Risikokontrolle
  2. Der ATR-Index berücksichtigt die Volatilität der Aktienkurse und die Stop-Loss-Linie ist vernünftiger
  3. Eintrittsgenauigkeit erhöht durch Durchbruch der Kanäle
  4. Ermöglicht eine Anpassung der ATR-Berechnung und erhöht die Flexibilität der Strategie
  5. Die Strategie, ein Zeitfenster für den Handel einzurichten und große Ereignisse zu vermeiden, ist fehlgeschlagen.

Insgesamt ist dies eine einfache und praktische Trend-Tracking-Strategie, die die Risiken effektiv kontrolliert und gleichzeitig bessere Gewinne erzielt.

Risikoanalyse

Die Strategie birgt auch einige Risiken, insbesondere:

  1. Bei starken Marktveränderungen können die ATR-Indikatoren nicht so schnell reagieren, dass die Stop-Loss-Regelung zu locker wird.
  2. Wenn die Meinungen nicht übereinstimmen, können die Preise in den Kanälen schwanken, was das Handelsrisiko erhöht.
  3. Die festgelegte Multiplikator-Einstellung ist möglicherweise nicht für alle Sorten geeignet und muss für verschiedene Sorten angepasst werden
  4. setWindow schränkt die Handelsmöglichkeiten ein und kann, wenn es nicht richtig eingestellt ist, bessere Handelsmöglichkeiten verpassen

Um diese Risiken zu kontrollieren, können wir folgende Maßnahmen ergreifen:

  1. Vermeiden Sie die Abhängigkeit von ATR-Indikatoren in Kombination mit anderen Indikatoren, um die Marktlage zu beurteilen
  2. Erhöhung der Filterbedingungen zur Vermeidung der Gefahr von unwirksamen Durchbrüchen
  3. Auswahl der richtigen Multiplikatoren nach historischen Merkmalen der verschiedenen Sorten
  4. Optimieren und testen Sie die Parameter von setWindow, um sicherzustellen, dass sie korrekt eingerichtet sind

Optimierungsrichtung

Es gibt noch mehr Möglichkeiten, diese Strategie zu optimieren:

  1. Dynamische Optimierung der Multiplikation durch Einsatz von Machine Learning-Algorithmen
  2. Mehrfach-Leistung in Verbindung mit emotionalen Indikatoren zur Optimierung des Kanalbereichs
  3. Erhöhung des Handelsvolumens oder der Volatilitätsbestätigung, um einen ungültigen Durchbruch zu vermeiden
  4. Backtest mit einem erweiterten, zeitbasierten Strategie-Framework

Durch diese Optimierungen können die Stabilität und die Rendite der Strategie weiter verbessert werden.

Zusammenfassen

Diese Strategie ist insgesamt eine sehr praktische Trend-Tracking-Strategie. Sie verwendet die ATR-Indikatoren, um einen Anpassungskanal zu erstellen und die Zeit für den Kauf und Verkauf anhand eines Kanalbruchs zu beurteilen. Die Strategie ist einfach zu anwenden, kann das Risiko effektiv kontrollieren und eignet sich für die Verfolgung von mittleren und langen Trends.

Strategiequellcode
/*backtest
start: 2023-02-12 00:00:00
end: 2024-02-18 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy('B厂长 @超级趋势精简优化版', overlay=true)
Periods = input(title='ATR周期', defval=10)
src = input(hl2, title='价格数据源')
Multiplier = input.float(title='ATR 乘数', step=0.1, defval=3.0)
changeATR = input(title='更改ATR计算方法', defval=true,tooltip = '默认为art否则sma(ta.tr,ATR周期)')
showsignals = input(title='显示买入/卖出信号', defval=false)
atr2 = ta.sma(ta.tr, Periods)
atr = changeATR ? ta.atr(Periods) : atr2
up = src - Multiplier * atr
up1 = nz(up[1], up)
up := close[1] > up1 ? math.max(up, up1) : up
dn = src + Multiplier * atr
dn1 = nz(dn[1], dn)
dn := close[1] < dn1 ? math.min(dn, dn1) : dn
trend = 1
trend := nz(trend[1], trend)
trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend
upPlot = plot(trend == 1 ? up : na, title='上涨趋势', style=plot.style_linebr, linewidth=2, color=color.new(color.green, 0))
buySignal = trend == 1 and trend[1] == -1
plotshape(buySignal and showsignals ? up : na, title='买点', text='买点', location=location.absolute, style=shape.labelup, size=size.tiny, color=color.new(color.green, 0), textcolor=color.new(color.white, 0))
dnPlot = plot(trend == 1 ? na : dn, title='下跌趋势', style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0))
sellSignal = trend == -1 and trend[1] == 1
plotshape(sellSignal and showsignals ? dn : na, title='卖点', text='卖点', location=location.absolute, style=shape.labeldown, size=size.tiny, color=color.new(color.red, 0), textcolor=color.new(color.white, 0))
FromMonth = input.int(defval=9, title='From Month', minval=1, maxval=12)
FromDay = input.int(defval=1, title='From Day', minval=1, maxval=31)
FromYear = input.int(defval=2018, title='From Year', minval=999)
ToMonth = input.int(defval=1, title='To Month', minval=1, maxval=12)
ToDay = input.int(defval=1, title='To Day', minval=1, maxval=31)
ToYear = input.int(defval=9999, title='To Year', minval=999)
start = timestamp(FromYear, FromMonth, FromDay, 00, 00)
finish = timestamp(ToYear, ToMonth, ToDay, 23, 59)
window() =>
    time >= start and time <= finish ? true : false
longCondition = buySignal
if longCondition and window()
    strategy.entry('BUY', strategy.long, comment = '做多')
shortCondition = sellSignal
if shortCondition and window()
    strategy.entry('SAL', strategy.short, comment = '做空')

buy1 = ta.barssince(buySignal)
sell1 = ta.barssince(sellSignal)
color1 = buy1[1] < sell1[1] ? color.green : buy1[1] > sell1[1] ? color.red : na