Strategi mengikuti tren berdasarkan indikator saluran SSL


Tanggal Pembuatan: 2023-11-27 16:42:34 Akhirnya memodifikasi: 2023-11-27 16:42:34
menyalin: 0 Jumlah klik: 1445
1
fokus pada
1617
Pengikut

Strategi mengikuti tren berdasarkan indikator saluran SSL

Ringkasan

Strategi ini adalah strategi pelacakan tren yang didasarkan pada indikator SSL channel. Strategi ini menggabungkan manajemen stop loss dan stop loss untuk mengunci keuntungan untuk mencapai pertumbuhan dana yang stabil.

Prinsip Strategi

Logika utama dari kode ini adalah menggunakan silang emas antara SSL atas dan bawah untuk menilai arah tren. Secara khusus, ketika SSL atas melintasi SSL bawah dari arah bawah, lakukan over; ketika SSL bawah melintasi SSL atas dari arah atas, lakukan over.

Setelah memasuki posisi, strategi akan menggunakan ATR indikator kalikan dengan faktor untuk mengatur stop loss dan harga stop. Misalnya, stop loss adalah harga dikurangi ATR * 1.5, harga stop adalah harga ditambah ATR * 1. Ini dapat secara efektif mengontrol kerugian tunggal dan mengunci keuntungan.

Ketika SSL terputus, posisi bisa diatasi. Dengan begitu, Anda dapat melacak titik balik tren dan menghentikan kerugian tepat waktu.

Analisis Keunggulan

  1. Keakuratan tinggi dalam menentukan arah tren menggunakan saluran SSL
  2. Pengaturan Stop Loss dan Stop Stop yang masuk akal untuk mengontrol risiko secara efektif
  3. Stop loss tepat waktu, track trend turning point

Analisis risiko

  1. Perdagangan tren mudah terbentuk overtrading
  2. Probabilitas kegagalan penilaian saluran SSL
  3. Perlu mengoptimalkan faktor ATR

Solusi yang sesuai:

  1. Siklus pemegang posisi yang disesuaikan
  2. Konfirmasi dalam Kombinasi dengan Indikator Lain
  3. Uji kombinasi ATR yang berbeda

Arah optimasi

  1. Optimalkan parameter ATR untuk menemukan kombinasi optimal
  2. Menambahkan filter indikator lainnya dan sinyal konfirmasi
  3. Siklus kepemilikan yang disesuaikan dengan pasar yang berbeda
  4. Optimalkan strategi stop loss

Meringkaskan

Strategi ini memiliki pemikiran yang jelas secara keseluruhan, menggunakan SSL untuk menilai tren, dan menetapkan stop loss yang masuk akal. Namun, masih perlu pengujian dan pengoptimalan lebih lanjut, yang dikombinasikan dengan indikator lain untuk memfilter sinyal palsu, untuk menemukan kombinasi parameter terbaik. Pada saat yang sama, untuk menyesuaikan parameter sesuai dengan pasar yang berbeda, membuat strategi lebih fleksibel.

Kode Sumber Strategi
/*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
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////