
Strategi penyambungan tren purata bergerak tanpa kelewatan adalah sistem perdagangan trend yang berdasarkan purata bergerak yang diperbaiki. Inti strategi ini adalah menggunakan hubungan silang antara purata bergerak tanpa kelewatan (ZLMA) dan purata bergerak indeks tradisional (EMA) untuk mengenal pasti titik perubahan trend pasaran, untuk menangkap trend naik dan mengelakkan trend turun.
Prinsip-prinsip teknikal strategi ini adalah berdasarkan penyelesaian inovatif kepada masalah kelewatan purata bergerak tradisional. Proses pengiraan terasnya adalah seperti berikut:
Pengenalan faktor pembetulan adalah inovasi utama dalam strategi ini, yang mengimbangi sifat kelewatan EMA, yang membolehkan ZLMA akhir mengikuti pergerakan harga dengan lebih rapat, mengurangkan tindak balas kelewatan purata bergerak tradisional pada titik perubahan trend.
Logik penjanaan isyarat dagangan adalah seperti berikut:
Dari analisis yang mendalam mengenai kod strategi, beberapa kelebihan yang jelas dapat disimpulkan:
Walaupun terdapat banyak kelebihan, terdapat beberapa risiko yang perlu diperhatikan:
Berdasarkan analisis mendalam kod, strategi ini boleh dioptimumkan dalam beberapa arah:
Idea utama pengoptimuman adalah untuk meningkatkan daya serap dan daya tahan strategi, yang membolehkan mereka mengekalkan prestasi yang stabil dalam pelbagai keadaan pasaran.
Strategi ZLMA menggunakan persilangan ZLMA dengan EMA untuk menangkap titik-titik perubahan trend, digabungkan dengan pengurusan risiko mekanisme kedudukan automatik, sesuai untuk peniaga yang mencari kelebihan trend-tracking sambil berharap untuk mengurangkan ketinggalan rata-rata bergerak tradisional.
Walaupun strategi ini direka bentuk dengan ringkas dan mudah digunakan, namun dalam penggunaan praktikal, faktor-faktor seperti kesesuaian dengan persekitaran pasaran, pengoptimuman parameter dan pengurusan risiko masih perlu dipertimbangkan. Dengan arah pengoptimuman yang disyorkan, strategi ini dapat meningkatkan lagi kestabilan dan kesesuaian strategi sehingga dapat mengekalkan prestasi yang stabil dalam keadaan pasaran yang berbeza.
/*backtest
start: 2024-03-06 00:00:00
end: 2025-03-04 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"SOL_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © ChartPrime
//@version=5
strategy("Zero-Lag MA Trend Strategy", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 10)
// --------------------------------------------------------------------------------------------------------------------}
// 𝙐𝙎𝙀𝙍 𝙄𝙉𝙋𝙐𝙏𝙎
// --------------------------------------------------------------------------------------------------------------------{
int length = input.int(15, title="Length") // Length for moving averages
// Colors for visualization
color up = input.color(#30d453, "+", group = "Colors", inline = "i")
color dn = input.color(#4043f1, "-", group = "Colors", inline = "i")
// --------------------------------------------------------------------------------------------------------------------}
// 𝙄𝙉𝘿𝙄𝘾𝘼𝙏𝙊𝙍 𝘾𝘼𝙇𝘾𝙐𝙇𝘼𝙏𝙄𝙊𝙉𝙎
// --------------------------------------------------------------------------------------------------------------------{
emaValue = ta.ema(close, length) // EMA
correction = close + (close - emaValue) // Correction factor
zlma = ta.ema(correction, length) // Zero-Lag Moving Average (ZLMA)
// Entry signals
longSignal = ta.crossover(zlma, emaValue) // Bullish crossover
shortSignal = ta.crossunder(zlma, emaValue) // Bearish crossunder
// Close positions before the market closes
var int marketCloseHour = 15
var int marketCloseMinute = 45
timeToClose = hour == marketCloseHour and minute >= marketCloseMinute
// --------------------------------------------------------------------------------------------------------------------}
// 𝙏𝙍𝘼𝘿𝙀 𝙀𝙓𝙀𝘾𝙐𝙏𝙄𝙊𝙉
// --------------------------------------------------------------------------------------------------------------------{
if longSignal
strategy.entry("Long", strategy.long)
if shortSignal
strategy.close("Long")
if timeToClose
strategy.close_all("EOD Exit")
// --------------------------------------------------------------------------------------------------------------------}
// 𝙑𝙄𝙎𝙐𝘼𝙇𝙄𝙕𝘼𝙏𝙄𝙊𝙉
// --------------------------------------------------------------------------------------------------------------------{
// Plot the Zero-Lag Moving Average and EMA
plot(zlma, color = zlma > zlma[3] ? up : dn, linewidth = 2, title = "ZLMA")
plot(emaValue, color = emaValue < zlma ? up : dn, linewidth = 2, title = "EMA")
// Mark trade entries with shapes
plotshape(series=longSignal, location=location.belowbar, color=up, style=shape.labelup, title="Buy Signal")
plotshape(series=shortSignal, location=location.abovebar, color=dn, style=shape.labeldown, title="Sell Signal")