
Sebuah strategi perdagangan kuantitatif yang didasarkan pada sinyal persilangan dua EMA periode yang berbeda (garis 5 dan siklus 21). Strategi ini menangkap titik perubahan tren pasar dengan mengidentifikasi forks dan deadlines antara EMA jangka pendek dan EMA jangka panjang, sehingga memungkinkan perdagangan pelacakan tren.
Prinsip inti dari strategi ini adalah berdasarkan pada sinyal lintas rata-rata bergerak untuk mengidentifikasi titik-titik perubahan tren pasar. Secara khusus, implementasinya adalah sebagai berikut:
Strategi ini mengadopsi ide dari trend tracking, mengkonfirmasi perubahan arah tren dengan menyeberang rata-rata bergerak, dan membangun posisi yang sesuai dengan arah tren setelah konfirmasi tren. Indikator EMA lebih sensitif terhadap reaksi perubahan harga daripada rata-rata bergerak sederhana dan dapat menangkap perubahan tren lebih cepat.
Strategi ini memiliki beberapa keuntungan yang menonjol, seperti:
Meskipun strategi ini dirancang dengan baik, ada risiko potensial berikut:
Risiko pasar bergoyang: Dalam pasar bergoyang horizontal, sinyal silang EMA sering terjadi dan mudah menghasilkan sinyal palsu yang menyebabkan stop loss berturut-turut
Risiko keterlambatan: Meskipun EMA merespon lebih cepat, masih ada beberapa keterlambatan sebagai indikator keterlambatan yang mungkin hanya memberi sinyal ketika tren telah berakhir
Risiko manajemen uang: Strategi menggunakan 100% nilai bersih akun untuk berdagang, leverage tinggi, dapat menyebabkan penurunan nilai bersih akun secara signifikan jika terjadi kerugian berturut-turut
Kurangnya mekanisme stop-loss: tidak ada pengaturan stop-loss yang jelas dalam kode, kemungkinan kerugian yang lebih besar dalam kondisi pasar yang ekstrim
Kurangnya perlindungan keuntungan: tidak ada set stop loss atau stop loss bergerak, yang dapat menyebabkan pengembalian keuntungan yang telah diperoleh
Strategi ini dapat dioptimalkan dalam beberapa arah berdasarkan analisis mendalam terhadap kode:
Menambahkan filter tren: memperkenalkan indikator ADX untuk menyaring sinyal perdagangan di pasar tren yang lemah, hanya melakukan perdagangan ketika ADX lebih besar dari titik terendah tertentu (misalnya 20), mengurangi sinyal palsu di pasar yang bergoyang. Pengoptimalan seperti itu dapat secara efektif meningkatkan peluang menang, karena strategi rata-rata bergerak bekerja lebih baik di pasar tren yang kuat.
Mengimplementasikan Stop Loss Dinamis: Menambahkan Stop Loss Dinamis Berbasis ATR, yang dapat secara otomatis menyesuaikan posisi Stop Loss sesuai dengan volatilitas pasar, baik untuk mengendalikan risiko maupun untuk tidak keluar lebih awal karena Stop Loss terlalu ketat.
Optimalkan parameter EMA: Anda dapat menguji kombinasi siklus EMA yang berbeda, seperti 3 dan 15, 8 dan 34 dan sebagainya, dengan optimalisasi parameter untuk menemukan parameter yang berkinerja lebih baik dalam kondisi pasar tertentu. Pasar dan kerangka waktu yang berbeda mungkin memerlukan parameter optimal yang berbeda.
Memperkenalkan mekanisme keuntungan sebagian: Ketika keuntungan mencapai tingkat tertentu (misalnya 2x ATR), Anda dapat menghapus sebagian dari posisi yang mengunci keuntungan, dan posisi yang tersisa terus memegang tren. Ini dapat meningkatkan stabilitas keuntungan secara keseluruhan sambil mempertahankan kemampuan untuk menangkap tren besar.
Tambahkan filter waktu perdagangan: Beberapa pasar terlalu berfluktuasi atau tidak cukup likuiditas pada waktu tertentu, Anda dapat mengatur jendela waktu perdagangan, hanya berdagang pada saat pasar paling aktif dan stabil. Ini membantu menghindari lingkungan pasar yang berfluktuasi tinggi atau tidak efisien.
Menerapkan strategi pengelolaan posisi: Meningkatkan metode pengelolaan posisi persentase tetap saat ini, dapat menggunakan penyesuaian posisi berdasarkan volatilitas, mengurangi posisi dalam lingkungan pasar yang berfluktuasi tinggi, dan sebaliknya meningkatkan posisi, untuk menjaga konsistensi lubang risiko.
Menambahkan indikator konfirmasi kedua: Kombinasi dengan RSI, indikator acak, atau indikator teknis lainnya seperti MACD sebagai konfirmasi kedua, untuk melakukan perdagangan hanya ketika beberapa indikator bersama-sama menunjuk ke arah yang sama, meningkatkan kualitas sinyal.
Strategi keluar dari pergerakan rata-rata bergerak dua indeks adalah sistem perdagangan pelacakan tren yang sederhana dan efisien yang menangkap titik-titik perubahan tren pasar dengan mengidentifikasi sinyal silang dari 5 siklus dan 21 siklus EMA. Strategi ini beroperasi dengan jelas, melakukan otomatisasi, dan menghasilkan sinyal secara objektif, terutama cocok untuk lingkungan pasar dengan tren jangka menengah dan panjang yang jelas.
Meskipun ada risiko sinyal palsu di bawah pasar yang bergoyang dan beberapa keterlambatan, stabilitas dan profitabilitas strategi dapat ditingkatkan secara signifikan dengan cara seperti meningkatkan penyaringan intensitas tren, memilih parameter yang optimal, menerapkan stop loss dinamis, dan meningkatkan manajemen posisi. Ini adalah kerangka dasar yang ideal bagi pedagang yang mencari sistem pelacakan tren yang sepenuhnya otomatis, yang dapat disesuaikan dan dioptimalkan lebih lanjut sesuai dengan preferensi risiko pribadi dan gaya perdagangan.
Yang perlu diperhatikan adalah bahwa dengan menggabungkan strategi ini dengan analisis struktur pasar, penyaringan fundamental, atau analisis musiman, sistem perdagangan yang lebih komprehensif dapat dibangun dan tetap kompetitif di berbagai lingkungan pasar.
/*backtest
start: 2025-01-01 00:00:00
end: 2025-04-06 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("EMA Cross Strategy with EMA Turning Exit", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, pyramiding=0)
// 定义EMA参数
ema5 = ta.ema(close, 5)
ema21 = ta.ema(close, 21)
// 绘制EMA线
plot(ema5, color=color.blue, title="EMA 5", linewidth=1)
plot(ema21, color=color.red, title="EMA 21", linewidth=1)
// 定义金叉和死叉条件
goldCross = ta.crossover(ema5, ema21)
deadCross = ta.crossunder(ema5, ema21)
// 在图表上标记交叉信号
plotshape(goldCross, title="Golden Cross", style=shape.triangleup, location=location.belowbar, color=color.green, size=size.normal)
plotshape(deadCross, title="Death Cross", style=shape.triangledown, location=location.abovebar, color=color.red, size=size.normal)
// 执行交易策略
// 开多单条件:金叉信号且无多头仓位
if (goldCross and strategy.position_size <= 0)
strategy.close("Short") // 平掉空头仓位(如果有)
strategy.entry("Long", strategy.long)
// 开空单条件:死叉信号且无空头仓位
if (deadCross and strategy.position_size >= 0)
strategy.close("Long") // 平掉多头仓位(如果有)
strategy.entry("Short", strategy.short)
// 显示策略参数和状态
var table t = table.new(position.top_right, 2, 3, bgcolor=color.white)
table.cell(t, 0, 0, "EMA Fast", text_color=color.blue)
table.cell(t, 1, 0, "5", text_color=color.blue)
table.cell(t, 0, 1, "EMA Slow", text_color=color.red)
table.cell(t, 1, 1, "21", text_color=color.red)
table.cell(t, 0, 2, "Net Profit", text_color=color.black)
table.cell(t, 1, 2, str.tostring(strategy.netprofit), text_color=color.black)