Strategi Crossover Dual Moving Average - EMA9/20 adalah strategi perdagangan kuantitatif yang didasarkan pada crossover dua moving average (EMA) eksponensial. Strategi ini menggunakan EMA 9 hari dan EMA 20 hari sebagai sinyal perdagangan, menghasilkan sinyal beli atau jual ketika dua moving average bersilang. Selain itu, strategi ini menggunakan crossover antara harga dan EMA 9 hari sebagai sinyal tambahan, serta trailing stop untuk mengelola risiko perdagangan.
Prinsip inti dari strategi ini adalah untuk menangkap tren pasar dengan memanfaatkan persilangan dua rata-rata bergerak dengan periode yang berbeda. Ketika rata-rata bergerak jangka pendek (9 hari EMA) melintasi di atas rata-rata bergerak jangka panjang (20 hari EMA), itu menunjukkan tren kenaikan potensial di pasar, dan strategi menghasilkan sinyal beli. Sebaliknya, ketika rata-rata bergerak jangka pendek melintasi di bawah rata-rata bergerak jangka panjang, itu menunjukkan tren penurunan potensial, dan strategi menghasilkan sinyal jual.
Selain sinyal crossover rata-rata bergerak, strategi ini juga menggabungkan crossover antara harga dan rata-rata bergerak jangka pendek (EMA 9 hari) sebagai sinyal tambahan. Ketika harga melintasi di atas EMA 9 hari, itu juga menghasilkan sinyal beli, dan ketika harga melintasi di bawah EMA 9 hari, itu menghasilkan sinyal jual. Ini memungkinkan untuk menangkap perubahan tren pasar secara lebih tepat waktu.
Untuk mengendalikan risiko, strategi ini menggunakan mekanisme trailing stop. Setelah perdagangan memasuki keadaan menguntungkan, trailing stop terus menyesuaikan posisi stop-loss sesuai dengan pergerakan harga sampai harga melanggar level stop-loss ke arah yang berlawanan, sehingga mengunci keuntungan sambil membatasi potensi kerugian.
Kesederhanaan: Strategi ini didasarkan pada prinsip klasik dari rata-rata silang bergerak, membuatnya mudah dimengerti dan diterapkan.
Mengikuti tren: Dengan memanfaatkan persilangan dua rata-rata bergerak dengan periode yang berbeda, strategi dapat secara efektif menangkap tren utama di pasar.
Stop-loss yang tepat waktu: Pengenalan mekanisme trailing stop memungkinkan penutupan posisi yang tepat waktu ketika tren berbalik, mengendalikan risiko penurunan.
Fleksibilitas parameter: Parameter strategi (seperti periode rata-rata bergerak, titik stop-loss, dll.) dapat dioptimalkan dan disesuaikan sesuai dengan pasar dan instrumen yang berbeda untuk beradaptasi dengan berbagai kondisi pasar.
Perdagangan sering: Karena strategi menggunakan sinyal crossover rata-rata bergerak dan sinyal crossover harga, hal ini dapat menyebabkan frekuensi perdagangan yang lebih tinggi, sehingga meningkatkan biaya perdagangan.
Pasar yang bergolak: Di pasar yang bergolak atau terbatas pada kisaran, strategi dapat menghasilkan lebih banyak sinyal palsu, yang mengakibatkan penurunan profitabilitas.
Sensitivitas parameter: Kinerja strategi mungkin sensitif terhadap pemilihan parameter, dan parameter yang berbeda dapat menghasilkan hasil yang berbeda secara signifikan.
Penyaringan sinyal: Selain sinyal crossover rata-rata bergerak dan sinyal crossover harga, sertakan indikator teknis lainnya (seperti RSI, MACD, dll.) sebagai kondisi penyaringan untuk mengurangi sinyal palsu.
Parameter dinamis: Sesuaikan secara dinamis parameter strategi (seperti periode rata-rata bergerak, titik stop-loss, dll.) berdasarkan faktor seperti volatilitas pasar dan kekuatan tren untuk beradaptasi dengan kondisi pasar yang berbeda.
Ukuran posisi: Sesuaikan ukuran posisi secara dinamis berdasarkan tren pasar dan kekuatan sinyal, meningkatkan ukuran posisi ketika kekuatan tren tinggi dan mengurangi ukuran posisi ketika tren tidak jelas atau sinyal lebih lemah.
Adaptasi multi-instrumen: Memperluas strategi ke beberapa instrumen dan pasar, dan melalui diversifikasi dan analisis korelasi, mengurangi risiko keseluruhan dan meningkatkan stabilitas pengembalian.
Strategi Crossover Dual Moving Average - EMA9/20 adalah strategi perdagangan kuantitatif yang sederhana dan praktis yang menangkap tren pasar melalui crossover dua moving average dengan periode yang berbeda dan crossover harga, sambil menggunakan trailing stops untuk mengendalikan risiko. Strategi ini memiliki logika yang jelas, mudah dipahami dan diimplementasikan, membuatnya cocok untuk dipelajari dan digunakan oleh pemula. Namun, strategi ini juga memiliki beberapa keterbatasan, seperti kinerja yang buruk di pasar yang bergolak dan sensitivitas terhadap pemilihan parameter. Oleh karena itu, dalam aplikasi praktis, perlu untuk mengoptimalkan dan meningkatkan strategi sesuai dengan karakteristik spesifik pasar dan instrumen, seperti memperkenalkan penyaringan sinyal, penyesuaian parameter dinamis, ukuran posisi, dan metode lain untuk meningkatkan profitabilitas dan stabilitas strategi perdagangan. Secara keseluruhan, Strategi Crossover Dual Moving Average - EMA9/20 menyediakan kerangka kerja kuantitatif dasar yang baik dan layak untuk penelitian dan eksplorasi lebih lanjut.
/*backtest start: 2023-03-02 00:00:00 end: 2024-03-07 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy(title = "EMAs 9 / 20", shorttitle = '9/20 EMAs', initial_capital = 1000, overlay = true, default_qty_type = strategy.fixed, commission_type = strategy.commission.cash_per_contract, commission_value = 0.35, default_qty_value = 1) int trailOffset = 10 int trailPoints = 15 series float oEma9 = ta.ema(ohlc4, 9) series float oEma20 = ta.ema(ohlc4, 20) series bool closeCrossoverEma9 = ta.crossover(close, oEma9) series bool closeCrossunderEma9 = ta.crossover(close, oEma9) series bool nineCrossover20 = ta.crossover(oEma9, oEma20) series bool nineCrossunder20 = ta.crossunder(oEma9, oEma20) //Entry Exits if nineCrossover20 strategy.entry("Long 9Cross20", strategy.long, 2) else if closeCrossoverEma9 strategy.entry("Long 9CrossClose", strategy.long, 2) strategy.exit("Long 9CrossClose Exit", from_entry = "Long 9CrossClose", trail_points = trailPoints, trail_offset = trailOffset) else if nineCrossunder20 strategy.close("Long 9Cross20") if nineCrossunder20 strategy.entry("Short 9Cross20", strategy.short, 2) else if closeCrossunderEma9 strategy.entry("Short 9CrossClose", strategy.short, 2) strategy.exit("Short 9CrossClose Exit", from_entry = "Short 9CrossClose", trail_points = trailPoints, trail_offset = trailOffset) else if nineCrossover20 strategy.close("Short 9Cross20")