Schrittweise Gewinnmitnahme-Slippage-Strategie


Erstellungsdatum: 2023-11-28 16:05:24 zuletzt geändert: 2023-11-28 16:05:24
Kopie: 0 Klicks: 778
1
konzentrieren Sie sich auf
1619
Anhänger

Schrittweise Gewinnmitnahme-Slippage-Strategie

Überblick

Diese Strategie ist eine Ausstiegsstrategie, die einen Stufenstop mit einem Schlupfpunkt-Stop kombiniert. Sie verschiebt den Stop-Loss nach Erreichen des ersten Stop-Loss-Gleichgewichtspunkts und den Stop-Loss nach Erreichen des zweiten Stop-Loss-Gleichgewichtspunkts, wodurch ein Stufenstop-Slip-Mechanismus erreicht wird. Dies kann einen Teil des Gewinns sperren und gleichzeitig einen großen Gewinnraum behalten.

Strategieprinzip

Die Strategie umfasst die folgenden Komponenten:

  1. Setzen Sie einen Stop-Loss-Punkt und 3 Stopp-Punkte.
  2. Die Berechnungsfunktion definiert die aktuelle Gewinn- und Stop-Loss-Preiszahl.
  3. Die Urteilsfunktion definiert die Profitphase.
  4. Die Stop-Loss-Preise werden in unterschiedlichen Gewinnphasen geändert, um einen Slip-Stop zu erreichen.

Konkret wurde zunächst ein Stop-Loss-Distanz von 100 Punkten und drei Stop-Stopp-Distanzen von 100/200/300 Punkten festgelegt. Dann wurde eine Funktion definiert, die den Gewinn basierend auf dem aktuellen Preis und dem Kurs der Position berechnet.curProfitInPts, und die Funktion, die den Stop-Loss-Preis berechnet, basierend auf der PunktabstandcalcStopLossPrice

Das ist die entscheidende Logik.getCurrentStageFunktion, die beurteilt, ob der aktuelle Handelsplatz besteht, und ob der Gewinn einen bestimmten Stop-Point überschritten hat, wenn er überschritten wird, geht es in die nächste Phase. Zum Beispiel geht es in die zweite Phase, wenn der Stop-Point 100 erreicht ist, und in die dritte Phase, wenn der Stop-Point 200 erreicht ist.

Schließlich wird der Stop-Loss-Preis je nach Phase geändert, um einen Slipp-Stop zu erreichen. Der Stop-Loss in der ersten Phase bleibt bei der ursprünglichen Einstellung, die Stop-Loss in der zweiten Phase wechselt zu einem Gewinn-Verlust-Gleichgewicht, die Stop-Loss in der dritten Phase wechselt zum ersten Stop-Loss-Punkt.

Analyse der Stärken

Diese Stufenstop-Slip-Point-Strategie hat folgende Vorteile:

  1. Es ist möglich, einen Teil der Gewinne zu sperren, während der nachfolgende Profitraum größer bleibt.
  2. Der Einsatz von Slip-Stops, um die Preise zu verfolgen, reduziert die Wahrscheinlichkeit, dass ein PRODID zurückgezogen wird oder ein Verlust entsteht.
  3. Mehrfache Anästhesie hilft, das Risiko besser zu kontrollieren als einmalige Anästhesie.
  4. Die Strategie ist klar, einfach und verständlich.

Risikoanalyse

Die Strategie birgt auch Risiken:

  1. Ein stufenmäßiger Stopp kann dazu führen, dass man nicht rechtzeitig stoppt und besser den Ausgangsplatz verpasst. Man kann die Anzahl der Stopps optimieren, indem man sie anpasst.
  2. Eine übermäßige Einstellung der Gleitbreite kann dazu führen, dass der Stop-Loss zu früh ausgelöst wird. Verschiedene Gleitbreiten können getestet werden.
  3. Die Unmöglichkeit, einen Verlust zu stoppen, führt auch zu einem höheren Verlustrisiko. In bestimmten Fällen kann ein schneller Verlust in Betracht gezogen werden.

Optimierungsrichtung

Die Strategie kann in folgenden Richtungen optimiert werden:

  1. Test verschiedener Stopp-Stopp-Loss-Distanzen und Optimierung von Parametern.
  2. In besonderen Fällen sollte ein schneller Stop-Loss-Mechanismus berücksichtigt werden.
  3. In Kombination mit technischen Indikatoren wird der Stopp und der Stop-Loss bestimmt.
  4. Optimierung der Gleitweite, Ausgleich von Stopp und Stoppschaden.
Strategiequellcode
/*backtest
start: 2023-11-20 00:00:00
end: 2023-11-27 00:00:00
period: 3m
basePeriod: 1m
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/
// © adolgov

// @description
// when tp1 is reached, sl is moved to break-even
// when tp2 is reached, sl is moved to tp1
// when tp3 is reached - exit

//@version=4
strategy("Stepped trailing strategy example", overlay=true)

// random entry condition
longCondition = crossover(sma(close, 14), sma(close, 28))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

// sl & tp in points
sl = input(100)
tp1 = input(100)
tp2 = input(200)
tp3 = input(300)

curProfitInPts() =>
    if strategy.position_size > 0
        (high - strategy.position_avg_price) / syminfo.mintick
    else if strategy.position_size < 0
        (strategy.position_avg_price - low) / syminfo.mintick
    else
        0
        
calcStopLossPrice(OffsetPts) =>
    if strategy.position_size > 0
        strategy.position_avg_price - OffsetPts * syminfo.mintick
    else if strategy.position_size < 0
        strategy.position_avg_price + OffsetPts * syminfo.mintick
    else
        0
        
calcProfitTrgtPrice(OffsetPts) =>
    calcStopLossPrice(-OffsetPts)

getCurrentStage() =>
    var stage = 0
    if strategy.position_size == 0 
        stage := 0
    if stage == 0 and strategy.position_size != 0
        stage := 1
    else if stage == 1 and curProfitInPts() >= tp1
        stage := 2
    else if stage == 2 and curProfitInPts() >= tp2
        stage := 3
    stage

stopLevel = -1.
profitLevel = calcProfitTrgtPrice(tp3)

// based on current stage set up exit
// note: we use same exit ids ("x") consciously, for MODIFY the exit's parameters
curStage = getCurrentStage()
if curStage == 1
    stopLevel := calcStopLossPrice(sl)
    strategy.exit("x", loss = sl, profit = tp3, comment = "sl or tp3")
else if curStage == 2
    stopLevel := calcStopLossPrice(0)
    strategy.exit("x", stop = stopLevel, profit = tp3, comment = "breakeven or tp3")
else if curStage == 3
    stopLevel := calcStopLossPrice(-tp1)
    strategy.exit("x", stop = stopLevel, profit = tp3, comment = "tp1 or tp3")
else
    strategy.cancel("x")
    
// this is debug plots for visulalize TP & SL levels
plot(stopLevel > 0 ? stopLevel : na, style = plot.style_linebr)
plot(profitLevel > 0 ? profitLevel : na, style = plot.style_linebr)