Reverse Breakout-Handelsstrategie


Erstellungsdatum: 2023-10-25 12:09:40 zuletzt geändert: 2023-10-25 12:38:23
Kopie: 0 Klicks: 678
1
konzentrieren Sie sich auf
1617
Anhänger

Reverse Breakout-Handelsstrategie

Überblick

Eine Reverse-Breakout-Handelsstrategie ist eine Handelsstrategie, bei der der Preis durch einen kontinuierlichen Anstieg oder Rückgang durchbrochen wird. Die Strategie setzt eine Periode ein, in der der Preis kontinuierlich ansteigt oder sinkt. Nach der Entwicklung eines bestimmten Trends wird der Preis umgekehrt, um einen Gewinn zu erzielen.

Strategieprinzip

Die Strategie wird in den folgenden Bereichen umgesetzt:

  1. Setzen Sie die Länge der Zyklen, in denen die Preise in Folge steigen und fallen, also consecutive BarsUp und consecutive BarsDown, und lösen Sie das Handelssignal aus, nachdem der aktuelle zyklische Preistrend die gesetzte Länge erreicht hat.

  2. Berechnen Sie die aktuellen Preise im Vergleich zu den Preisen der letzten Periode und berechnen Sie die Dauer der aktuellen Zyklen, in denen sie in Folge steigen oder fallen.

  3. Setzen Sie den Zeitrahmen für die Rückmessung und beschränken Sie die Strategie durch time_cond nur auf die Rückmesszeit.

  4. Setzen Sie tägliche Handelszeiten und begrenzen Sie die Handelssignale durchtimetobuy nur innerhalb des festgelegten Zeitraums.

  5. Wenn die Preissteigerung die festgelegte Länge erreicht, wird ein Mehrsignal über strategy.long ausgegeben; wenn die Preissteigerung die festgelegte Länge erreicht, wird ein Kurzsignal über strategy.short ausgegeben.

  6. Ein Stop-Loss- und ein Stop-Out-Preis können eingestellt werden. Ein Short-Stop-Preis bei Übernahme und ein Long-Stop-Preis bei Leerstellung. Ein Long-Stop-Preis bei Übernahme und ein Short-Stop-Preis bei Leerstellung.

  7. Es ist möglich, die Nachrichtenanzeige für das Senden von Handelssignalen einzurichten.

  8. Nach den oben genannten Parametern und Preisen wird ein Plus- oder Minussignal ausgesendet, wenn die Bedingungen erfüllt sind.

Analyse der Stärken

Diese Strategie hat folgende Vorteile:

  1. Umkehrschläge sind sehr profitabel, wenn sie einen Kurswechsel erfassen. Umkehrschläge werden durchgeführt, wenn der Kurs eine Tendenz aufweist.

  2. Die Parameter sind flexibel konfigurierbar und können je nach Markt angepasst werden. Die Anzahl der Zyklen mit fortlaufenden Auf- und Abstiegen kann angepasst werden, die Stop-Loss-Punkte können angepasst werden, die Handelszeit kann begrenzt werden, und die Parameter können je nach tatsächlichen Bedingungen optimiert werden.

  3. Es kann eine Stop-Loss-Stop-Anlage hinzugefügt werden, um das Risiko zu kontrollieren. Nach dem zusätzlichen Leerlauf können Stop-Loss- und Stop-Stops vorab eingestellt werden, um das Handelsrisiko zu kontrollieren.

  4. Einstellbarer Handelsanzeiger, um den Handel zu automatisieren. Einstellbarer Handelsanzeiger, um den Handel zu automatisieren, um den Handel zu automatisieren.

  5. Die Einstellung des Rücklaufzeitraums ermöglicht es, die Wirksamkeit der Strategie unter verschiedenen Marktbedingungen zu beobachten.

Risikoanalyse

Die Strategie birgt auch einige Risiken, die beachtet werden müssen:

  1. Es ist notwendig, wichtige Nachrichten zu vermeiden. Wenn wichtige Nachrichten veröffentlicht werden, kann die Preisentwicklung nicht beurteilt werden, und die Strategie sendet gleichzeitig mehrere Shorting-Signale aus, was zu Verlusten führt.

  2. Wenn die Umkehrung nicht sichtbar ist, wirkt sie nicht sehr. Wenn die Tendenz nicht sichtbar ist, ist die Umkehrung nicht wirksam und muss mit Vorsicht verwendet werden.

  3. Die Strategieoptimierung soll eine übermäßige Abhängigkeit von Rückmeldedaten vermeiden, da diese keine künftigen Trends repräsentieren. Die Parameter sollten in der Realität entsprechend angepasst werden.

  4. Eine zu hohe Handelshäufigkeit kann zu Marktkrise führen. Wenn die Periode zu kurz ist, ist die Handelsfrequenz zu hoch und schadet der langfristigen Stabilität der Gewinne.

  5. Die bestehenden festen Stop-Loss-Stopps können weiter optimiert werden, um beispielsweise Trend-Stopps zu verfolgen.

Optimierungsrichtung

Die Strategie kann in folgenden Bereichen weiter optimiert werden:

  1. Trendschätzmechanismen werden hinzugefügt, um unregelmäßige Umkehrungen in nicht-trendigen Märkten zu vermeiden. Indikatoren wie Preisschwankungen und Kanäle können erkannt werden, um den Grad des Trends zu beurteilen und die Preiswende zu vermeiden.

  2. Optimierung der Stop-Loss-Strategie, so dass sie sich automatisch an Marktbewegungen anpasst. Die Einstellung der Stop-Loss-Strategie kann intelligenter sein, indem Sie die Methoden wie Saldo-Prozentsatz-Stopp und ATR-Stopp anwenden.

  3. Hinzu kommen die Quantitätsindikatoren. In Kombination mit anderen Indikatoren wie der Veränderung des Handelsvolumens werden Fehlsignale vermieden, die nur auf der Grundlage der K-Linienform erzeugt werden.

  4. Kombination von verschiedenen Sorten. Die Strategie wird auf verschiedene Sorten angewendet, um die Risiken einer einzigen Sorte zu verteilen.

  5. Parameteroptimierung und maschinelles Lernen. Sammeln Sie mehr historische Daten, optimieren Sie die Parameter automatisch mit einer maschinellen Lernmethode, um die Strategie stabiler zu machen.

Zusammenfassen

Reverse-Breakout-Trading-Strategien, die durch das Erfassen von Preis-Wendepunkten und durch Reverse-Operationen gute Handelssignale erhalten können. Die Vorteile dieser Strategie liegen in der flexiblen Konfiguration, der Risikokontrolle und der Eignung für den automatisierten Handel. Es besteht jedoch auch ein gewisses Risiko, dass die Parameter und Strategien kontinuierlich optimiert und verbessert werden müssen, um langfristig stabile Gewinne zu erzielen.

Strategiequellcode
/*backtest
start: 2023-10-17 00:00:00
end: 2023-10-24 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4

// Strategy
strategy("Up/Down Strategy - Contrarian", overlay=true, initial_capital = 10000, default_qty_value = 10000, default_qty_type = strategy.cash)

consecutiveBarsUp = input(1, title='Consecutive Bars Up')
consecutiveBarsDown = input(1, title='Consecutive Bars Down')

price = close

ups = 0.0
ups := price > price[1] ? nz(ups[1]) + 1 : 0

dns = 0.0
dns := price < price[1] ? nz(dns[1]) + 1 : 0

// Strategy Backtesting
startDate  = input(timestamp("2021-01-01T00:00:00"), type = input.time, title='Backtesting Start Date')
finishDate = input(timestamp("2021-12-31T00:00:00"), type = input.time, title='Backtesting End Date')

time_cond  = true

//Time Restriction Settings
startendtime = input("", title='Time Frame To Enter Trades')
enableclose = input(false, title='Enable Close Trade At End Of Time Frame')
timetobuy = true
timetoclose = true

// Stop Loss & Take Profit Tick Based
enablesltp = input(false, title='Enable Take Profit & Stop Loss')
stopTick = input(5.0, title='Stop Loss Ticks', type=input.float) / 100
takeTick = input(10.0, title='Take Profit Ticks', type=input.float) / 100

longStop = strategy.position_avg_price - stopTick
shortStop = strategy.position_avg_price + stopTick
shortTake = strategy.position_avg_price - takeTick
longTake = strategy.position_avg_price + takeTick

plot(strategy.position_size > 0 and enablesltp ? longStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Long Fixed SL")
plot(strategy.position_size < 0 and enablesltp ? shortStop : na, style=plot.style_linebr, color=color.red, linewidth=1, title="Short Fixed SL")
plot(strategy.position_size > 0 and enablesltp ? longTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Long Take Profit")
plot(strategy.position_size < 0 and enablesltp ? shortTake : na, style=plot.style_linebr, color=color.green, linewidth=1, title="Short Take Profit")

// Alert messages
message_enterlong  = input("", title="Long Entry message")
message_entershort = input("", title="Short Entry message")
message_closelong = input("", title="Close Long message")
message_closeshort = input("", title="Close Short message")

// Strategy Execution
if (dns >= consecutiveBarsDown) and time_cond and timetobuy
    strategy.entry("Long", strategy.long, stop = high + syminfo.mintick, alert_message = message_enterlong)
    
if (ups >= consecutiveBarsUp) and time_cond and timetobuy
    strategy.entry("Short", strategy.short, stop = low + syminfo.mintick, alert_message = message_entershort)
    
if strategy.position_size < 0 and timetoclose and enableclose
    strategy.close_all(alert_message = message_closelong)
if strategy.position_size > 0 and timetoclose and enableclose
    strategy.close_all(alert_message = message_closeshort)
    
if strategy.position_size < 0 and enablesltp and time_cond
    strategy.exit(id="Close Long", stop=longStop, limit=longTake, alert_message = message_closelong)
if strategy.position_size > 0 and enablesltp and time_cond
    strategy.exit(id="Close Short", stop=shortStop, limit=shortTake, alert_message = message_closeshort)