Strategi ini adalah strategi dagangan berdasarkan crossover purata bergerak eksponensial (EMA). Ia menggunakan EMA 50 tempoh sebagai penunjuk teknikal utama. Apabila garisan harga melintasi di atas EMA dari bawah, pergi panjang. Apabila garisan harga melintasi di bawah EMA dari atas, pergi pendek untuk keuntungan.
Idea utamanya adalah untuk menggunakan EMA 50 tempoh sebagai alat untuk menilai trend harga. Garis EMA boleh meluruskan data harga dan menghilangkan bunyi pasaran jangka pendek untuk mencerminkan trend harga jangka panjang. Apabila garis harga melintasi di atas garis EMA dari bawah, ia menunjukkan bahawa harga mula meningkat yang merupakan peluang untuk pergi panjang. Apabila garis harga melintasi di bawah garis EMA dari atas, ia menunjukkan bahawa harga mula jatuh yang merupakan peluang untuk pergi pendek.
Secara khusus, strategi ini terutamanya merangkumi aspek berikut:
Parameter input: tetapkan tempoh EMA kepada 50.
Pengiraan penunjuk: panggil fungsi ta.ema untuk mengira EMA 50 tempoh.
Syarat kemasukan: isyarat panjang dihasilkan apabila harga melintasi di atas EMA, dan isyarat pendek dihasilkan apabila harga melintasi di bawah EMA.
Syarat keluar: rekod harga tertinggi / terendah semasa memasuki. Keluar apabila harga memecahkan tahap itu kemudian.
Visualisasi: merangka garis EMA dan menandakan titik masuk dan keluar untuk panjang/pendek.
Dengan cara ini, kita boleh berdagang mengikut arah trend dan menghentikan kerugian tepat pada masanya apabila harga mula berbalik.
Berbanding dengan penunjuk dan strategi lain, strategi silang EMA mempunyai beberapa kelebihan penting:
Mudah dan intuitifSatu-satunya penunjuk teras adalah EMA yang mudah difahami dan dioperasikan.
Penyesuaian fleksibelTempoh EMA boleh diselaraskan dengan sangat fleksibel untuk memenuhi pasaran dan produk yang berbeza.
Mengambil trendEMA dapat secara berkesan meluruskan data harga dan menangkap perubahan trend jangka sederhana hingga panjang.
Kawalan pengambilan. Gunakan harga tertinggi / terendah baru untuk menghentikan kerugian yang boleh mengawal pengeluaran dengan sangat baik.
Strategi ini juga mempunyai beberapa risiko, terutamanya termasuk:
Trend hilangApabila harga turun naik secara ganas, EMA mungkin tidak menangkap titik pembalikan tepat pada masanya dan kehilangan peluang perubahan trend.
Stop loss yang terlalu awal. Titik stop loss secara langsung mengambil harga tertinggi / terendah apabila isyarat muncul. Ia mungkin terlalu mudah untuk mencapai dan menghentikan kerugian lebih awal. Memindahkan stop loss, julat stop loss yang diperluas boleh dipertimbangkan.
Penyesuaian parameter. Tempoh EMA yang tidak sesuai akan membawa kepada beberapa isyarat yang salah. Parameter seperti tempoh EMA perlu diselaraskan berdasarkan turun naik, kitaran dll.
Strategi ini mempunyai ruang untuk penambahbaikan lanjut:
Gabungkan dengan Bollinger Bands untuk menapis isyarat dan mengelakkan isyarat EMA yang salah.
Meningkatkan mekanisme stop loss dengan trailing stop loss, swing stop loss dan lain-lain untuk mengelakkan keluar awal.
Mengoptimumkan parameter EMA berdasarkan pasaran dan instrumen perdagangan yang berbeza untuk mencari tempoh yang paling sesuai.
Tambah modul pengoptimuman parameter automatik untuk mencari kombinasi yang optimum.
Strategi ini menentukan trend harga berdasarkan penunjuk EMA dan pergi lama pada salib emas dan pergi pendek pada salib kematian. Strategi ini mudah dikendalikan dan boleh berdagang di sepanjang arah trend dengan kawalan stop loss. Strategi ini boleh dioptimumkan lagi dengan menggabungkan lebih banyak penunjuk penapis, meningkatkan mekanisme stop loss dan lain-lain. Secara umum, strategi crossover EMA bernilai perhatian dan pertimbangan.
/*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)