Durchdringende kurzfristige Umkehrstrategie


Erstellungsdatum: 2024-01-25 12:29:29 zuletzt geändert: 2024-01-25 12:29:29
Kopie: 1 Klicks: 333
1
konzentrieren Sie sich auf
1166
Anhänger

Durchdringende kurzfristige Umkehrstrategie

Überblick

Die Short Line Reversal Strategie ist eine Trend-Trading-Strategie, die auf kurzen Linienformationen basiert. Sie nutzt die kurzen Linienformationen als Signal, um in Kombination mit einem Moving Average die Richtung der Trends zu bestimmen und eine hohe Gewinnrate zu erzielen. Gleichzeitig verwendet sie ein einzigartiges Tracking-Stop-Loss-Mechanismus, um eine sehr hohe Rendite zu erzielen.

Strategieprinzip

Eintrittszeichen

Die Strategie führt ein Signal als kurze Linie durch. Konkret wird ein Signal erzeugt, wenn die folgenden beiden Bedingungen erfüllt sind:

  1. Eine spezifische Kurzlinienform: Mehrkopfsignale sind Kurzlinien für die Y-Linie, und leere Kopfsignale sind Kurzlinien für die C-Linie
  2. Kurzlinieform, die einen beweglichen Durchschnitt durchbricht: ein beweglicher Durchschnitt, der durch einen negativen oder einen negativen Trend nach unten geht

Diese Kombinationssignale filtern den Großteil des Geräusches ab und verbessern so die Einstiegsgenauigkeit.

Trends beurteilen

Die Strategie beurteilt die Trends anhand von Moving Averages aus drei verschiedenen Perioden. Konkret werden die Schnell-, Mittel- und Langläufe als Trend definiert, wenn sie parallel angeordnet sind, ansonsten als Vergleiche.

Bei mehrköpfiger Einfahrt ist eine Schnelllinie > Mittellinie > Langsame Linie erforderlich. Bei leerer Einfahrt ist eine Schnelllinie < Mittellinie < Langsame Linie erforderlich.

Stop-Loss-Mechanismen

Die Strategie verwendet ein einzigartiges Tracking-Stop-Mechanismus. Nachdem die Position eröffnet wurde, wird der optimale Stop-Loss nach der vom Benutzer festgelegten Anzahl von Punkten und Verlagerungen verfolgt.

Analyse der Stärken

Hohe Effizienz bei der Aufnahme

Kurze-Linien-Durchdringungs-Signale ermöglichen es der Strategie, nur bei hoher Wahrscheinlichkeit Positionen zu eröffnen und zu viel Lärm zu vermeiden. In Kombination mit Trendbeurteilung können die meisten nicht-mainstream orientierten Operationen gefiltert werden. Dies garantiert die hohe Präzision der Strategie.

Superstar-Stopf

Die einzigartige Tracking-Stop-Mechanismus ist das größte Highlight der Strategie. Es kann jeden einzelnen Stop-Loss genau in einem kleinen Bereich zu kontrollieren, unter der Voraussetzung, dass maximale Gewinne zu gewährleisten, um eine hohe Erfolgsrate und eine sehr starke Profitabilität zu gewährleisten.

Die Ergebnisse der Simulationen zeigen, dass nach der Verwendung dieses Mechanismus mehrere Währungspaare eine Gesamtrendite von mehr als 1000% erzielen, die maximale Rendite auf einmal mehr als 100-mal übersteigt und die Rendite auf ein noch nie dagewesenes neues Niveau steigt.

Risikoanalyse

Überoptimierte Risiken

Angesichts der Tatsache, dass die Testergebnisse nahezu den heiligen Kelch ausmachen, ist es sehr wahrscheinlich, dass dies auf eine übermäßige Simulation des Marktes zurückzuführen ist. Die Festplatten-Stopp-Loss-Mechanismen können möglicherweise nicht so genau wirken wie die Tests und werden mit einem gewissen Rückzug konfrontiert sein.

Darüber hinaus ist die Testphase nur zwei Jahre, und Veränderungen in der Marktstruktur können die Performance der Festplatte beeinflussen.

Verlustrisiken verfolgen

Eine zu hohe Sensitivität des Stop-Track kann zu viele Stop-Triggers führen. Zusätzlich kann es zu Markt-Stopp-Ereignissen kommen, die die Stop-Loss-Wirklichkeit beeinträchtigen. Dies sind die Risiken, die mit dem Stop-Track verbunden sind.

Optimierungsrichtung

Anpassung der Tracking-Stopp-Parameter

Die Verfolgung von Stop-Losses ist der Schlüssel für den gesamten Ertragsausbruch der Strategie. Um sie sowohl sensibel als auch zuverlässig zu machen, können Sie versuchen, die Verfolgung von Stop-Loss-Punkten angemessen zu lockern und sie weniger sensibel zu machen.

Die zusätzlichen Testzeiten ermöglichen die Überprüfung der Parameterstabilität.

Optimierung der Moving-Average-Zyklus

Die aktuelle Moving Average-Periode ist keine optimale Kombination von Parametern. Durch Optimierungstests können bessere Parameter gefunden werden, um bessere Ergebnisse zu erzielen.

Zum Beispiel, um die Schnell- und Mittellinie-Perioden-Abstand zu erhöhen, oder um die Dreilinie-Kreuzung zu verändern.

Zusammenfassen

Die Strategie der Durchdringung der kurzen Linie-Umkehr erzielt erstaunliche Simulationstestwerte durch effiziente Einstieg und superstarke Stopps. Wir müssen jedoch aufpassen, dass wir die Risiken der Überpassung erkennen und auf die Risikokontrolle vorbereitet sind.

Mit entsprechenden Parameteranpassungen oder Optimierungen könnte die Strategie in der realen Welt zu einem starken Trendsystem werden. Ihr einzigartiges Stop-Loss-Konzept bietet uns wertvolle Erkenntnisse und bietet die Möglichkeit, weitere innovative Strategien zu entwickeln.

Strategiequellcode
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
//Time Frame: H1
strategy("Pin Bar Magic v1", overlay=true)

// User Input
usr_risk = input(title="Equity Risk (%)",type=input.integer,minval=1,maxval=100,step=1,defval=3,confirm=false)
atr_mult = input(title="Stop Loss (x*ATR, Float)",type=input.float,minval=0.1,maxval=100,step=0.1,defval=0.5,confirm=false)
slPoints = input(title="Stop Loss Trail Points (Pips)",type=input.integer,minval=1,maxval=1000,step=1,defval=1,confirm=false)
slOffset = input(title="Stop Loss Trail Offset (Pips)",type=input.integer,minval=1,maxval=1000,step=1,defval=1,confirm=false)
sma_slow = input(title="Slow SMA (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=50,confirm=false)
ema_medm = input(title="Medm EMA (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=18,confirm=false)
ema_fast = input(title="Fast EMA (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=6,confirm=false)
atr_valu = input(title="ATR (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=14,confirm=false)
ent_canc = input(title="Cancel Entry After X Bars (Period)",type=input.integer,minval=1,maxval=500,step=1,defval=3,confirm=false)

// Create Indicators
slowSMA = sma(close, sma_slow)
medmEMA = ema(close, ema_medm)
fastEMA = ema(close, ema_fast)
bullishPinBar = ((close > open) and ((open - low) > 0.66 * (high - low))) or ((close < open) and ((close - low) > 0.66 * (high - low)))
bearishPinBar = ((close > open) and ((high - close) > 0.66 * (high - low))) or ((close < open) and ((high - open) > 0.66 * (high - low)))
atr = atr(atr_valu)

// Specify Trend Conditions
fanUpTrend = (fastEMA > medmEMA) and (medmEMA > slowSMA)
fanDnTrend = (fastEMA < medmEMA) and (medmEMA < slowSMA)

// Specify Piercing Conditions
bullPierce = ((low < fastEMA) and (open > fastEMA) and (close > fastEMA)) or ((low < medmEMA) and (open > medmEMA) and (close > medmEMA)) or ((low < slowSMA) and (open > slowSMA) and (close > slowSMA))
bearPierce = ((high > fastEMA) and (open < fastEMA) and (close < fastEMA)) or ((high > medmEMA) and (open < medmEMA) and (close < medmEMA)) or ((high > slowSMA) and (open < slowSMA) and (close < slowSMA))
    
// Specify Entry Conditions
longEntry = fanUpTrend and bullishPinBar and bullPierce
shortEntry = fanDnTrend and bearishPinBar and bearPierce

// Long Entry Function
enterlong() =>
    risk = usr_risk * 0.01 * strategy.equity
    stopLoss = low[1] - atr[1] * atr_mult
    entryPrice = high[1]
    units = risk / (entryPrice - stopLoss)
    strategy.entry("long", strategy.long, units, stop=entryPrice)
    strategy.exit("exit long", from_entry="long", trail_points=slPoints, trail_offset=slOffset)
    
// Short Entry Function
entershort() =>
    risk = usr_risk * 0.01 * strategy.equity
    stopLoss = high[1] + atr[1] * atr_mult
    entryPrice = low[1]
    units = risk / (stopLoss - entryPrice)
    strategy.entry("short", strategy.short, units, stop=entryPrice)
    strategy.exit("exit short", from_entry="short", trail_points=slPoints, trail_offset=slOffset)
    
// Execute Long Entry
if (longEntry)
    enterlong()

// Execute Short Entry
if (shortEntry)
    entershort() 
    
// Cancel the Entry if Bar Time is Exceeded
strategy.cancel("long", barssince(longEntry) > ent_canc)
strategy.cancel("short", barssince(shortEntry) > ent_canc)

// Force Close During Certain Conditions
strategy.close_all(when = hour==16 and dayofweek==dayofweek.friday, comment = "exit all, market-closed")
strategy.close_all(when = crossunder(fastEMA, medmEMA), comment = "exit long, re-cross")
strategy.close_all(when = crossover(fastEMA, medmEMA), comment = "exit short, re-cross")

// Plot Moving Averages to Chart
plot(fastEMA, color=color.red)
plot(medmEMA, color=color.blue)
plot(slowSMA, color=color.green)

// Plot Pin Bars to Chart
plotshape(bullishPinBar, text='Bull PB', style=shape.labeldown, location=location.abovebar, color=color.green, textcolor=color.white, transp=0)
plotshape(bearishPinBar, text='Bear PB', style=shape.labelup, location=location.belowbar, color=color.red, textcolor=color.white, transp=0)

// Plot Days of Week
plotshape(hour==0 and dayofweek==dayofweek.monday, text='Monday', style=shape.labeldown, location=location.abovebar, color=color.black, textcolor=color.white, transp=0)
plotshape(hour==0 and dayofweek==dayofweek.tuesday, text='Tuesday', style=shape.labeldown, location=location.abovebar, color=color.black, textcolor=color.white, transp=0)
plotshape(hour==0 and dayofweek==dayofweek.wednesday, text='Wednesday', style=shape.labeldown, location=location.abovebar, color=color.black, textcolor=color.white, transp=0)
plotshape(hour==0 and dayofweek==dayofweek.thursday, text='Thursday', style=shape.labeldown, location=location.abovebar, color=color.black, textcolor=color.white, transp=0)
plotshape(hour==0 and dayofweek==dayofweek.friday, text='Friday', style=shape.labeldown, location=location.abovebar, color=color.black, textcolor=color.white, transp=0)
plotshape(hour==16 and dayofweek==dayofweek.friday, text='Market Closed', style=shape.labeldown, location=location.abovebar, color=color.black, textcolor=color.white, transp=0)