Strategi perdagangan crossover rata-rata bergerak ganda menghasilkan sinyal perdagangan dengan menghitung rata-rata bergerak eksponensial (EMA) selama kerangka waktu yang berbeda dan mendeteksi titik crossover mereka. Ini termasuk dalam kategori strategi trend-mengikuti. Strategi ini menggunakan 3 EMA
Menghitung EMA 50 periode, 144 periode, dan 200 periode menggunakan harga penutupan, yang ditandai sebagai EMA50, EMA144, dan EMA200 masing-masing.
Jika EMA50 melintasi di atas EMA144 dan EMA200 secara bersamaan, memicu sinyal beli untuk membuka posisi panjang.
Jika EMA50 melintasi di bawah EMA144 dan EMA200 secara bersamaan, memicu sinyal jual untuk menutup posisi panjang.
Strategi Crossover Dual Moving Average memiliki keuntungan berikut:
Sederhana dan mudah dipahami. Parameter intuitif dan mudah diterapkan untuk otomatisasi.
Merespons dengan cepat perubahan tren dan perubahan momentum.
Parameter yang dapat disesuaikan memungkinkan penyesuaian periode EMA agar sesuai dengan kondisi pasar yang berbeda.
Memiliki beberapa kemampuan penyaringan kebisingan untuk menghindari tertipu oleh fluktuasi jangka pendek.
Dapat dikombinasikan dengan indikator lain untuk membangun aturan perdagangan yang sistematis.
Ada juga beberapa risiko yang terkait dengan strategi ini:
Rendah untuk menghasilkan sinyal palsu dan menjadi whipsawed oleh volatilitas tinggi.
Tidak dapat menentukan durasi tren yang telah ditetapkan.
Penyesuaian parameter yang tidak tepat dapat menyebabkan over-trading yang meningkatkan biaya transaksi dan slippage.
Dapat menghasilkan kerugian berturut-turut saat berdagang di pasar yang berputar-putar.
Tidak memiliki mekanisme manajemen risiko seperti stop loss.
Beberapa cara untuk mengoptimalkan Dual Moving Average Crossover Strategy meliputi:
Menambahkan filter berdasarkan indikator lain seperti volume dan volatilitas untuk mengurangi sinyal palsu.
Menggabungkan strategi stop-loss untuk mengendalikan risiko perdagangan tunggal.
Mengoptimalkan periode EMA untuk beradaptasi dengan kerangka waktu pasar yang berbeda.
Menambahkan aturan ukuran posisi seperti alokasi pecahan tetap, piramida dll.
Menggunakan model pembelajaran mesin untuk mengoptimalkan parameter secara dinamis.
Dual Moving Average Crossover adalah strategi trend-following yang sederhana dan praktis. Ini mengidentifikasi arah tren melalui persimpangan EMA dan bertujuan untuk menangkap peluang di sepanjang tren jangka menengah hingga panjang. Meskipun mudah dipahami dan diimplementasikan, ia menderita kelemahan seperti sinyal palsu dan kurangnya kontrol risiko. Dengan memperkenalkan filter tambahan, stop loss, dan optimasi parameter, ia dapat dibentuk menjadi sistem perdagangan yang kuat dan efisien. Secara keseluruhan, strategi ini sangat cocok untuk perdagangan tren otomatis dan tetap menjadi salah satu blok bangunan paling dasar dari strategi perdagangan algoritmik.
/*backtest start: 2023-11-29 00:00:00 end: 2023-12-06 00:00:00 period: 1m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © SDTA //@version=5 strategy("EMA Crossover Strategy", overlay=true) // Hareketli Ortalamaları Hesapla ema50 = ta.ema(close, 50) ema144 = ta.ema(close, 144) ema200 = ta.ema(close, 200) // Al sinyali koşulu: Fiyat EMA 50, EMA 144 ve EMA 200 üzerine çıktığında longCondition = close > ema50 and close > ema144 and close > ema200 // Sat sinyali koşulu: Fiyat EMA 200, EMA 144 ve EMA 50 altına indiğinde shortCondition = close < ema200 and close < ema144 and close < ema50 // Al ve Sat sinyallerinin gerçekleştiği çubuğu ok ile belirt plotarrow(series=longCondition ? 1 : shortCondition ? -1 : na, colorup=color.green, colordown=color.red, offset=-1, title="Trade Arrow") // Hareketli Ortalamaları Çiz plot(ema50, color=color.blue, title="EMA 50") plot(ema144, color=color.orange, title="EMA 144") plot(ema200, color=color.red, title="EMA 200") // Strateji testi ekleyin strategy.entry("AL", strategy.long, when=longCondition) strategy.entry("SAT", strategy.short, when=shortCondition)