Quantitative Handelsstrategie basierend auf der Umkehrung des gleitenden Durchschnitts des ATR-Kanals


Erstellungsdatum: 2023-12-11 15:38:25 zuletzt geändert: 2023-12-11 15:38:25
Kopie: 3 Klicks: 776
1
konzentrieren Sie sich auf
1621
Anhänger

Quantitative Handelsstrategie basierend auf der Umkehrung des gleitenden Durchschnitts des ATR-Kanals

Überblick

Die Strategie ist eine nur-mehr-Strategie, die den Einstieg mit einem Preisbruch der unteren Grenze des ATR-Kanals festlegt und den Ausstieg mit der mittleren Linie des ATR-Kanals oder der oberen Grenze des ATR-Kanals als Stop-Out. Gleichzeitig verwendet sie den ATR, um den Stop-Loss-Preis zu berechnen.

Strategieprinzip

Wenn der Preis die Untergrenze des ATR-Kanals überschreitet, zeigt dies, dass ein außergewöhnlicher Preisverfall stattgefunden hat. Die Strategie wird dann bei der nächsten K-Linie-Eröffnung mehr eingeschaltet. Der Stop-Loss-Preis ist der Einstiegspreis abzüglich des ATR-Stop-Faktors multipliziert mit ATR.

Insbesondere beinhaltet die Strategie folgende Logik:

  1. Berechnung der ATR- und ATR-Channel-Gewinnlinie
  2. Zeit-Filterbedingungen festlegen
  3. Bei Preisen unterhalb der unteren Grenze des ATR-Kanals können Sie mehrere Eintrittsmarken verwenden.
  4. Ein weiterer Einstieg bei der nächsten K-Linie
  5. Eintrittspreise aufgezeichnet
  6. Berechnung des Stop-Loss-Preises
  7. Platzierung der Position, wenn der Preis über der ATR-Mittellinie oder der ATR-Grenze liegt
  8. Stop-Out, wenn der Preis unter dem Stop-Loss liegt

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Nutzung des ATR-Kanals zur Bestimmung von Einfahrten und Stopps, höhere Zuverlässigkeit
  2. Das ist eine sehr schwierige Aufgabe, denn es ist nicht einfach, die Wette zu erfüllen.
  3. Strenge Stop-Loss-Regeln und effektive Risikokontrolle
  4. Für den schnellen Short-Line-Handel, ohne lange Positionen zu halten
  5. Einfache Regeln, die leicht zu verstehen, zu implementieren und zu optimieren sind

Risikoanalyse

Die Strategie birgt auch einige Risiken:

  1. Frequente Transaktionen führen zu Gebühren und Schlupfpunkten
  2. Es ist möglich, dass die Stop-Loss-Funktion kontinuierlich ausgelöst wird.
  3. Fehlende Optimierung von Parametern kann die Strategie beeinträchtigen
  4. Der Stop-Loss kann zu groß sein, wenn die Preise der Marke stark schwanken.

Das Risiko kann durch die Anpassung der ATR-Zyklen, die Verringerung des Stop-Loss-Faktors und andere Methoden verringert werden. Es ist auch wichtig, einen Broker mit niedrigeren Handelskosten zu wählen.

Optimierungsrichtung

Die Strategie kann auch in folgenden Bereichen optimiert werden:

  1. Filter für weitere Kennzahlen hinzugefügt, um die besten Einstiegsmomente nicht zu verpassen
  2. Optimierung der ATR-Zyklusparameter
  3. Erwägen Sie eine Wiedereintrittsregelung
  4. Dynamische Anpassung der Stop-Loss-Marge
  5. Eintritt in die Trend-Regel und Vermeidung von Rückschlägen

Zusammenfassen

Die Strategie ist insgesamt eine einfache und praktische Short-Line-Breakout-Equilibrium-Umkehrstrategie. Sie hat klare Einstiegsregeln, strenge Stop-Loss-Mechanismen und eine ausgefeilte Stop-Off-Methode. Sie bietet auch Optimierungsmöglichkeiten für einige Parameter.

Strategiequellcode
/*backtest
start: 2022-12-04 00:00:00
end: 2023-12-10 00:00:00
period: 1d
basePeriod: 1h
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/
// © Bcullen175

//@version=5
strategy("ATR Mean Reversion", overlay=true, initial_capital=100000,default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=6E-5) // Brokers rate (ICmarkets = 6E-5)
SLx = input(1.5, "SL Multiplier", tooltip = "Multiplies ATR to widen stop on volatile assests, Higher values reduce risk:reward but increase winrate, Values below 1.2 are not reccomended")
src = input(close, title="Source")
period = input.int(10, "ATR & MA PERIOD")
plot(open+ta.atr(period))
plot(open-ta.atr(period))
plot((ta.ema(src, period)), title = "Mean", color=color.white)

i_startTime     = input(title="Start Filter", defval=timestamp("01 Jan 1995 13:30 +0000"), group="Time Filter", tooltip="Start date & time to begin searching for setups")
i_endTime       = input(title="End Filter", defval=timestamp("1 Jan 2099 19:30 +0000"), group="Time Filter", tooltip="End date & time to stop searching for setups")

// Check filter(s)
f_dateFilter = true

atr = ta.atr(period)

// Check buy/sell conditions
var float buyPrice = 0
buyCondition    = low < (open-ta.atr(period)) and strategy.position_size == 0 and f_dateFilter
sellCondition   = (high > (ta.ema(close, period)) and strategy.position_size > 0 and close < low[1]) or high > (open+ta.atr(period))
stopDistance    = strategy.position_size > 0 ? ((buyPrice - atr)/buyPrice) : na
stopPrice       = strategy.position_size > 0 ? (buyPrice - SLx*atr): na
stopCondition   = strategy.position_size > 0 and low < stopPrice

// Enter positions
if buyCondition
    strategy.entry(id="Long", direction=strategy.long)

if buyCondition[1]
    buyPrice := open

// Exit positions
if sellCondition or stopCondition
    strategy.close(id="Long", comment="Exit" + (stopCondition ? "SL=true" : ""))
    buyPrice := na

// Draw pretty colors
plot(buyPrice, color=color.lime, style=plot.style_linebr)
plot(stopPrice, color=color.red, style=plot.style_linebr, offset=-1)