
Strategi EMA crossover menghasilkan sinyal beli dan jual dengan melacak persimpangan garis rata-rata EMA dari dua periode yang berbeda untuk menentukan tren harga. Strategi ini menghasilkan sinyal beli ketika EMA berjangka panjang melintasi EMA berjangka pendek dan sinyal jual ketika EMA berjangka panjang melintasi EMA berjangka pendek.
Strategi ini terutama didasarkan pada EMA rata-rata prinsip bercabang emas. EMA rata-rata dapat meluruskan data harga filter kebisingan, dengan EMA rata-rata cross-situasi menilai tren harga. Ketika periode pendek EMA ((20 siklus) melewati periode panjang EMA ((50 siklus), yang mewakili periode pendek harga sekarang berada di atas periode panjang harga, menunjukkan harga ada kecenderungan untuk menembus naik, menghasilkan sinyal beli.
Selain itu, strategi ini menggabungkan indikator SuperTrend untuk memfilter sinyal palsu yang dihasilkan oleh persilangan EMA. Indikator SuperTrend adalah uptrend dan downtrend yang dihitung berdasarkan ATR, sehingga dapat menilai tren yang sebenarnya dengan lebih akurat.
Secara khusus, kriteria strategi ini adalah sebagai berikut:
Ketika 20 EMA melewati 50 EMA, dan harga menembus SuperTrend, sinyal beli dihasilkan;
Ketika 20 EMA melewati 50 EMA, dan harga turun di bawah rel SuperTrend, sinyal jual dihasilkan.
Dengan mengevaluasi tren besar melalui EMA, serta memfilterkan getaran dari indikator SuperTrend, dapat meningkatkan akurasi sinyal perdagangan strategi.
Strategi EMA crossover memiliki keuntungan sebagai berikut:
Operasi ini sederhana dan mudah untuk diimplementasikan. Hanya perlu menghitung persimpangan dua garis rata-rata EMA.
EMA sebagai moving average, dapat memfilter sebagian dari kebisingan.
Dalam kombinasi dengan indikator SuperTrend, noise dapat disaring lebih jauh untuk mengurangi sinyal palsu.
Hal ini dapat disesuaikan dengan kondisi pasar yang berbeda dengan menyesuaikan parameter siklus EMA.
Anda dapat menyesuaikan posisi panjang dan pendek, dan melakukan berbagai cara trading.
Hal ini dapat dilakukan pada periode waktu yang berbeda dan berlaku untuk berbagai jenis pedagang.
Strategi EMA crossover juga memiliki beberapa risiko:
Ketika pasar mengalami fluktuasi besar, sinyal silang EMA dapat terlambat dan tidak dapat mencerminkan perubahan harga secara tepat waktu.
EMA rata-rata memiliki keterlambatan dan dapat menghasilkan sinyal yang salah.
Parameter EMA periode pendek dan EMA periode panjang tidak disetel dengan benar, yang dapat menyebabkan terlalu banyak sinyal yang salah.
Hanya mengandalkan persilangan rata-rata tidak dapat menentukan tren pasar yang sebenarnya, ada kebutaan tertentu.
Memilih strategi penghentian kerugian yang tepat dan mengontrol risiko.
Hal-hal berikut dapat mengurangi risiko:
Optimalkan parameter siklus EMA, pilih siklus rata-rata lambat yang sesuai.
Mempersingkat jangka waktu pemegang saham dengan tepat dan menghentikan kerugian tepat waktu
Pengadilan menyusun penilaian yang komprehensif dengan menggunakan indikator lain seperti Moving Average, K-Line, dan lain-lain.
Mengatur frekuensi transaksi dengan tepat untuk mengurangi jumlah transaksi.
Strategi ini dapat dioptimalkan dalam beberapa hal:
Mengoptimalkan parameter siklus rata-rata EMA, beradaptasi dengan siklus yang berbeda dan lingkungan pasar.
Cobalah berbagai indikator rata-rata, seperti SMA, KWMA, dll.
Bergabung dengan lebih banyak indikator untuk perdagangan kombinasi, membentuk model multi-faktor. Seperti MACD, RSI, dll. Memperkenalkan algoritma pembelajaran mesin untuk optimasi parameter dan penyesuaian berat.
Menambahkan strategi stop loss, seperti tracking stop loss, stop loss percentage, dan lain-lain untuk mengendalikan risiko.
Memperkenalkan penyaringan volume transaksi, yang dikombinasikan dengan indikator volume transaksi untuk menghindari sinyal palsu.
Optimalkan strategi keluar, atur aturan keluar. Seperti kombinasi bentuk K-line, sinyal EXIT seperti breakout.
Mengkonfirmasi tren pada periode waktu yang lebih tinggi, masuk pada periode waktu yang lebih rendah, dan melacak tren.
Strategi EMA crossover adalah strategi pelacakan tren yang sederhana dan praktis. Ini dapat mengidentifikasi tren jangka menengah harga, menghasilkan sinyal timing untuk membeli dan menjual. Dikombinasikan dengan indikator SuperTrend dapat secara efektif memfilter kebisingan, mengurangi kesalahan perdagangan.
/*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")