Die Extremum-Reversion-Tracking-Strategie verfolgt die Extremum-Punkte des Kursschwankungsbereichs und führt zur Umkehrung von Long/Short-Positionen an Extremum-Punkten, um Trends zu verfolgen.
Die Strategie beruht hauptsächlich auf folgenden Grundsätzen:
Verwenden Sie die Sicherheitsfunktion, um hohe und niedrige Preise verschiedener Zyklus-K-Linien zu erhalten, um festzustellen, ob sie den vorherigen gleich sind, um zu beurteilen, ob neue Extremumspunkte erreicht werden.
Wenn neue Extrem-Punkte erkannt werden, machen Sie eine Short-Position, wenn es sich derzeit um einen Bullenmarkt handelt, und eine Long-Position, wenn es sich derzeit um einen Bärenmarkt handelt.
Der neue Extrem-Punkt, der nach der Erstellung einer Long/Short-Position entsteht, wird als Stop-Loss-Punkt eingestellt, um Trends mit Stop-Loss zu verfolgen.
Stellen Sie den effektiven Zeitrahmen der Strategie fest, indem Sie das Startjahr, den Monat und das Datum so einstellen, dass Anpassungen für verschiedene Zeiträume vorgenommen werden können.
Die wichtigsten Vorteile dieser Strategie sind:
Wirksam erfassen extreme Punkte der Preisänderungen und machen Umkehrpositionen, um Trends zu verfolgen.
Konfigurieren Sie das Zeit- und Risikomanagement, um die Nutzungszeit und das Kapital der Strategie zur Risikominderung zu steuern.
Verwenden Sie neue Extrem-Punkte als Stop-Loss-Punkte, um Stop-Loss-Positionen dynamisch anhand des neuen Kursschwankungsbereichs anzupassen.
Einfache und klare Strategie-Logik für einfaches Verstehen, Debuggen und Optimieren.
Diese Strategie birgt auch einige Risiken:
Es könnte bei der Bestimmung von Extrempunkten ein Fehleinschätzung auftreten, was zu Fehlern bei Long/Short-Positionen führt.
Die Stop-Loss-Position befindet sich in der Nähe des Einstiegspunktes und erhöht die Wahrscheinlichkeit, dass ein Stop-Loss ausgelöst wird.
Es gibt keine Berücksichtigung von Pyramidenpositionen entlang von Trends und umgekehrten Positionen, weniger profitabel in Trending-Märkten.
Die Währungs- und Zeitrahmenkonfiguration ist ziemlich starr, kann keine dynamischen Anpassungen vornehmen.
Die Strategie kann in folgenden Aspekten optimiert werden:
Optimieren Sie die Logik des Extremums mit mehr Filtern, um Fehleinschätzungen zu vermeiden.
Hinzufügen eines auf Preis- und Volatilitätsänderungen basierenden schwebenden Stop-Loss-Mechanismus zur Anpassung der Stop-Loss-Distanz.
Einführung von Pyramidenmodulen und Umkehrpositionsmodulen, die auf Trends und Volatilität basieren, um die Rentabilität zu verbessern.
Einrichtung eines Mechanismus zur Optimierung von Parametern für die automatische Prüfung und Einstellung von Parametern.
Einbeziehung von Modellen des maschinellen Lernens zur Unterstützung der strategischen Entscheidungsfindung.
Die Extremum-Reversion-Tracking-Strategie funktioniert durch die Erfassung von Preis-Extremums und der Verfolgung von Trends, anpassungsfähig und profitabel.
/*backtest start: 2024-01-01 00:00:00 end: 2024-01-31 23:59:59 period: 6h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //Noro //2018 //@version=2 strategy(title = "Noro's Extremum Strategy v1.0", shorttitle = "Extremum str 1.0", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //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 = "Capital, %") tf = input('W', title = 'Timeframe for extremums') 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") //Levels highm = request.security(syminfo.tickerid, tf, high[1]) lowm = request.security(syminfo.tickerid, tf, low[1]) upcolorm = highm == highm[1] ? lime : na dncolorm = lowm == lowm[1] ? red : na plot(highm, color = upcolorm, linewidth = 3) plot(lowm, color = dncolorm, linewidth = 3) //Signals size = strategy.position_size up = size > 0 ? highm * 1000000 : highm != highm[1] ? highm : up[1] dn = size < 0 ? 0 : lowm != lowm[1] ? lowm : dn[1] exit = true //Trading lot = strategy.position_size != strategy.position_size[1] ? strategy.equity / close * capital / 100 : lot[1] if highm > 0 and high[1] < highm and highm == highm[1] strategy.entry("Long", strategy.long, needlong == false ? 0 : lot, stop = up) if lowm > 0 and low[1] > lowm and lowm == lowm[1] strategy.entry("Short", strategy.short, needshort == false ? 0 : lot, stop = dn) if exit strategy.close_all()