
Strategi pergerakan pergerakan trend dinamik adalah kaedah perdagangan kuantitatif yang khusus untuk saham yang bergerak tinggi. Strategi ini bertujuan untuk menangkap penembusan pasaran yang kuat sambil mengelakkan isyarat palsu dengan menggabungkan penyaringan purata bergerak indeks (EMA), indeks yang agak kuat (RSI), pengesahan jumlah transaksi dan pengesanan penghentian pengesanan berdasarkan rentang rata-rata pergerakan sebenar (ATR).
Prinsip utama strategi ini adalah berdasarkan pengesahan isyarat pasaran berbilang dimensi:
Strategi penembusan dinamik trend dinamik membina kaedah perdagangan kuantitatif yang agak mantap dengan menggabungkan pelbagai alat analisis teknikal. Di tengah-tengahnya adalah keseimbangan antara keupayaan menangkap isyarat dan kawalan risiko, memberikan pedagang kerangka keputusan perdagangan yang sistematik.
/*backtest
start: 2024-03-28 00:00:00
end: 2025-03-27 00:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Futures_Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("Enhanced First High Break Strategy v3", overlay=true, margin_long=100, margin_short=100)
// Input Parameters
emaFastLength = input.int(9, "Fast EMA Length")
emaSlowLength = input.int(20, "Slow EMA Length")
rsiLength = input.int(14, "RSI Length")
volumeAvgLength = input.int(20, "Volume Average Length")
atrLength = input.int(14, "ATR Length")
// Calculate Indicators
emaFast = ta.ema(close, emaFastLength)
emaSlow = ta.ema(close, emaSlowLength)
rsi = ta.rsi(close, rsiLength)
volAvg = ta.sma(volume, volumeAvgLength)
atr = ta.atr(atrLength)
// Pre-calculate lowest values (FIXED)
rsiLowCurrent = ta.lowest(rsi, 5)
rsiLowPrevious = ta.lowest(rsi[5], 5)
lowLowPrevious = ta.lowest(low[5], 5)
// Trend Conditions
bullishTrend = emaFast > emaSlow and emaFast > emaFast[1]
bearishDivergence = rsiLowCurrent > rsiLowPrevious and low < lowLowPrevious
// Entry Conditions
validBreakout = close > high[1] and close > emaFast
volumeConfirmation = volume > volAvg * 1.5
trendConfirmed = close > emaSlow and close[1] > emaSlow
rsiConfirmation = rsi > 50 and not bearishDivergence
// Final Entry Signal
entryCondition = validBreakout and volumeConfirmation and trendConfirmed
// Exit Conditions
stopLossPrice = low[1] - (atr * 0.50)
trailOffset = atr * 2
// Strategy Execution
if (entryCondition)
strategy.entry("Long", strategy.long)
strategy.exit("Exit", "Long", stop=stopLossPrice,trail_points=close > emaFast ? trailOffset : na,trail_offset=trailOffset)
// Plotting
plot(emaFast, "Fast EMA", color.new(color.blue, 0))
plot(emaSlow, "Slow EMA", color.new(color.orange, 0))
plotshape(entryCondition, style=shape.triangleup, color=color.green, location=location.belowbar)