Tidak ada strategi perdagangan saluran SSL yang tidak masuk akal

Penulis:ChaoZhang, Tarikh: 2023-11-27 16:42:34
Tag:

img

Ringkasan

Ini adalah strategi mengikut trend berdasarkan penunjuk Saluran SSL. Ia menggabungkan penghentian kerugian dan mengambil pengurusan keuntungan untuk mengunci keuntungan untuk pertumbuhan modal yang stabil.

Logika Strategi

Logik utama kod ini adalah menggunakan salib emas jalur atas dan bawah SSL untuk menentukan arah trend. Khususnya, pergi panjang apabila jalur atas SSL melintasi di atas jalur bawah SSL dari bawah, dan pergi pendek apabila jalur bawah SSL melintasi di bawah jalur atas SSL dari atas.

Selepas memasuki kedudukan, strategi akan menggunakan ATR dikalikan dengan pekali untuk menetapkan harga stop loss dan mengambil keuntungan. Sebagai contoh, harga stop loss adalah harga dikurangkan ATR * 1.5 dan harga mengambil keuntungan adalah harga ditambah ATR * 1. Ini dapat mengawal kerugian tunggal dengan berkesan dan mengunci keuntungan.

Apabila saluran SSL melintasi, tutup kedudukan. Ini boleh mengesan titik perubahan dalam trend untuk menghentikan kerugian tepat pada masanya.

Analisis Kelebihan

  1. Saluran SSL sangat tepat dalam menentukan arah trend
  2. Tetapan Stop Loss dan Take Profit adalah munasabah untuk mengawal risiko dengan berkesan
  3. Stop loss tepat pada masanya menjejaki titik perubahan dalam trend

Analisis Risiko

  1. Dagangan trend boleh dengan mudah membawa kepada overtrading
  2. Terdapat kebarangkalian kegagalan dalam penilaian saluran SSL
  3. Koefisien ATR perlu dioptimumkan

Penyelesaiannya:

  1. Sesuai menyesuaikan tempoh penahan
  2. Masukkan penunjuk lain untuk pengesahan
  3. Uji gabungan pekali ATR yang berbeza

Arahan pengoptimuman

  1. Mengoptimumkan parameter ATR untuk mencari kombinasi parameter yang optimum
  2. Meningkatkan penunjuk lain untuk menapis dan mengesahkan isyarat
  3. Sesuaikan tempoh penyimpanan mengikut pasaran yang berbeza
  4. Mengoptimumkan strategi stop loss dan mengambil keuntungan

Ringkasan

Logik keseluruhan strategi ini jelas, menggunakan saluran SSL untuk menentukan trend, dan menetapkan stop loss dan mengambil keuntungan yang munasabah. Tetapi ujian dan pengoptimuman lanjut masih diperlukan, menggabungkan penunjuk lain untuk menapis isyarat palsu dan mencari kombinasi parameter terbaik. Pada masa yang sama, parameter harus disesuaikan mengikut pasaran yang berbeza untuk menjadikan strategi lebih fleksibel. Secara keseluruhan, strategi ini menyediakan rangka kerja yang boleh dipercayai untuk mencapai pendapatan yang stabil.


/*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
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



    




Lebih lanjut