
Strategi ini adalah strategi perdagangan yang didasarkan pada crossover rata-rata bergerak yang halus. Ini menggunakan rata-rata bergerak indeks 50 periode (EMA) sebagai indikator teknis utama, melakukan over saat garis harga melewati EMA dari bawah, dan melakukan short saat melewati EMA dari atas ke bawah, untuk mencapai keuntungan.
Gagasan inti adalah menggunakan 50 siklus EMA sebagai alat untuk menentukan tren harga. Garis EMA dapat meluruskan harga, menghilangkan kebisingan pasar jangka pendek, dan mencerminkan arah tren harga jangka panjang. Ketika garis harga dari bawah melewati garis EMA, berarti harga mulai naik, dan merupakan waktu untuk melakukan lebih banyak.
Secara khusus, strategi ini mencakup beberapa hal:
Parameter input: Setting EMA dengan panjang siklus 50 .
Perhitungan indikator: Menggunakan fungsi ta.ema untuk menghitung 50 siklus EMA.
Syarat masuk: Harga di atas garis EMA menghasilkan sinyal ganda, harga di bawah garis EMA menghasilkan sinyal kosong.
Kondisi keluar: harga tertinggi/terendah yang tercatat pada saat masuk, harga selanjutnya akan keluar dari harga tersebut.
Visualisasi: Menggambar garis EMA, menandai titik masuk dan keluar yang banyak kosong.
Dengan cara ini, kita dapat melakukan perdagangan secara berurutan, mengikuti arah tren, dan menghentikan kerugian dan keluar tepat waktu ketika harga mulai berbalik.
EMA Crossover memiliki beberapa keuntungan yang signifikan dibandingkan dengan indikator dan strategi lainnya:
Sederhana dan Intuitif。 Indikator inti hanya memiliki satu baris EMA, mudah dipahami dan dioperasikan。 tidak akan terjadi indikasi yang rumit。
Adaptasi FleksibelPanjang siklus EMA dapat disesuaikan dengan sangat fleksibel untuk pasar dan varietas yang berbeda.
Menangkap TrenEMA dapat secara efektif meluruskan data harga untuk menangkap perubahan tren harga jangka menengah dan jangka panjang.
Menghapus kontrol。 Menggunakan harga baru tinggi / rendah untuk menghentikan kerugian, dapat dengan baik mengendalikan penarikan 。
Strategi ini juga memiliki beberapa risiko, yang meliputi:
Kehilangan Tren。 Ketika harga berfluktuasi tajam, garis EMA tidak dapat menangkap titik balik tepat waktu, dan mungkin melewatkan waktu untuk mengubah tren。 dapat digabungkan dengan indikator lain seperti Brinks untuk verifikasi。
Stop loss terlalu diniStop loss adalah harga tertinggi / terendah yang diambil langsung dari titik stop loss, mungkin lebih mudah dicapai dan berhenti lebih awal. Anda dapat mempertimbangkan untuk menggunakan stop loss bergerak, melebarkan jangkauan stop loss, dll.
Pengaturan parameterEMA yang tidak sesuai dengan siklus dapat menyebabkan beberapa kali sinyal yang salah. Parameter EMA perlu disesuaikan dengan siklus yang berbeda dan fluktuasi pasar.
Strategi ini masih bisa dioptimalkan lebih jauh:
Kombinasi dengan sinyal verifikasi indikator Brinband, menghindari jalur EMA menghasilkan sinyal yang salah.
Memperbaiki mekanisme stop loss, menggunakan stop loss bergerak, melihat kembali stop loss berfluktuasi, dan lain-lain untuk menghindari stop loss prematur.
Optimalkan parameter EMA berdasarkan pasar dan jenis transaksi yang berbeda untuk menemukan periode yang paling sesuai.
Menambahkan modul optimasi parameter otomatis, memungkinkan strategi untuk mencari sendiri kombinasi parameter terbaik.
Strategi ini didasarkan pada indikator EMA untuk menentukan arah tren harga, berdasarkan pada overdoing dan deaddoing. Strategi ini sederhana dan mudah dioperasikan, dapat secara acak untuk menangkap tren harga, menghentikan risiko pengendalian kerugian. Strategi ini juga dapat dioptimalkan lebih lanjut, menggabungkan lebih banyak sinyal penyaringan indikator, memperbaiki mekanisme stop loss, dll.
/*backtest
start: 2022-11-17 00:00:00
end: 2023-11-23 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("EMA 50 Crossover Strategy", shorttitle="EMA 50 xover", overlay=true)
// Input for EMA length
emaLength = input(50, title="EMA Length")
// Calculate EMA 50
ema50 = ta.ema(close, emaLength)
// Define conditions for long entry
longCondition = ta.crossover(close, ema50)
// Define conditions for short entry
shortCondition = ta.crossunder(close, ema50)
// Calculate the high of the signal candle for long entry
var float longSignalHigh = na
if (longCondition)
longSignalHigh := high
// Calculate the low of the signal candle for short entry
var float shortSignalLow = na
if (shortCondition)
shortSignalLow := low
// Long entry
plotshape(series=longCondition, title="Long Entry Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
// Short entry
plotshape(series=shortCondition, title="Short Entry Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
// Exit conditions
longExitCondition = ta.crossunder(close, longSignalHigh)
shortExitCondition = ta.crossover(close, shortSignalLow)
// Plot exit signals
plotshape(series=longExitCondition, title="Long Exit Signal", location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small)
plotshape(series=shortExitCondition, title="Short Exit Signal", location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small)
// Strategy entry and exit logic
strategy.entry("Long", strategy.long, when=longCondition)
strategy.entry("Short", strategy.short, when=shortCondition)
strategy.close("Long", when=longExitCondition)
strategy.close("Short", when=shortExitCondition)
// Plot EMA 50
plot(ema50, title="EMA 50", color=color.blue)