
Strategi ini adalah strategi perdagangan yang berasaskan simpangan rata-rata bergerak lurus. Ia menggunakan purata bergerak indeks 50 kitaran ((EMA) sebagai penunjuk teknikal utama, melakukan lebih banyak apabila garis harga melewati EMA dari bawah, dan melonggarkan apabila EMA dari atas.
Idea utama adalah menggunakan EMA 50 kitaran sebagai alat untuk menentukan trend harga. Garis EMA dapat meluruskan data harga, menghilangkan kebisingan pasaran jangka pendek, dan mencerminkan arah trend harga jangka panjang. Apabila garis harga melintasi garis EMA dari bawah, menunjukkan harga mula naik, ia adalah masa untuk melakukan lebih banyak.
Secara khusus, strategi ini merangkumi:
Parameter input: Tetapkan EMA dengan panjang kitaran 50.
Kaedah pengiraan: Panggilan fungsi ta.ema untuk mengira EMA 50 kitaran.
Syarat kemasukan: Harga di atas akan menghasilkan isyarat berganda apabila melintasi garis EMA, dan harga di bawah akan menghasilkan isyarat kosong apabila melintasi garis EMA.
Syarat keluar: harga tertinggi / harga terendah yang direkodkan pada masa masuk, harga kemudiannya melebihi harga tersebut.
Visualisasi: Gambarkan garis EMA, menandakan titik masuk dan titik keluar yang banyak dibuat kosong.
Melalui kaedah ini, kita boleh melakukan perdagangan secara beransur-ansur, mengikut arah trend, dan menghentikan kerugian dan keluar tepat pada masanya apabila harga mula berbalik.
Terdapat beberapa kelebihan yang ketara untuk strategi EMA crossover berbanding dengan petunjuk dan strategi lain:
Mudah dan Intuitif。 Indikator teras hanya mempunyai satu baris EMA, mudah difahami dan dikendalikan。 tidak akan berlaku keadaan indikator yang rumit。
KelayakanPanjang kitaran EMA boleh disesuaikan dengan sangat fleksibel untuk pasaran dan varieti yang berbeza.
Mengambil Trend│EMA dapat meluruskan data harga dengan berkesan, menangkap perubahan trend harga jangka menengah dan jangka panjang│
Penghapusan kawalan◯ Menggunakan harga baru tinggi / rendah untuk menghentikan kerugian, anda boleh mengawal penarikan balik dengan baik ◯
Strategi ini juga mempunyai beberapa risiko, terutamanya:
Kegagalan TrendApabila harga bergelombang dengan kuat, garis EMA tidak dapat menangkap titik-titik perubahan dalam masa yang tepat, dan mungkin terlepas masa untuk menukar trend. Ia boleh digabungkan dengan indikator lain seperti Brin untuk disahkan.
Penangguhan terlalu awal│ harga tertinggi / harga terendah yang diambil secara langsung oleh titik henti apabila isyarat muncul, mungkin lebih mudah dicapai dan hentikan terlalu awal. │ boleh mempertimbangkan penggunaan hentikan bergerak, meluaskan julat hentikan dan sebagainya.
Penyesuaian parameter。 Siklus EMA yang tidak sesuai akan menyebabkan banyak isyarat yang salah。 Parameter EMA perlu disesuaikan untuk kitaran yang berbeza, kadar turun naik pasaran。
Strategi ini masih boleh dioptimumkan lagi:
Bersama dengan isyarat pengesahan indikator Brinband, mengelakkan saluran EMA menghasilkan isyarat yang salah.
Memperbaiki mekanisme hentian, menggunakan hentian bergerak, melihat kembali hentian turun naik dan sebagainya untuk mengelakkan hentian terlalu awal.
Mengoptimumkan parameter EMA mengikut pasaran dan jenis perdagangan untuk mencari kitaran yang paling sesuai.
Tambah modul pengoptimuman parameter automatik untuk membolehkan strategi mencari sendiri kombinasi parameter terbaik.
Strategi ini berdasarkan kepada indikator EMA yang menentukan arah trend harga, berdasarkan kepada garpu emas yang lebih banyak dan garpu mati yang kosong. Strategi ini mudah dan mudah dikendalikan, dapat secara beransur-ansur menangkap trend harga, menghentikan risiko kawalan kerugian. Strategi ini juga dapat dioptimumkan lebih jauh, menggabungkan lebih banyak isyarat penapis indikator, memperbaiki mekanisme menghentikan kerugian, dan sebagainya.
/*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)