
Strategi ini didasarkan pada dua indeks moving average (EMA) untuk menghasilkan sinyal perdagangan. Secara khusus, strategi ini menghitung 50-siklus EMA dan 200-siklus EMA, menghasilkan sinyal beli ketika EMA jangka pendek (EMA 50) melewati EMA jangka panjang (EMA 200), menghasilkan sinyal jual ketika EMA jangka pendek (EMA 50) melewati EMA jangka panjang (EMA 200), menghasilkan sinyal jual. Ini dapat secara efektif menangkap perubahan tren jangka pendek dan jangka panjang dalam harga saham, membentuk strategi perdagangan dinamis.
Perhitungan dua indeks moving average: 50 siklus EMA dan 200 siklus EMA. EMA memberikan lebih banyak bobot pada data terbaru dan lebih sensitif terhadap perubahan harga jangka pendek.
Identifikasi sinyal perdagangan:
Melakukan transaksi berdasarkan sinyal: beli lebih banyak sinyal, jual lebih sedikit sinyal.
Membuat grafik EMA dan sinyal perdagangan untuk membuat penilaian intuitif.
Strategi ini memiliki keuntungan sebagai berikut:
Catch the big trend reversal, sangat cocok untuk trend and market correction.
Aturan pengambilan keputusan sederhana dan jelas, mudah diterapkan dan diukur.
EMA meluruskan data harga, membantu mengidentifikasi sinyal tren, dan menghapus kebisingan.
Periode EMA dapat disesuaikan dengan periode kepemilikan yang berbeda.
Ini juga dapat digunakan untuk memfilter sinyal dan mengoptimalkan strategi.
Strategi ini juga memiliki beberapa risiko:
Di pasar yang bergejolak, mungkin akan ada lebih banyak sinyal yang salah dan lebih banyak transaksi yang tidak valid.
Bergantung pada aturan satu indikator saja, robustitasnya lebih buruk.
Tidak mempertimbangkan aturan stop loss, ada risiko peningkatan kerugian.
EMA terlambat mungkin melewatkan titik terbaik untuk berpartisipasi dalam perubahan harga.
Untuk menentukan parameter optimal, perlu dilakukan pengujian ulang.
Pengendalian dan pengoptimalan risiko yang sesuai meliputi: sinyal penyaringan yang dikombinasikan dengan indikator lain, pengaturan mekanisme stop loss, pengenalan model pembelajaran mesin, dll.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Bergabung dengan indikator lain (seperti MACD, KD, dll) untuk mencapai model multi-faktor, meningkatkan strategi Robustness.
Masukkan mekanisme stop loss. Misalnya, tetapkan persentase stop loss atau stop loss acak. Kontrol kerugian maksimum dalam satu transaksi.
Menggunakan metode pembelajaran mesin untuk mendapatkan parameter yang optimal. Meningkatkan aturan penilaian sinyal. Meningkatkan stabilitas strategi.
Mengatur kombinasi siklus EMA yang optimal berdasarkan hasil pengamatan ulang. Mengatur parameter berdasarkan kondisi pasar.
Evaluasi dampak biaya transaksi. Menambahkan model slippoint dan pertimbangan biaya. Mengoptimalkan manajemen posisi.
Strategi ini secara keseluruhan adalah strategi perdagangan yang lebih sederhana dan lebih klasik. Aturan pembuatan keputusan berdasarkan indikator EMA. Meskipun memiliki efektivitas tertentu, namun ada beberapa kekurangan dan ruang untuk dioptimalkan. Cara meningkatkan penilaian sinyal, mengendalikan risiko, dan dinamika penyetelan, adalah aspek yang perlu dipertimbangkan selanjutnya, yang akan sangat meningkatkan profitabilitas strategi yang stabil di pasar nyata.
/*backtest
start: 2022-11-24 00:00:00
end: 2023-11-30 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA Golden Crossover Strategy", overlay=true)
// Input parameters
fastLength = input(50, title="Fast EMA Length")
slowLength = input(200, title="Slow EMA Length")
// Calculate EMAs using ta.ema
fastEMA = ta.ema(close, fastLength)
slowEMA = ta.ema(close, slowLength)
// Plot EMAs on the chart
plot(fastEMA, color=color.blue, title="Fast EMA")
plot(slowEMA, color=color.red, title="Slow EMA")
// Strategy logic
longCondition = ta.crossover(fastEMA, slowEMA)
shortCondition = ta.crossunder(fastEMA, slowEMA)
// Execute orders
if (longCondition)
strategy.entry("Buy", strategy.long)
if (shortCondition)
strategy.entry("Sell", strategy.short)
// Plot buy and sell signals on the chart
plotshape(series=longCondition, title="Buy Signal", color=color.green, style=shape.labelup, location=location.belowbar)
plotshape(series=shortCondition, title="Sell Signal", color=color.red, style=shape.labeldown, location=location.abovebar)