Strategi Penembusan Rata-rata Bergerak Ganda

Penulis:ChaoZhang, Tanggal: 2023-09-11 12:31:51
Tag:

Strategi ini menggunakan SMA dan EMA moving average untuk menentukan arah panjang dan pendek berdasarkan price breakout. Strategi ini akan menjadi panjang ketika penutupan berada di atas SMA dan EMA, akan menjadi pendek ketika penutupan berada di bawah SMA dan EMA, dan merata ketika penutupan berada di antara SMA dan EMA. Periode SMA dan EMA dapat disesuaikan oleh pengguna.

Keuntungan dari strategi breakout rata-rata bergerak ganda ini adalah menggabungkan dua sistem rata-rata bergerak dapat meningkatkan akurasi. Namun, masalah seperti sinyal palsu selama pasar yang terikat jangkauan dan sinyal tertinggal ada. Juga, tidak ada stop loss yang diimplementasikan untuk mengendalikan kerugian.

Singkatnya, strategi ini bekerja lebih baik ketika ada tren yang kuat, tetapi harus diperdagangkan dengan hati-hati.

Secara keseluruhan, strategi breakout rata-rata bergerak ganda memiliki logika perdagangan yang sederhana, tetapi membutuhkan kontrol risiko dan penyesuaian parameter yang tepat untuk diterapkan dengan sukses dalam perdagangan langsung.


/*backtest
start: 2023-08-11 00:00:00
end: 2023-09-10 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
strategy(title = "Noro's Multima v1.0", shorttitle = "Multima 1.0", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value=100.0, pyramiding=0)

needlong = input(true, "long")
needshort = input(true, "short")

usema1 = input(true, "Use MA1 (SMA, blue)")
usema2 = input(true, "Use MA2 (EMA, red)")
lenma1 = input(40, defval = 40, minval = 2, maxval = 1000, title = "MA1 length")
lenma2 = input(40, defval = 40, minval = 2, maxval = 1000, title = "MA2 length")
//anti = input(true, defval = true, title = "Antipila")
usecf = input(true, defval = true, title = "Use color-filter")

//Strategy
ma1 = sma(close, lenma1)
ma2 = ema(close, lenma2)
signal1 = usema1 == false ? 0 : close > ma1 ? 1 : -1
signal2 = usema2 == false ? 0 : close > ma2 ? 1 : -1
lots = signal1 + signal2

//Lines
plot(ma1, color = blue, linewidth = 3, transp = 0)
plot(ma2, color = red, linewidth = 3, transp = 0)

//Trading
if lots > 0 and (close < open or usecf == false)
    strategy.entry("Long", strategy.long, needlong == false ? 0 : na)

if lots < 0 and (close > open or usecf == false)
    strategy.entry("Short", strategy.short, needshort == false ? 0 : na)
    
if lots == 0
    strategy.close_all()
    
    
    

Lebih banyak