Doppel SSL-Strategie mit EMA-Stop Loss

Schriftsteller:ChaoZhang, Datum: 2023-11-06 16:52:11
Tags:

img

Übersicht

Diese Strategie integriert den Dual-SSL-Indikator und den gleitenden Durchschnittsindikator, wobei der Dual-SSL-Indikator zur Bestimmung der Markttrendrichtung und gleitende Durchschnittswerte zur Trendbestätigung verwendet wird.

Strategie Logik

  1. Berechnen Sie die obere Schiene, indem Sie die SMA des höchsten Preises über einen bestimmten Zeitraum gegenüber dem Schluss von gestern berechnen. Berechnen Sie die untere Schiene, indem Sie die SMA des niedrigsten Preises über einen bestimmten Zeitraum gegenüber dem Schluss von gestern berechnen.

  2. Vergleichen Sie den aktuellen Schlusskurs mit den oberen und unteren Schienen, um die aktuelle Trendrichtung zu bestimmen. Wenn der Schlusskurs über der oberen Schiene liegt, wird der Trend als bullisch bestimmt. Wenn der Schlusskurs unter der unteren Schiene liegt, wird der Trend als bärisch bestimmt.

  3. Berechnen Sie den 200-Perioden-SMA der Schlusskurs als Benchmark für mittelfristige und langfristige Trends.

  4. Wenn der Schlusskurs von unten über die SMA bricht, wird ein Kaufsignal generiert.

  5. Wenn der Schlusskurs nach dem Eintritt in eine Long-Position unter die obere Schiene bricht, ist dies ein Schlusssignal.

  6. Wenn der Schlusskurs unter den Stop-Loss-Punkt fällt, wird die Stop-Loss-Order ausgelöst.

Vorteile

  1. Die Verwendung des Dual SSL-Indikators zur Bestimmung der Trendrichtung kann Trends effektiv identifizieren und die Wahrscheinlichkeit erhöhen, in die richtige Richtung zu gelangen.

  2. Durch das Hinzufügen von gleitenden Durchschnitten können einige Geräuschsignale ausfiltert und falsche Trades in unruhigen Märkten vermieden werden.

  3. Die Verwendung eines Stop-Loss zur Kontrolle des Einzelhandelsrisikos kann übermäßige Verluste wirksam vermeiden.

  4. Die Strategielogik ist relativ einfach und leicht verständlich, geeignet für Anfänger zum Üben.

Risiken

  1. Der Dual-SSL-Indikator ist empfindlich gegenüber Parameter-Tuning, verschiedene Periodenkombinationen können zu sehr unterschiedlichen Ergebnissen führen.

  2. Eine zu lange MA filtert zu viele Handelschancen aus, während eine zu kurze nicht effektiv denunziert.

  3. Ein zu breiter Stop-Loss-Bereich kann das Risiko nicht wirksam kontrollieren, während ein zu engerer durch normale Kursschwankungen ausgelöst werden kann.

  4. Die Strategie stützt sich stark auf die Optimierung von Parametern. Falsche Parameter können Trends nicht richtig identifizieren und zu falschen Handelsentscheidungen führen.

Optimierungsrichtlinien

  1. Testen Sie verschiedene Periodenkombinationen, um Parameter zu finden, die die Trendbestimmungsgenauigkeit für den Dual SSL-Indikator verbessern können.

  2. Versuche verschiedene Perioden-MAs, um das optimale Gleichgewicht zwischen denozierenden und konservierenden Signalen zu finden.

  3. Es werden adaptive Stop-Loss-Anwendungen untersucht, die sich anhand der Marktvolatilität anpassen, um den Stop-Loss reaktionsfähiger zu machen.

  4. Einbeziehung anderer Indikatoren zur Bestätigung, z. B. Volumen, Zusammenfluss mehrerer Zeitrahmen, um die Robustheit zu verbessern.

  5. Eine Analyse der vorwärtsgehenden Entwicklung der optimierten Strategie sollte zur Gewährleistung der Robustheit durchgeführt werden.

Schlussfolgerung

Diese Strategie kombiniert die Stärken des Dual-SSL-Indikators und gleitenden Durchschnittswerte. Mit erheblichem Potenzial für die Optimierung von Parametern ist es eine Trendfolgestrategie. Mit angemessener Parameter-Tuning und Optimierung können gute Ergebnisse erzielt werden. Allerdings sollte das Risiko einer Überanpassung kontrolliert werden, um die Robustheit zu gewährleisten. Insgesamt dient diese Strategie als gutes Beispiel für Erforschung und Lernen.


/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
//@Isaac
//Estrategia vista en ▼▼
//YT: Trading Zone
strategy('SSL Strategy + EMA 200 AND Stop Loss', overlay=true)

ema = ta.ema(close, 200)

stop_loss = input.float(2.00, title='Stop Loss', step=0.10)

period = input(title='Period', defval=10)
len = input(title='Period', defval=10)
smaHigh = ta.sma(high, len)
smaLow = ta.sma(low, len)
Hlv = int(na)
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? smaHigh : smaLow
sslUp = Hlv < 0 ? smaLow : smaHigh


cruceArriba = ta.crossover(sslUp, sslDown)
cruceAbajo = ta.crossunder(sslUp, sslDown)

alcista = (close > ema ) and (cruceArriba) 
bajista = (close < ema) and (cruceAbajo)

var SL = 0.0
//Cerrar compra por cruce
por_cruce = ta.crossunder(sslUp, sslDown)

//Cerrar venta por cruce
por_cruceAB = ta.crossunder(sslDown, sslUp)

//Cerrar compra y venta por stop loss
Stop = SL

comprado = strategy.position_size > 0
vendido = strategy.position_size < 0

UTmpconvertL = strategy.position_avg_price * (1 + 0.1)
UTmpdefineL = (UTmpconvertL > close and strategy.openprofit > 0.1)
UTSPL = UTmpdefineL

SPL = UTSPL

///////////////////////////////////////////////////////////////////////

UTmpconvertLS = strategy.position_avg_price * (1 + 0.1)
UTmpdefineLS = (UTmpconvertLS > close and strategy.openprofit > 0.1)
UTSPLS = UTmpdefineLS

SPLS = UTSPLS

////////////////////////////////////////////////////////////////////////

if not comprado and not vendido and alcista
    cantidad = (strategy.equity / close)
    strategy.entry('Compra', strategy.long, qty=cantidad, comment="Long")
    SL := sslDown


if comprado and not vendido and por_cruce and SPL
    strategy.close("Compra", comment="Exit Long")
    SL := 0
    
if comprado and not vendido and Stop
    strategy.exit('Compra', stop=Stop, comment="SL")
    SL := 0

///////////////////////////////////////////////////////////////////

if not comprado and not vendido and bajista
    cantidad = (strategy.equity / close)
    strategy.entry('Venta', strategy.short, qty=cantidad, comment="Short")
    SL := sslDown

if not comprado and vendido and por_cruceAB and SPLS
    strategy.close("Venta", comment="Exit Short")
    SL := 0
    
if not comprado and vendido and Stop
    strategy.exit('Venta', stop=Stop, comment="SLS")
    SL := 0



plot(Stop > 0 ? Stop : na, style=plot.style_circles, color=color.new(color.yellow,0))
plot(ema)
plot(sslDown, linewidth=2, color=color.new(color.red, 0))
plot(sslUp, linewidth=2, color=color.new(color.lime, 0))




Mehr