Chiến lược phá vỡ động lượng động theo xu hướng động là một phương pháp giao dịch định lượng chuyên nghiệp được thiết kế đặc biệt cho các cổ phiếu có động lượng cao. Chiến lược này được sử dụng để lọc, xác nhận khối lượng giao dịch và theo dõi dừng lỗ dựa trên các chỉ số di chuyển trung bình (EMA), chỉ số tương đối mạnh (RSI) và phạm vi biến động trung bình thực tế (ATR) để nắm bắt các đột phá mạnh mẽ trong thị trường, đồng thời tránh các tín hiệu giả.
Các nguyên tắc cốt lõi của chiến lược này dựa trên chứng thực tín hiệu thị trường đa chiều:
Chiến lược phá vỡ động lực của xu hướng động lực đã xây dựng một phương pháp giao dịch định lượng tương đối vững chắc bằng cách tích hợp nhiều công cụ phân tích kỹ thuật. Lòng cốt lõi của nó là cân bằng khả năng bắt tín hiệu và kiểm soát rủi ro, cung cấp cho các thương nhân một khung quyết định giao dịch có hệ thống.
/*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)