Keine Nonsense SSL-Kanal-Handelstrategie

Schriftsteller:ChaoZhang, Datum: 2023-11-27 16.42:34
Tags:

img

Übersicht

Dies ist eine Trendstrategie, die auf dem SSL-Kanal-Indikator basiert. Sie beinhaltet Stop-Loss und Take-Profit-Management, um Gewinn für ein stetiges Kapitalwachstum zu erzielen.

Strategie Logik

Die Hauptlogik des Codes besteht darin, das goldene Kreuz der oberen und unteren SSL-Bänder zu verwenden, um die Trendrichtung zu bestimmen.

Nach dem Eintritt in eine Position wird die Strategie ATR multipliziert mit einem Koeffizienten verwenden, um die Stop-Loss- und Take-Profit-Preise festzulegen. Zum Beispiel ist der Stop-Loss-Preis der Preis minus ATR * 1.5 und der Take-Profit-Preis der Preis plus ATR * 1. Dies kann den einzelnen Verlust effektiv kontrollieren und Gewinne einfangen.

Wenn der SSL-Kanal überschritten wird, schließen Sie die Position. Dies kann die Wendepunkte des Trends für zeitnahe Stop-Losses verfolgen.

Analyse der Vorteile

  1. Der SSL-Kanal ist sehr präzise bei der Bestimmung der Trendrichtung
  2. Stop-Loss- und Take-Profit-Einstellungen sind angemessen, um das Risiko wirksam zu kontrollieren
  3. Zeitgemäße Stop-Losses verfolgen die Wendepunkte des Trends

Risikoanalyse

  1. Der Trendhandel kann leicht zu einem Übertrading führen
  2. Es besteht die Wahrscheinlichkeit eines Ausfalls bei der Beurteilung des SSL-Kanals.
  3. Die ATR-Koeffizienten müssen optimiert werden

Die entsprechenden Lösungen:

  1. Die Aufbewahrungsdauer entsprechend anpassen
  2. Hinzufügen anderer Indikatoren zur Bestätigung
  3. Versuche verschiedene Kombinationen von ATR-Koeffizienten

Optimierungsrichtlinien

  1. Optimierung der ATR-Parameter, um die optimale Parameterkombination zu finden
  2. Erhöhung anderer Indikatoren zur Filterung und Bestätigung von Signalen
  3. Anpassung der Haltedauer an die verschiedenen Märkte
  4. Optimieren Sie Stop-Loss- und Take-Profit-Strategien

Zusammenfassung

Die allgemeine Logik dieser Strategie ist klar, indem der SSL-Kanal verwendet wird, um den Trend zu bestimmen und einen angemessenen Stop-Loss und Take-Profit festzulegen. Aber es sind noch weitere Tests und Optimierungen erforderlich, um andere Indikatoren zu integrieren, um falsche Signale auszufiltern und die beste Parameterkombination zu finden. Gleichzeitig sollten die Parameter entsprechend den verschiedenen Märkten angepasst werden, um die Strategie flexibler zu machen. Insgesamt bietet diese Strategie einen zuverlässigen Rahmen für das Erreichen eines stabilen Einkommens.


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

//@version=3
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Designed per No Nonsense Forex VP rules
//For testing your individual indicators before the full system
//Originated from causecelebre
//Tried to put in as much VP rules as possible

///////////////////////////////////////////////////
//Rules Implemented:
///////////////////////////////////////////////////
// - SL 1.5 x ATR
// - TP 1 x ATR
//
// - Entry conditions
//// - Entry from 1 x confirmation
// - Exit conditions
//// - Exit on confirmation flip 

///////////////////////////////////////////////////
//Trades entries
///////////////////////////////////////////////////
// - First entry L1 or S1 with standard SL and TP

///////////////////////////////////////////////////
//Included Indicators and settings
///////////////////////////////////////////////////
// - Confirmtion = SSL 10

///////////////////////////////////////////////////
//Credits
// Strategy causecelebre https://www.tradingview.com/u/causecelebre/
// SSL Channel ErwinBeckers https://www.tradingview.com/u/ErwinBeckers/
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Change log
//First release. Testing of indicators
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

strategy(title="NNFX Strategy Indicator | jh", overlay = true )

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//  **** Set the main stuff  ****
///////////////////////////////////////////////////

//Price
price = close

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// ATR stuff
///////////////////////////////////////////////////

slMultiplier = input(1.5, "SL")
tpMultiplier = input(1, "TP")

atrlength = input(title="ATR Length", defval=14, minval=1)
atrsmoothing = input(title="Smoothing", defval="SMA", options=["RMA", "SMA", "EMA", "WMA"])

ma_function(source, atrlength) => 
    if atrsmoothing == "RMA"
        rma(source, atrlength)
    else
        if atrsmoothing == "SMA"
            sma(source, atrlength)
        else
            if atrsmoothing == "EMA"
                ema(source, atrlength)
            else
                wma(source, atrlength)

//plot(ma_function(tr(true), atrlength), title = "ATR", color=#991515, transp=0)

atr = ma_function(tr(true), atrlength)

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//  **** Confirmation ****
///////////////////////////////////////////////////

ssllen=input(title="SSL Length Period", defval=10)
smaHigh=sma(high, ssllen)
smaLow=sma(low, ssllen)
Hlv = na
Hlv := close > smaHigh ? 1 : close < smaLow ? -1 : Hlv[1]
sslDown = Hlv < 0 ? smaHigh: smaLow
sslUp   = Hlv < 0 ? smaLow : smaHigh

plot(sslDown, "SSL Down", linewidth=1, color=red)
plot(sslUp, "SSL Up", linewidth=1, color=lime)

///////////////////////////////////////////////////
//Confirm Signals
///////////////////////////////////////////////////

c_Up = sslUp
c_Down = sslDown

//Signals based on crossover
c_Long = crossover(c_Up, c_Down)
c_Short = crossover(c_Down, c_Up)

//Signals based on signal position
trendLong = c_Up > c_Down ? 1 : 0
trendShort = c_Down > c_Up ? 1 : 0

confirmLong = c_Long
confirmShort = c_Short

plotshape(trendLong, color = green, style=shape.triangleup, location=location.bottom)
plotshape(trendShort, color = red, style=shape.triangledown, location=location.bottom)


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//Entries and Exits
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

if (year>2009)

    //Long entries with standard 1.5 ATR for SL, 1 ATR for TP
    long_sl = price - (atr * slMultiplier)
    long_tp = price + (atr * tpMultiplier)
    strategy.order("L1", strategy.long, when = confirmLong)
    strategy.close("L1", when = confirmShort)
    strategy.exit("L Limit Exit", "L1", stop = long_sl, limit = long_tp)

    
    //Short entries with standard 1.5 ATR for SL, 1 ATR for TP
    short_sl = price + (atr * slMultiplier)
    short_tp = price - (atr * tpMultiplier)
    strategy.order("S1", strategy.short, when = confirmShort)
    strategy.close("S1", when = confirmLong)
    strategy.exit("S Limit Exit", "S1", stop = short_sl, limit = short_tp)


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//End
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



    




Mehr