
Strategi penembusan rata-rata bergerak ganda adalah strategi pelacakan tren yang lebih khas. Strategi ini menangkap arah dan kekuatan tren pasar dengan menghitung rata-rata bergerak dari dua periode yang berbeda dan menyeberangnya sebagai sinyal beli dan jual.
Strategi ini terutama didasarkan pada dua rata-rata bergerak. Periode rata-rata bergerak pertama lebih pendek dan dapat merespons perubahan harga lebih cepat; Periode rata-rata bergerak kedua lebih panjang dan dapat menyaring sebagian dari kebisingan.
Secara khusus, strategi ini menghitung rata-rata pergerakan indeks 10 periode (price1) dan rata-rata pergerakan indeks 20 periode (price2). Jika harga pembukaan dan penutupan K-line saat ini lebih tinggi dari dua rata-rata bergerak, sinyal beli dihasilkan; Jika harga pembukaan dan penutupan K-line saat ini lebih rendah dari dua rata-rata bergerak, sinyal jual dihasilkan.
Dengan desain seperti itu, Anda dapat memasuki pasar lebih awal ketika tren mulai terbentuk dan mengikuti tren; Anda juga dapat keluar dari pasar secepatnya ketika tren berbalik, dan Anda dapat mengendalikan risiko secara efektif.
Strategi ini secara keseluruhan relatif sederhana dan praktis, menangkap tren melalui prinsip persilangan dua persamaan garis, adalah strategi dasar untuk perdagangan kuantitatif. Namun, strategi ini juga memiliki risiko tertentu, perlu dioptimalkan lebih lanjut untuk beradaptasi dengan lingkungan pasar yang berbeda. Ada ruang untuk pengoptimalan dalam penyesuaian parameter, mekanisme stop loss, penyaringan sinyal, dan lain-lain, yang dapat membuat strategi lebih stabil dan andal.
/*backtest
start: 2022-11-14 00:00:00
end: 2023-11-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
//study(title="MA River CC v1", overlay = true)
strategy("MA River CC v1", overlay=true)
src = input(close, title="Source")
price = request.security(syminfo.tickerid, timeframe.period, src)
ma1 = input(10, title="1st MA Length")
type1 = input("EMA", "1st MA Type", options=["SMA", "EMA"])
ma2 = input(20, title="2nd MA Length")
type2 = input("EMA", "2nd MA Type", options=["SMA", "EMA"])
price1 = if (type1 == "SMA")
sma(price, ma1)
else
ema(price, ma1)
price2 = if (type2 == "SMA")
sma(price, ma2)
else
ema(price, ma2)
//plot(series=price, style=line, title="Price", color=black, linewidth=1, transp=0)
plot(series=price1, style=line, title="1st MA", color=blue, linewidth=2, transp=0)
plot(series=price2, style=line, title="2nd MA", color=green, linewidth=2, transp=0)
buy_entry = (open>price1 and open>price2) and (close>price1 and close>price2)
sell_entry = (open<price1 and open<price2) and (close<price1 and close<price2)
buy_close = sell_entry
sell_close = buy_entry
//longCondition = crossover(price1, price2)
if(buy_entry)
strategy.entry("Long", strategy.long)
if(sell_entry)
strategy.entry("Short", strategy.short)
strategy.close("Long" , when=buy_close)
strategy.close("Short",when=sell_close)