Dual Moving Average Crossover adalah strategi scalping yang sederhana dan efektif yang menggunakan sinyal crossover antara harga dan moving average sebagai sinyal masuk dan keluar untuk menangkap pergerakan tren jangka pendek.
Strategi ini menggunakan dua rata-rata bergerak dari periode yang berbeda - garis MA jangka pendek dan garis MA jangka panjang. Ini menghasilkan sinyal beli ketika MA jangka pendek melintasi di atas MA jangka panjang dari bawah. Sinyal jual dihasilkan ketika MA jangka pendek melintasi di bawah MA jangka panjang dari atas.
Strategi ini pertama-tama mendefinisikan variabel
Untuk menyaring beberapa sinyal yang tidak valid, filter tambahan seperti
Akhirnya, posisi yang ada ditutup ketika harga melintasi garis MA secara terbalik.
Risiko dapat dikurangi dengan menggunakan periode MA dinamis berdasarkan volatilitas, trailing stop atau stop persentase, dll.
Strategi ini dapat ditingkatkan dengan beberapa cara:
Mengoptimalkan parameter MA secara dinamis berdasarkan volatilitas.
Tambahkan filter tambahan seperti lonjakan volume untuk meningkatkan kualitas sinyal.
Gunakan stop floating atau persentase untuk mengurangi stop out prematur.
Gabungkan dengan indikator lain seperti MACD, RSI untuk validasi multi-kondisi.
Tambahkan manajemen risiko otomatis seperti ukuran posisi dinamis untuk mengendalikan kerugian per perdagangan.
Gunakan pembelajaran mesin untuk model generasi sinyal yang lebih akurat.
Strategi crossover MA ganda adalah sistem yang efektif untuk perdagangan jangka pendek. Parameter penyesuaian yang halus, mengelola risiko dan menggabungkan dengan alat lain dapat lebih meningkatkan profitabilitasnya. Secara keseluruhan mudah dipahami dan diterapkan untuk scalping gerakan intraday yang lebih kecil.
/*backtest start: 2023-09-29 00:00:00 end: 2023-10-29 00:00:00 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("MovingAvg Cross", overlay=true) length = input(50) confirmBars = input(2) price = close ma = sma(price, length) bcond = price > ma bcount = 0 bcount := bcond ? nz(bcount[1]) + 1 : 0 clc=close[0]>close[1] clc0=close[0]>open[0] clc1=close[1]>open[1] if clc and clc0 and clc1 and (bcount == confirmBars) strategy.entry("buy", strategy.long) scond = price < ma scount = 0 scount := scond ? nz(scount[1]) + 1 : 0 csc=close[0]<close[1] csc0=close[0]<open[0] csc1=close[1]<open[1] if csc and csc0 and csc1 and (scount == confirmBars) strategy.entry("sell", strategy.short) strategy.close("buy", when=scond) strategy.close("sell",when=bcond) plot(ma, color=color.red) //plot(strategy.equity, title="equity", color=color.red, linewidth=2, style=plot.style_areabr)