Doppelter Stop-Profit und doppelter Stop-Loss, gleitende Stop-Loss-Quantitative-Strategie


Erstellungsdatum: 2024-01-19 15:07:04 zuletzt geändert: 2024-01-19 15:07:04
Kopie: 3 Klicks: 598
1
konzentrieren Sie sich auf
1617
Anhänger

Doppelter Stop-Profit und doppelter Stop-Loss, gleitende Stop-Loss-Quantitative-Strategie

Überblick

Diese Strategie ist eine Bitcoin-Quantitative-Trading-Strategie, die auf doppelten Stopps, doppelten Stop-Losses und mobilen Stop-Losses basiert. Die Strategie verwendet die Kreuzung von EMA und WMA als Einstiegssignal, nimmt eine doppelte Stop-Loss-Risikomanagement-Methode an, nimmt nach Erreichen des ersten Stop-Losses eine mobile Stop-Loss-Garantie, um einen Teil des Gewinns zu erzielen und weiter zu streben.

Strategieprinzip

Wenn die EMA die WMA von unten durchzieht, macht sie einen Überzug; wenn die EMA die WMA von oben durchzieht, macht sie einen Hohlzug.

Für die Stopp-Seite wurden zwei Stopp-Punkte eingerichtet, wobei der erste Stopp-Punkt 20 Punkte über dem Einstiegspunkt und der zweite Stopp-Punkt 40 Punkte über dem Einstiegspunkt eingerichtet wurde.

Im Bereich Stop-Loss wurden ebenfalls zwei Stop-Loss-Punkte eingerichtet, wobei der erste Stop-Loss-Punkt 20 Punkte unter dem Einstiegspunkt und der zweite Stop-Loss-Punkt als Einstiegspunkt selbst eingerichtet wurde.

Wenn der Preis zuerst den ersten Stop-Loss berührt, wird die Position um 50% abgewickelt und der Stop-Loss an den Einstiegspunkt verlagert, um weiter nach einem höheren Gewinn am zweiten Stop-Loss zu streben.

Es gibt drei Möglichkeiten, wie diese Strategie funktioniert:

  1. Der Preis hat zuerst den Stop-Loss-Punkt erreicht und 2 Prozent des Kapitals verloren.
  2. Der Preis berührt zunächst den ersten Stop-Loss-Punkt und erzielt einen Gewinn von 1%, danach den zweiten Stop-Loss-Punkt und schließlich einen Gewinn von 1%;
  3. Der Preis berührte den ersten Stopp und erzielte einen Gewinn von 1%, dann ging er weiter und berührte den zweiten Stopp und erzielte schließlich einen Gewinn von 3%.

Analyse der Stärken

Der größte Vorteil dieser Strategie liegt in der Risikomanagement-System. Durch die Einrichtung von doppelten Stop-and-Stop-Doppel-Verlust, können Sie nach dem Erhalt eines Teils der Gewinne, mit einem beweglichen Stop-Verlust, um die Gewinne zu sperren, weiter zu streben, um mehr Geld zu verdienen. Dies kann die Profitabilität erheblich verbessern.

Ein weiterer Vorteil ist, dass die Strategie die Ergebnisse eines einzelnen Handels in drei Situationen unterteilt, wodurch die Wahrscheinlichkeit eines einzelnen Verlusts verringert und die Gesamterträge stabilisiert werden. Die übliche Strategie hat nur zwei Ergebnisse, entweder ein Verlust von 2% oder ein Gewinn von mehr als 2%. Die Strategie hat drei Ergebnisse, nämlich ein Verlust von 2%, ein Gewinn von 1% und ein Gewinn von 3%.

Risikoanalyse

Die Risiken dieser Strategie entstehen hauptsächlich aus der Einstellung der Stop-Loss-Punkte. Eine zu lockere Stop-Loss-Spanne kann zu großen Einmalverlusten führen, während eine zu schmale Stop-Loss-Spanne leicht vom Marktgeräusch getroffen wird. Dies erfordert die Einstellung geeigneter Stop-Loss-Spanne basierend auf den Eigenschaften und der Volatilität der verschiedenen Sorten.

Ein weiteres Risiko besteht darin, dass ein Teil der Positionen, die nach dem ersten Stop-Off noch gehalten werden, verliert. Wenn die Verluste den Gewinn des ersten Stopps überschreiten, wird ein Teil oder der gesamte Gewinn ausgeglichen. Dies erfordert eine strenge Ausführung von beweglichen Stop-Losses, um die Gewinne zu sperren.

Optimierungsrichtung

Diese Strategie kann in folgenden Bereichen optimiert werden:

  1. Verschiedene Parameterkombinationen werden getestet, um die optimale Parameter-Einstellung zu finden. Zum Beispiel können 15-Punkte und 25-Punkte-Stop-Stop-Loss-Distanzen getestet werden.

  2. Versuchen Sie andere Kombinationen von Kennzahlen, wie KDJ, MACD und andere Kennzeichen zu entscheiden.

  3. Die Positionsquote für die erste Stop-Loss-Plating-Position wird optimiert, um 50% geeignet oder 30% oder 70% besser zu sein.

  4. Testen Sie die Tracking-Geschwindigkeit der mobilen Stop-Loss-Einstellungen, um sicherzustellen, dass der Verlustraum so klein wie möglich ist, während der Gewinn garantiert wird.

Zusammenfassen

Die Strategie ist insgesamt sehr robust und kann durch doppelte Stop-Loss-Systeme und mobile Stop-Loss-Systeme die Gewinnspanne deutlich erhöhen und das Rückenrisiko senken. Es gibt auch viel Spielraum für Optimierungen und bessere Ergebnisse durch Parameteranpassung und Kombination von Indikatoren.

Strategiequellcode
/*backtest
start: 2024-01-11 00:00:00
end: 2024-01-18 00:00:00
period: 45m
basePeriod: 5m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("SL1 Pips after TP1 (MA)", commission_type=strategy.commission.cash_per_order, overlay=true)

// Strategy
Buy  = input(true)
Sell = input(true)

// Date Range
start_year    = input(title='Start year'   ,defval=2020)
start_month   = input(title='Start month'  ,defval=1)
start_day     = input(title='Start day'    ,defval=1)
start_hour    = input(title='Start hour'   ,defval=0)
start_minute  = input(title='Start minute' ,defval=0)
end_time      = input(title='set end time?',defval=false)
end_year      = input(title='end year'     ,defval=2019)
end_month     = input(title='end month'    ,defval=12)
end_day       = input(title='end day'      ,defval=31)
end_hour      = input(title='end hour'     ,defval=23)
end_minute    = input(title='end minute'   ,defval=59)

// MA
ema_period = input(title='EMA period',defval=10)
wma_period = input(title='WMA period',defval=20)
ema        = ema(close,ema_period)
wma        = wma(close,wma_period)

// Entry Condition
buy =
 crossover(ema,wma) and
 nz(strategy.position_size) == 0 and Buy
 
sell =
 crossunder(ema,wma) and
 nz(strategy.position_size) == 0 and Sell

// Pips
pip = input(20)*10*syminfo.mintick

// Trading parameters //
var bool  LS  = na
var bool  SS  = na
var float EP  = na
var float TVL = na
var float TVS = na
var float TSL = na
var float TSS = na
var float TP1 = na
var float TP2 = na
var float SL1 = na
var float SL2 = na

if buy or sell and strategy.position_size == 0
    EP  := close
    SL1 := EP - pip     * (sell?-1:1)
    SL2 := EP - pip     * (sell?-1:1)
    TP1 := EP + pip     * (sell?-1:1)
    TP2 := EP + pip * 2 * (sell?-1:1) 
   
// current trade direction    
LS := buy  or strategy.position_size > 0
SS := sell or strategy.position_size < 0

// adjust trade parameters and trailing stop calculations
TVL := max(TP1,open) - pip[1]
TVS := min(TP1,open) + pip[1]
TSL := open[1] > TSL[1] ? max(TVL,TSL[1]):TVL 
TSS := open[1] < TSS[1] ? min(TVS,TSS[1]):TVS

if LS and high > TP1
    if open <= TP1
        SL2:=min(EP,TSL)
    
if SS and low < TP1
    if open >= TP1
        SL2:=max(EP,TSS)

// Closing conditions
close_long  = LS and open < SL2
close_short = SS and open > SL2

// Buy
strategy.entry("buy"  , strategy.long, when=buy and not SS)
strategy.exit ("exit1", from_entry="buy", stop=SL1, limit=TP1, qty_percent=1)
strategy.exit ("exit2", from_entry="buy", stop=SL2, limit=TP2)

// Sell
strategy.entry("sell" , strategy.short, when=sell and not LS)
strategy.exit ("exit3", from_entry="sell", stop=SL1, limit=TP1, qty_percent=1)
strategy.exit ("exit4", from_entry="sell", stop=SL2, limit=TP2)

// Plots
a=plot(strategy.position_size >  0 ? SL1 : na, color=#dc143c, style=plot.style_linebr)
b=plot(strategy.position_size <  0 ? SL1 : na, color=#dc143c, style=plot.style_linebr) 
c=plot(strategy.position_size >  0 ? TP1 : na, color=#00ced1, style=plot.style_linebr) 
d=plot(strategy.position_size <  0 ? TP1 : na, color=#00ced1, style=plot.style_linebr) 
e=plot(strategy.position_size >  0 ? TP2 : na, color=#00ced1, style=plot.style_linebr) 
f=plot(strategy.position_size <  0 ? TP2 : na, color=#00ced1, style=plot.style_linebr) 
g=plot(strategy.position_size >= 0 ? na  : EP, color=#ffffff, style=plot.style_linebr) 
h=plot(strategy.position_size <= 0 ? na  : EP, color=#ffffff, style=plot.style_linebr) 

plot(ema,title="ema",color=#fff176)
plot(wma,title="wma",color=#00ced1)