Strategie zur Verfolgung der extremen Umkehrung

Schriftsteller:ChaoZhang, Datum: 2024-02-20 15:17:41
Tags:

img

Übersicht

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.

Strategieprinzip

Die Strategie beruht hauptsächlich auf folgenden Grundsätzen:

  1. 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.

  2. 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.

  3. 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.

  4. 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.

Vorteile

Die wichtigsten Vorteile dieser Strategie sind:

  1. Wirksam erfassen extreme Punkte der Preisänderungen und machen Umkehrpositionen, um Trends zu verfolgen.

  2. Konfigurieren Sie das Zeit- und Risikomanagement, um die Nutzungszeit und das Kapital der Strategie zur Risikominderung zu steuern.

  3. Verwenden Sie neue Extrem-Punkte als Stop-Loss-Punkte, um Stop-Loss-Positionen dynamisch anhand des neuen Kursschwankungsbereichs anzupassen.

  4. Einfache und klare Strategie-Logik für einfaches Verstehen, Debuggen und Optimieren.

Risiken

Diese Strategie birgt auch einige Risiken:

  1. Es könnte bei der Bestimmung von Extrempunkten ein Fehleinschätzung auftreten, was zu Fehlern bei Long/Short-Positionen führt.

  2. Die Stop-Loss-Position befindet sich in der Nähe des Einstiegspunktes und erhöht die Wahrscheinlichkeit, dass ein Stop-Loss ausgelöst wird.

  3. Es gibt keine Berücksichtigung von Pyramidenpositionen entlang von Trends und umgekehrten Positionen, weniger profitabel in Trending-Märkten.

  4. Die Währungs- und Zeitrahmenkonfiguration ist ziemlich starr, kann keine dynamischen Anpassungen vornehmen.

Optimierungsrichtlinien

Die Strategie kann in folgenden Aspekten optimiert werden:

  1. Optimieren Sie die Logik des Extremums mit mehr Filtern, um Fehleinschätzungen zu vermeiden.

  2. Hinzufügen eines auf Preis- und Volatilitätsänderungen basierenden schwebenden Stop-Loss-Mechanismus zur Anpassung der Stop-Loss-Distanz.

  3. Einführung von Pyramidenmodulen und Umkehrpositionsmodulen, die auf Trends und Volatilität basieren, um die Rentabilität zu verbessern.

  4. Einrichtung eines Mechanismus zur Optimierung von Parametern für die automatische Prüfung und Einstellung von Parametern.

  5. Einbeziehung von Modellen des maschinellen Lernens zur Unterstützung der strategischen Entscheidungsfindung.

Zusammenfassung

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()

Mehr