Strategi EMA crossover menghasilkan sinyal beli dan jual dengan melacak crossover antara dua garis EMA periode yang berbeda. Ketika EMA periode yang lebih pendek melintasi EMA periode yang lebih lama, sinyal beli dihasilkan. Ketika EMA periode yang lebih pendek melintasi di bawah EMA periode yang lebih lama, sinyal jual dihasilkan. Strategi ini juga menggabungkan indikator SuperTrend untuk menyaring breakout palsu.
Strategi ini terutama didasarkan pada salib emas dan salib kematian garis EMA. Garis EMA dapat meluruskan data harga dan menyaring kebisingan. Perpindahan antara garis EMA menunjukkan perubahan tren harga. Ketika EMA jangka pendek (20-periode) melintasi EMA jangka panjang (50-periode), itu berarti harga jangka pendek sekarang berada di atas harga jangka panjang, yang menyiratkan tren pecah naik dan menghasilkan sinyal beli. Ketika EMA jangka pendek melintasi di bawah EMA jangka panjang, itu berarti harga jangka pendek pecah di bawah harga jangka panjang, yang menyiratkan tren penurunan dan menghasilkan sinyal jual.
Selain itu, strategi ini menggunakan indikator SuperTrend untuk menyaring sinyal palsu yang dihasilkan oleh crossover EMA. Indikator SuperTrend dihitung berdasarkan ATR untuk memetakan band atas dan bawah yang lebih mendefinisikan tren nyata. Ketika harga melanggar band atas SuperTrend, sinyal beli dihasilkan. Ketika harga melanggar band bawah SuperTrend, sinyal jual dihasilkan. Sinyal crossover EMA hanya berlaku ketika dikonfirmasi oleh sinyal SuperTrend. Ini membantu menghilangkan sinyal palsu yang disebabkan oleh fluktuasi harga.
Secara khusus, logika entri strategi didefinisikan sebagai berikut:
Ketika 20EMA melintasi di atas 50EMA, dan harga pecah di atas band atas SuperTrend, menghasilkan sinyal beli.
Ketika 20EMA melintasi di bawah 50EMA, dan harga pecah di bawah band bawah SuperTrend, menghasilkan sinyal jual.
Menggunakan crossover EMA untuk menentukan arah tren utama dikombinasikan dengan filter SuperTrend dapat meningkatkan akurasi sinyal perdagangan.
Strategi crossover EMA memiliki keuntungan berikut:
Sederhana untuk diimplementasikan. Hanya membutuhkan perhitungan dua EMA crossover.
EMA sebagai moving average dapat menyaring beberapa kebisingan.
Menggabungkan dengan SuperTrend lebih mengurangi sinyal palsu yang disebabkan oleh fluktuasi harga.
Periode EMA dapat disesuaikan dengan lingkungan pasar yang berbeda.
Dapat disesuaikan untuk perdagangan arah panjang atau pendek.
Dapat diimplementasikan dalam kerangka waktu yang berbeda untuk berbagai gaya perdagangan.
Ada juga beberapa risiko yang terkait dengan strategi crossover EMA:
Sinyal crossover EMA mungkin tertinggal selama perubahan harga yang ekstrim, gagal mencerminkan perubahan harga secara tepat waktu.
Garis EMA memiliki efek keterlambatan, yang dapat menghasilkan sinyal yang salah.
Pengaturan periode EMA yang tidak tepat dapat menyebabkan sinyal palsu yang berlebihan.
Crossover saja tidak dapat menentukan tren sebenarnya, masih sangat tertinggal.
Manajemen risiko yang tepat seperti stop loss diperlukan untuk mengendalikan risiko.
Beberapa cara untuk mengurangi risiko:
Mengoptimalkan periode EMA agar lebih sesuai dengan garis cepat dan lambat.
Singkatkan periode penahan dan menerapkan stop loss yang tepat waktu.
Gabungkan dengan indikator lain seperti moving average, pola candlestick untuk penilaian yang komprehensif.
Sesuaikan frekuensi perdagangan dengan jumlah perdagangan yang lebih rendah.
Strategi ini dapat ditingkatkan dan dioptimalkan dalam aspek berikut:
Mengoptimalkan periode EMA untuk siklus dan lingkungan pasar yang berbeda.
Uji indikator rata-rata bergerak seperti SMA, KWMA.
Menggabungkan indikator teknis untuk membentuk model multivariate, seperti MACD, RSI. Menggunakan algoritma pembelajaran mesin untuk mengoptimalkan parameter dan bobot.
Tambahkan teknik stop loss seperti trailing stop loss, persentase stop loss untuk mengendalikan risiko.
Memperkenalkan filter volume yang bekerja dengan indikator volume untuk menghindari sinyal palsu.
Mengoptimalkan keluar dengan menetapkan aturan keluar, menggabungkan dengan pola grafik, istirahat dll.
Konfirmasi tren pada jangka waktu yang lebih tinggi, masukkan perdagangan pada jangka waktu yang lebih rendah untuk mengikuti tren.
Strategi EMA crossover adalah sistem trend following yang sederhana dan praktis. Ini dapat mengidentifikasi tren jangka menengah dan menghasilkan sinyal waktu. Menggabungkan dengan filter SuperTrend dapat mengurangi perdagangan palsu secara efektif. Tetapi risiko seperti ketinggalan dan sinyal yang salah masih ada. Strategi dapat ditingkatkan melalui optimasi parameter, stop loss, menggabungkan indikator, dll. Strategi EMA crossover mudah digunakan, cocok untuk pelacakan tren jangka menengah dan panjang, dan efektif untuk pedagang pemula.
/*backtest start: 2023-09-24 00:00:00 end: 2023-10-24 00:00:00 period: 1h basePeriod: 15m 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/ // © alokbothra //@version=5 strategy("Ema Crossover", overlay=true, initial_capital = 1000) start = timestamp(2021,1,1,0,0) end = timestamp(2023,10,30,0,0) plot (ta.ema(close,20), title = "Ema 20", color = color.green , linewidth = 2) plot (ta.ema(close,50), title = "Ema 50", color = color.red, linewidth = 2 ) //supertrend 1 Periods = input(title='ATR Period', defval=11) Multiplier = input.float(title='ATR Multiplier', step=0.1, defval=3) changeATR = input(title='Change ATR Calculation Method ?', defval=true) showsignals = input(title='Show Buy/Sell Signals ?', defval=true) highlighting = input(title='Highlighter On/Off ?', defval=true) atr2 = ta.sma(ta.tr, Periods) atr = changeATR ? ta.atr(Periods) : atr2 up = close - Multiplier * atr up1 = nz(up[1], up) up := close[1] > up1 ? math.max(up, up1) : up dn =close+ Multiplier * atr dn1 = nz(dn[1], dn) dn := close[1] < dn1 ? math.min(dn, dn1) : dn trend = 1 trend := nz(trend[1], trend) trend := trend == -1 and close > dn1 ? 1 : trend == 1 and close < up1 ? -1 : trend upPlot = plot(trend == 1 ? up : na, title='Up Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.green, 0)) buySignal = trend == 1 and trend[1] == -1 plotshape(buySignal ? up : na, title='UpTrend Begins', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.green, 0)) dnPlot = plot(trend == 1 ? na : dn, title='Down Trend', style=plot.style_linebr, linewidth=2, color=color.new(color.red, 0)) sellSignal = trend == -1 and trend[1] == 1 plotshape(sellSignal ? dn : na, title='DownTrend Begins', location=location.absolute, style=shape.circle, size=size.tiny, color=color.new(color.red, 0)) mPlot = plot(ohlc4, title='', style=plot.style_circles, linewidth=0) changeCond = trend != trend[1] longonly = input.bool(defval = true, title = 'Long Only') shortonly = input.bool(defval = true, title = 'Short Only') longCondition = (ta.ema(close, 20) >= ta.ema(close, 50)) shortCondition = (ta.ema(close, 20) <= ta.ema(close, 50)) long = (trend == 1) short = (trend == -1) sell= short cover= long if time >= start and time < end if longonly if ((longCondition) and (long)) strategy.entry ("Long Entry", strategy.long, comment ="Long Entry") if strategy.position_size > 0 strategy.close("Long Entry", when = sell, comment = "Long Exit") if shortonly if ((shortCondition) and (short)) strategy.entry("Short Entry", strategy.short, comment = "Short Entry") if strategy.position_size < 0 strategy.close("Short Entry", when = cover, comment = "Short Exit")