
Strategi penarikan diri dari crossover crossover adalah strategi perdagangan kuantitatif yang didasarkan pada sinyal persilangan dua garis EMA berkala yang berlainan (dalam 5 dan 21 kitaran). Strategi ini menangkap titik-titik perubahan trend pasaran dengan mengenal pasti EMA jangka pendek dan garisan emas dan garisan mati antara EMA jangka panjang, dan dengan itu melakukan perdagangan mengikut trend.
Prinsip teras strategi ini adalah berdasarkan isyarat persilangan purata bergerak untuk mengenal pasti titik perubahan trend pasaran. Ia dilaksanakan seperti berikut:
Strategi ini menggunakan pemikiran trend-following untuk mengesahkan perubahan arah trend dengan menyeberangi purata bergerak, dan selepas mengesahkan trend, membina kedudukan yang mengikuti arah yang sesuai. Indeks EMA lebih sensitif terhadap perubahan harga daripada purata bergerak sederhana dan dapat menangkap perubahan trend dengan lebih cepat.
Dengan analisis kod yang mendalam, strategi ini mempunyai kelebihan yang ketara:
Walaupun strategi ini direka dengan baik, terdapat risiko yang berpotensi:
Risiko pasaran bergolak: Dalam pasaran bergolak horizontal, EMA berlainan sering dan mudah menghasilkan isyarat palsu yang menyebabkan hentian berturut-turut
Risiko keterbelakangan: Walaupun EMA bertindak balas dengan cepat, masih ada kelewatan tertentu sebagai penunjuk keterbelakangan yang mungkin memberi isyarat apabila trend telah berakhir
Risiko pengurusan wang: Strategi menggunakan 100% nilai bersih akaun untuk berdagang, leverage tinggi, yang boleh menyebabkan nilai bersih akaun menurun dengan ketara jika kerugian berturut-turut
Kekurangan mekanisme hentikan kerugian: tiada tetapan hentikan kerugian yang jelas dalam kod, yang mungkin menyebabkan kerugian yang lebih besar dalam keadaan pasaran yang melampau
Kekurangan perlindungan keuntungan: tidak ada set stop atau stop loss bergerak, yang boleh menyebabkan pengembalian keuntungan yang telah diperoleh
Berdasarkan analisis mendalam kod, strategi ini boleh dioptimumkan dalam beberapa arah:
Menambah penapis trend: Pengenalan penunjuk ADX untuk menapis isyarat perdagangan di pasaran trend lemah, hanya menjalankan perdagangan apabila ADX lebih besar daripada nilai terendah tertentu (seperti 20), mengurangkan isyarat palsu di pasaran goyah. Pengoptimuman sedemikian dapat meningkatkan peluang kemenangan dengan berkesan, kerana strategi purata bergerak berfungsi lebih baik di pasaran trend yang kuat.
Menerapkan Hentian Dinamis: Menambah Hentian Dinamis Berasaskan ATR, yang dapat menyesuaikan kedudukan hentian secara automatik mengikut turun naik pasaran, baik untuk mengawal risiko dan tidak keluar lebih awal kerana hentian terlalu ketat. Ini sangat berharga untuk mengesan trend jangka panjang.
Optimumkan parameter EMA: Anda boleh menguji kombinasi kitaran EMA yang berbeza, seperti 3 dan 15, 8 dan 34 dan lain-lain, dengan optimumkan parameter untuk mencari parameter yang lebih baik dalam keadaan pasaran tertentu. Pasar dan jangka masa yang berbeza mungkin memerlukan parameter optimum yang berbeza.
Memperkenalkan mekanisme keuntungan separa: Apabila keuntungan mencapai tahap tertentu (seperti 2 kali ATR), anda boleh menebus sebahagian daripada kedudukan yang mengunci keuntungan, dan kedudukan yang tersisa terus memegang trend. Ini dapat meningkatkan kestabilan pendapatan keseluruhan sambil mengekalkan keupayaan untuk menangkap trend besar.
Tambah penapis masa perdagangan: Beberapa pasaran terlalu bergolak atau kurang cair pada masa tertentu, anda boleh menetapkan tetingkap masa perdagangan dan hanya berdagang pada masa pasaran yang paling aktif dan stabil. Ini membantu mengelakkan keadaan pasaran yang bergolak tinggi atau tidak cekap.
Menerapkan strategi pengurusan kedudukan: Meningkatkan kaedah pengurusan kedudukan peratusan tetap semasa, boleh menggunakan penyesuaian kedudukan berdasarkan turun naik, mengurangkan kedudukan dalam persekitaran pasaran yang bergelombang, sebaliknya meningkatkan kedudukan, untuk mengekalkan keserasian lubang risiko.
Tambah penanda pengesahan kedua: gabungan RSI, penunjuk rawak atau penunjuk teknikal lain seperti MACD sebagai pengesahan kedua, perdagangan dilakukan hanya apabila beberapa penunjuk bersama menunjuk ke arah yang sama, meningkatkan kualiti isyarat.
Strategi penarikan diri dari pergerakan rata-rata bergerak dua indeks adalah sistem perdagangan trend yang ringkas dan cekap yang menangkap titik perubahan trend pasaran dengan mengenal pasti isyarat silang 5 kitaran dan 21 kitaran EMA. Strategi ini beroperasi dengan jelas, melaksanakan automasi, menghasilkan isyarat objektif, dan sangat sesuai untuk persekitaran pasaran yang jelas dalam jangka masa sederhana dan jangka panjang.
Walaupun terdapat risiko isyarat palsu di bawah pasaran yang bergolak dan ketinggalan tertentu, tetapi dengan cara meningkatkan penapisan kekuatan trend, pilihan parameter yang dioptimumkan, pelaksanaan stop loss dinamik, dan pengurusan kedudukan yang lebih baik, anda dapat meningkatkan kestabilan dan keuntungan strategi secara signifikan. Ini adalah kerangka asas yang ideal untuk pedagang yang mencari sistem pemantauan trend sepenuhnya automatik, yang boleh disesuaikan dan dioptimumkan lebih lanjut mengikut pilihan risiko dan gaya perdagangan peribadi.
Secara khusus, dengan menggabungkan strategi ini dengan kaedah seperti analisis struktur pasaran, penyaringan asas atau analisis bermusim, sistem perdagangan yang lebih menyeluruh dapat dibina dan dapat bersaing dalam pelbagai keadaan pasaran.
/*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)