Dual Moving Average Crossover Strategy adalah strategi trend following yang khas. Strategi ini menghitung dua moving average dengan periode yang berbeda dan menggunakan crossover mereka sebagai sinyal perdagangan untuk menangkap arah dan momentum tren pasar.
Strategi ini terutama didasarkan pada dua moving average. moving average pertama memiliki periode yang lebih pendek dan dapat merespons perubahan harga lebih cepat. moving average kedua memiliki periode yang lebih lama dan dapat menyaring beberapa kebisingan. ketika moving average jangka pendek melintasi moving average jangka panjang, itu dianggap sinyal beli. ketika moving average jangka pendek melintasi di bawah moving average jangka panjang, itu dianggap sinyal jual.
Secara khusus, strategi ini menghitung rata-rata bergerak eksponensial 10 periode (harga1) dan rata-rata bergerak eksponensial 20 periode (harga2). Jika harga buka dan penutupan bar saat ini keduanya lebih tinggi dari dua rata-rata bergerak, sinyal beli dihasilkan. Jika harga buka dan penutupan keduanya lebih rendah dari dua rata-rata bergerak, sinyal jual dihasilkan.
Desain ini memungkinkan masuk lebih awal ketika tren mulai terbentuk dan mengikuti tren. Ketika tren berbalik, itu juga dapat keluar dari pasar lebih awal untuk secara efektif mengendalikan risiko.
Strategi ini relatif sederhana dan praktis, menangkap tren dengan crossover MA ganda, menjadikannya strategi kuantum mendasar. tetapi juga memiliki beberapa risiko dan membutuhkan optimasi lebih lanjut untuk rezim pasar yang berbeda. ada ruang untuk meningkatkan parameter, berhenti, filter dll untuk membuatnya lebih kuat.
/*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)