Strategi trading berdasarkan golden cross dan death cross moving average
Ikhtisar
Strategi perdagangan crossover rata-rata bergerak (golden cross dan death cross) menghasilkan sinyal beli dan jual berdasarkan persilangan antara EMA cepat (fastLength) dan EMA lambat (slowLength). Ketika EMA cepat melintasi di atas EMA lambat, sinyal beli dihasilkan; ketika EMA cepat melintasi di bawah EMA lambat, sinyal jual dihasilkan. Strategi ini sederhana dan praktis, cocok untuk perdagangan jangka menengah dan pendek.
Prinsip Strategi
Strategi ini menggunakan dua rata-rata bergerak: cepat dan lambat. Parameter default untuk EMA cepat adalah periode 9 hari, dan untuk EMA lambat adalah periode 26 hari. Persilangan kedua garis EMA digunakan untuk menentukan sinyal beli dan jual di pasar:
- Ketika EMA cepat menembus ke atas EMA lambat, sinyal beli (enterLong()) dihasilkan.
- Ketika EMA cepat menembus ke bawah EMA lambat, sinyal jual (enterShort()) dihasilkan.
Aturan sinyal dan strategi perdagangan secara rinci adalah sebagai berikut:
- Ketika EMA cepat melintasi di atas EMA lambat, posisi long dibuka; ketika EMA cepat melintasi di bawah EMA lambat, posisi ditutup.
- Take profit untuk posisi long adalah Targetpercentage (default 0,15%), yaitu ketika harga naik 15% posisi ditutup.
- Stop loss untuk posisi long adalah StopLosspercentage (default 0,20%), yaitu ketika harga turun 20% posisi ditutup untuk menghentikan kerugian.
- Demikian pula untuk posisi short.
Jadi, strategi ini melakukan transaksi pada saat terjadi golden cross dan death cross antara dua rata-rata bergerak.
Keunggulan
- Strategi sederhana dan mudah dipahami.
- Penggunaan rata-rata bergerak menyaring sebagian kebisingan pasar, membuat sinyal perdagangan lebih akurat.
- Aturan perdagangan yang jelas, dengan strategi take profit dan stop loss yang jelas.
- Parameter pengujian dapat disesuaikan secara fleksibel untuk berbagai kondisi pasar.
Analisis Risiko
- Rata-rata bergerak memiliki sifat lagging, sehingga dapat melewatkan pergerakan harga jangka pendek, menyebabkan titik beli dan jual yang tidak tepat.
- Parameter periode rata-rata bergerak yang berbeda dapat menghasilkan sinyal palsu, menyebabkan kerugian.
- Hanya bergantung pada beberapa parameter, strategi ini memiliki kebutuhan optimasi hiperparameter yang tinggi; perlu ditemukan kombinasi parameter terbaik.
- Dalam tren besar tertentu, strategi ini cenderung gagal.
Untuk mengatasi risiko, parameter yang dapat dioptimalkan meliputi periode rata-rata bergerak, instrumen yang diperdagangkan, rasio take profit/stop loss, dll. Diperlukan banyak pengujian untuk mengurangi risiko.
Arah Optimasi
Gagasan persilangan rata-rata bergerak dalam strategi ini sederhana dan praktis, dapat dioptimalkan melalui cara-cara berikut:
- Mengganti jenis rata-rata bergerak: Selain EMA, dapat juga diuji SMA, LWMA, HMA, dll.
- Menambahkan indikator lain: Menggabungkan dengan RSI, MACD, dan indikator lain untuk menentukan waktu entry.
- Optimasi parameter otomatis: Melakukan pencarian otomatis untuk dua parameter periode EMA guna menemukan kombinasi terbaik.
- Filter tren: Melakukan perdagangan secara selektif berdasarkan tren jangka besar.
- Optimasi strategi take profit/stop loss: Memperbaiki metode persentase tetap agar lebih efektif dalam praktik.
Melalui optimasi dan pengujian ini, efektivitas dan stabilitas strategi di dunia nyata dapat ditingkatkan secara signifikan.
Kesimpulan
Gagasan strategi crossover rata-rata bergerak sederhana, namun penerapannya memerlukan optimasi terus-menerus. Strategi ini memberikan logika pembangkitan sinyal perdagangan dan aturan dasar. Di atas dasar ini, dapat dioptimasi secara ekstensif untuk menjadi strategi kuantitatif yang dapat diimplementasikan. Penerapan rata-rata bergerak juga memberikan inspirasi strategis, yang dapat menjadi landasan untuk inovasi dan perbaikan lebih lanjut.
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("EMA Cross by MarketAlpha", overlay=true)
EMAfastLength = input(defval = 9, minval = 2)
EMAslowLength = input(defval = 26, minval = 2)- 1

