Strategi ini menggunakan kedua-dua purata bergerak SMA dan EMA untuk menentukan hala tuju panjang dan pendek berdasarkan penembusan harga. Ia menjadi panjang apabila penutupan berada di atas kedua-dua SMA dan EMA, menjadi pendek apabila penutupan berada di bawah kedua-dua SMA dan EMA, dan rata apabila penutupan berada di antara SMA dan EMA. Tempoh SMA dan EMA boleh disesuaikan oleh pengguna.
Kelebihan dari strategi breakout purata bergerak berganda ini adalah menggabungkan dua sistem purata bergerak boleh meningkatkan ketepatan. Walau bagaimanapun, masalah seperti isyarat palsu semasa pasaran terikat julat dan isyarat tertinggal wujud.
Ringkasnya, strategi ini berfungsi dengan lebih baik apabila terdapat trend yang kuat, tetapi harus diperdagangkan dengan berhati-hati. Pengoptimuman parameter, menambah berhenti, dan penapis tambahan dapat meningkatkan strategi dengan mengurangkan isyarat palsu.
Secara keseluruhan, strategi breakout purata bergerak berganda mempunyai logika perdagangan yang mudah, tetapi memerlukan kawalan risiko yang betul dan penyesuaian parameter untuk digunakan dengan berjaya 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()