
Strategi ini adalah strategi perdagangan untuk melacak tren dan melakukan breakout berdasarkan rata-rata bergerak indeks multi-siklus (EMA). Strategi ini menggabungkan 5 periode EMA yang berbeda secara bersamaan dan memiliki kemampuan identifikasi tren yang kuat untuk menangkap pergerakan harga lini tengah dan panjang secara progresif.
Hitung EMA dari 5 periode yang berbeda, yaitu 12 siklus, 15 siklus, 18 siklus, 21 siklus dan 24 siklus.
Urutan EMA: EMA12 > EMA15 > EMA18 > EMA21 > EMA24 sebagai sinyal beli; EMA12 < EMA15 < EMA18 < EMA21 < EMA24 sebagai sinyal jual.
Sinyal perdagangan hanya akan dipicu setelah tanggal awal yang ditetapkan oleh pengguna.
Saat sinyal beli dipicu, melakukan operasi buka posisi panjang; saat sinyal jual dipicu, melakukan operasi buka posisi pendek.
Strategi ini menggunakan kombinasi beberapa EMA untuk membentuk satu saluran tren dan menggunakan hubungan dalam dan luar saluran untuk menentukan arah tren harga. Pengaturan siklus EMA yang lebih dekat dapat meningkatkan sensitivitas terhadap sinyal terobosan, sementara juga menghindari kekeliruan oleh kebisingan pasar jangka pendek. Selain itu, memungkinkan pengguna untuk menyesuaikan tanggal awal strategi, yang memungkinkan fleksibilitas yang lebih besar.
Menggunakan beberapa kelompok EMA untuk membentuk saluran tren, kemampuan untuk mengidentifikasi tren lebih kuat.
Pengaturan siklus EMA dekat, sensitif terhadap sinyal trend break, dapat menangkap tren garis tengah dan panjang tepat waktu.
Anda dapat menyesuaikan tanggal mulai kebijakan, dan fleksibilitas penggunaan.
Pengelolaan dana dapat disesuaikan dan dapat mengontrol ukuran pesanan.
Peraturan perdagangan yang jelas dan sederhana, cocok untuk pelacakan tren.
EMA bersifat retargeting dan mungkin akan melewatkan fluktuasi besar dalam jangka pendek.
Perdagangan terobosan mudah diblokir dan memerlukan stop loss yang wajar.
Jika tren berbalik, kemungkinan besar akan terjadi kerugian besar.
Pilih jenis saham yang sesuai, tidak cocok untuk saham yang terlalu berfluktuasi.
Pengendalian dan pengoptimalan risiko yang sesuai:
Sesuai menyesuaikan parameter EMA, mengoptimalkan kombinasi siklus.
Menambahkan filter untuk indikator lain untuk menentukan arah tren.
Setting Stop Loss yang Rasional untuk Mengontrol Kerugian Tunggal
Menambahkan kombinasi indikator lain, seperti MACD, KDJ, dan lain-lain, untuk meningkatkan efektivitas strategi.
Selain itu, ada juga beberapa hal yang perlu diperhatikan, yaitu:
Optimalkan parameter siklus EMA untuk mencari kombinasi optimal.
Berhenti berdagang dalam jangka waktu tertentu untuk menghindari periode fluktuasi pasar.
Menggunakan metode pembelajaran mesin untuk mengoptimalkan siklus dan parameter EMA secara dinamis.
Strategi ini secara keseluruhan adalah strategi pelacakan tren yang lebih khas. Ini memanfaatkan keuntungan dari EMA, dengan menggabungkan beberapa EMA untuk membentuk saluran perdagangan, menghasilkan sinyal perdagangan ketika harga menembus saluran. Keuntungan dari strategi ini adalah aturan perdagangan yang sederhana dan jelas, mudah untuk melacak tren garis tengah; Kelemahannya adalah sensitif terhadap kebisingan pasar jangka pendek, ada beberapa keterlambatan.
/*backtest
start: 2024-01-26 00:00:00
end: 2024-02-25 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy(title="Scalping Strategy - EMA",
shorttitle="EMA Scalp",
overlay=true)
// User input for start date
startDateInput = input(title="Start Date", defval=timestamp("2024-02-01"))
// Calculate EMAs
ema_12 = ta.ema(close, 12)
ema_15 = ta.ema(close, 15)
ema_18 = ta.ema(close, 18)
ema_21 = ta.ema(close, 21)
ema_24 = ta.ema(close, 24)
// Plot EMAs
plot(ema_12, color=color.red, title="EMA 12")
plot(ema_15, color=color.orange, title="EMA 15")
plot(ema_18, color=color.yellow, title="EMA 18")
plot(ema_21, color=color.green, title="EMA 21")
plot(ema_24, color=color.blue, title="EMA 24")
// Define a start date for the strategy based on user input
isAfterStartDate = true
// Visualize the isAfterStartDate condition
bgcolor(isAfterStartDate ? color.new(color.green, 90) : na, title="After Start Date")
// Entry conditions
buy_condition = (ema_12 > ema_15) and (ema_15 > ema_18) and (ema_18 > ema_21) and (ema_21 > ema_24) and isAfterStartDate
sell_condition = (ema_12 < ema_15) and (ema_15 < ema_18) and (ema_18 < ema_21) and (ema_21 < ema_24) and isAfterStartDate
// Execute trades using conditional blocks
if (buy_condition)
strategy.entry("Buy", strategy.long)
if (sell_condition)
strategy.entry("Sell", strategy.short)