Momentumbasierte Swing-Trading-Strategie


Erstellungsdatum: 2024-02-05 10:44:19 zuletzt geändert: 2024-02-05 10:44:19
Kopie: 1 Klicks: 678
1
konzentrieren Sie sich auf
1617
Anhänger

Momentumbasierte Swing-Trading-Strategie

Überblick

Diese Strategie ist eine auf Dynamiktechnik basierende Intervall-Shock-Trading-Strategie mit ATR-Stopp. Die Strategie wurde von Kory Hoang von Stably entwickelt.

Die Strategie nutzt Dynamik-Indikatoren, um die Richtung des Trends zu erkennen, in Kombination mit dem ATR-Indikator, um eine Stop-Loss-Linie zu setzen, um eine Shock-Trading-Strategie zu erreichen, bei der es zu niedrigen und hohen Verkaufszahlen kommt.

Strategieprinzip

Der Code setzt zunächst den Zeitrahmen für die Rückmessung ein.

Im folgenden Abschnitt werden die folgenden Indikatoren berechnet:

  • atr ((): Berechnung des ATR-Wertes, der für die Stop-Loss-Einstellung verwendet wird;
  • max_/min_Der Preis für eine K-Linie ist der niedrigste/höchste Preis, der auf einer K-Linie verzeichnet wurde.
  • is_uptrend: Beurteilt, ob sich ein Aufwärtstrend befindet.
  • Eintritt: Stop-Loss-Linie

Die wichtigste Logik für die Beurteilung von Trends ist:

Wenn der Schlusskurs höher ist als der Stop-Line-V-Stop, der zuvor gefallen ist, wird er als Aufwärtstrend beurteilt. Wenn der Schlusskurs niedriger ist als der Stop-Line-V-Stop, der zuvor gestiegen ist, wird er als Abwärtstrend beurteilt.

Die Position der Stop-Line wird angepasst, wenn sich der Trend ändert.

Im Aufwärtstrend wird die Stop-Line als der höchste Preis der vorherigen K-Linie minus der ATR definiert. Im Abwärtstrend wird die Stop-Line als der niedrigste Preis der vorherigen K-Linie plus der ATR definiert.

Dies ermöglicht eine Trend-Tracking-Stop-Loss.

Der Teil der Handelsregeln beinhaltet, dass bei einem Bruch der Stop-Loss-Linie ein Plus-Low-Low-Position eröffnet wird.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Mit Dynamitechniken trenden Sie die Richtung, um Wendepunkte zu erfassen und falsche Durchbrüche zu vermeiden.
  2. ATR-Stopp-Losses verfolgen die Höchst-/Tiefstpreise, um das Risiko zu kontrollieren.
  3. Die Strategie ist einfach, klar und verständlich.
  4. Es ist möglich, zwischen den Trends einen Shock-Trading zu betreiben, bei dem es sich um einen niedrigen Kauf und einen hohen Verkauf handelt.

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Eine falsche Auswahl der ATR-Werte kann zu zu lockeren oder zu kompakten Stop-Losses führen.
  2. Es kann zu starken Schwankungen in der Erschütterungstrend kommen, wobei die Verluste immer wieder aufhören.
  3. Es ist möglich, dass die Anzahl der Transaktionen und die Gebühren höher sind.

Die Optimierung kann in folgenden Bereichen erfolgen:

  1. Verschiedene ATR-Parameter werden getestet, um die optimale Kombination zu finden.
  2. Optimierung der Stop-Line in Kombination mit dem Volatilitätsindikator auf Basis des ATR.
  3. Es ist unnötig, sich mit einem Trendfilter auszutauschen, um Schwankungen zu vermeiden.

Optimierungsrichtung

Die Strategie kann in folgenden Richtungen optimiert werden:

  1. Verschiedene ATR-Parameter werden getestet, um die optimale Kombination von Parametern zu finden. Mehrfache Parameter können zurückgetestet werden, um den Gewinn-Risiko-Verhältnis zu bewerten.

  2. Die Stop-Line kann in Kombination mit einem Volatilitätsindikator auf der Grundlage des ATR optimiert werden. Es kann ein Volatilitätsindikator eingeführt werden, der die Stop-Line bei zunehmender Volatilität angemessen lockert.

  3. In Kombination mit einem Trendfilter ist es unnötig, Positionen zu eröffnen, wenn der Markt im Aufprall ist. Sie können die Indikatoren für die Trendbeurteilung erhöhen und nur dann Positionen eröffnen, wenn der Trend eindeutig ist.

  4. Erhöhung des Positionsmanagementsystems. Die Positionen können anhand der Kapitalnutzung und der Anzahl der aufeinanderfolgenden Stop-Loss-Funktionen angepasst werden.

  5. Erhöhung der Risikokontrolle für die Übernachtungszeit. Sie können die Verluste vor dem Schließen aktiv stoppen, um zu verhindern, dass die Preise über Nacht springen.

Zusammenfassen

Diese Strategie dient als Basis für eine intraday-Schock-Trading-Strategie, die übersichtliche Überlegung, die Verwendung von Dynamiktechniken, um Trends zu beurteilen, und die Verwendung von ATR-Indikatoren für die Verfolgung von Stop-Loss-Schieben, um das Risiko effektiv zu kontrollieren.

Es gibt noch viel Optimierungsmöglichkeiten, und es können weitere Verbesserungen vorgenommen werden, um die Strategie für den realen Handel zu optimieren. Insgesamt bietet die Strategie einen guten Rahmen für den quantitativen Handel.

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

//@version=2
strategy("BTC Swinger", overlay=true, commission_value = 0.25, default_qty_type=strategy.percent_of_equity, default_qty_value = 100)

/////////////////////////////////////////////////////////////
//START - SET DATE RANGE

// === BACKTEST RANGE ===
FromMonth = input(defval = 1, title = "From Month", minval = 1)
FromDay   = input(defval = 1, title = "From Day", minval = 1)
FromYear  = input(defval = 2010, title = "From Year")
ToMonth   = input(defval = 12, title = "To Month", minval = 1)
ToDay     = input(defval = 31, title = "To Day", minval = 1)
ToYear    = input(defval = 2020, title = "To Year")

startDate = time > timestamp(FromYear, FromMonth, FromDay, 1, 1)
endDate = time < timestamp(ToYear, ToMonth, ToDay, 23, 59)
withinTimeRange = true

/////////////////////////////////////////////////////////////
//END - SET DATE RANGE



/////////////////////////////////////////////////////////////
//START - INDICATORS

length = input(3)
mult = input(1, minval = 0.01)
atr_ = atr(length)
max1 = max(nz(max_[1]), close)
min1 = min(nz(min_[1]), close)
is_uptrend_prev = nz(is_uptrend[1], true)
stop = is_uptrend_prev ? max1 - mult * atr_ : min1 + mult * atr_
vstop_prev = nz(vstop[1])
vstop1 = is_uptrend_prev ? max(vstop_prev, stop) : min(vstop_prev, stop)
is_uptrend = close - vstop1 >= 0
is_trend_changed = is_uptrend != is_uptrend_prev
max_ = is_trend_changed ? close : max1
min_ = is_trend_changed ? close : min1
vstop = is_trend_changed ? is_uptrend ? max_ - mult * atr_ : min_ + mult * atr_ : vstop1
plot(vstop, color = is_uptrend ? yellow : red, style=circles, linewidth=2)

/////////////////////////////////////////////////////////////
//END - INDICATORS



/////////////////////////////////////////////////////////////
//START - TRADING RULES
direction = input(defval=1, title = "Strategy Direction", minval=-1, maxval=1)
strategy.risk.allow_entry_in(direction == 0 ? strategy.direction.all : (direction < 0 ? strategy.direction.short : strategy.direction.long))

condition1 = close > vstop and withinTimeRange
condition2 = close < vstop and withinTimeRange

strategy.entry("BUY", strategy.long, when = condition1)
strategy.entry("SELL", strategy.short, when = condition2)

/////////////////////////////////////////////////////////////
//END - TRADING RULES