
Chiến lược này là một chiến lược giao dịch tần suất cao dựa trên vùng mất cân bằng giá trị (Fair Value Gap, FVG). Chứng nhận hướng xu hướng bằng cách kết hợp các chỉ số chuyển động 50 chu kỳ và 200 chu kỳ (EMA), đồng thời sử dụng nhiều chỉ số lọc như khối lượng giao dịch và biến động giá để tăng độ tin cậy của tín hiệu giao dịch. Chiến lược sử dụng cơ chế dừng lỗ động dựa trên độ dao động thực tế (ATR) để kiểm soát rủi ro nghiêm ngặt trong khi đảm bảo lợi nhuận.
Cốt lõi của chiến lược là nắm bắt các cơ hội giao dịch tiềm năng bằng cách xác định các khu vực mất cân bằng trong hành động giá (FVG). Khi giá tăng mạnh trong một thời gian ngắn và hướng tăng phù hợp với xu hướng chính, chiến lược cho rằng sự mất cân bằng giá này cho thấy mọi thứ sẽ tiếp tục diễn ra theo hướng đó. Cụ thể:
Chiến lược này xây dựng một hệ thống giao dịch hoàn chỉnh hơn bằng cách sử dụng tổng hợp các phương pháp phân tích kỹ thuật và phân tích cấu trúc vi mô thị trường. Điểm mạnh cốt lõi của chiến lược là cơ chế xác nhận tín hiệu đa dạng và kiểm soát rủi ro động, nhưng trong ứng dụng thực tế, vẫn cần tối ưu hóa tham số theo các tình huống thị trường cụ thể. Bằng cách cải tiến và tối ưu hóa liên tục, chiến lược có thể duy trì hiệu suất ổn định trong các môi trường thị trường khác nhau.
/*backtest
start: 2024-02-21 00:00:00
end: 2025-02-01 08:00:00
period: 1d
basePeriod: 1d
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=5
strategy("Effective FVG Strategy - Forex", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)
// === Exponential Moving Averages for Faster Trend Detection ===
ema50 = ta.ema(close, 50)
ema200 = ta.ema(close, 200)
bullishTrend = ema50 > ema200
bearishTrend = ema50 < ema200
// === Volume & Imbalance Filters ===
highVolume = volume > ta.sma(volume, 20) * 1.5 // 1.5x higher than average volume
strongImbalance = math.abs(close - open) > ta.sma(math.abs(close - open), 20) // Large price movement
// === Fair Value Gap (FVG) Detection ===
fvgUp = low[2] > high[0] // Bullish FVG
fvgDown = high[2] < low[0] // Bearish FVG
// Effective FVGs with trend confirmation
validBullFVG = fvgUp and highVolume and strongImbalance and bullishTrend
validBearFVG = fvgDown and highVolume and strongImbalance and bearishTrend
// === ATR-based Take Profit & Stop Loss (Optimized for Forex) ===
atr = ta.atr(14)
longTP = close + (2 * atr) // TP = 2x ATR
longSL = close - (1.2 * atr) // SL = 1.2x ATR
shortTP = close - (2 * atr)
shortSL = close + (1.2 * atr)
// === Execute Trades ===
if validBullFVG
strategy.entry("Long", strategy.long)
strategy.exit("Long Exit", from_entry="Long", limit=longTP, stop=longSL)
if validBearFVG
strategy.entry("Short", strategy.short)
strategy.exit("Short Exit", from_entry="Short", limit=shortTP, stop=shortSL)
// === Plot Buy/Sell Signals ===
plotshape(series=validBullFVG, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", title="BUY Signal")
plotshape(series=validBearFVG, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", title="SELL Signal")
// Highlight Significant FVGs
bgcolor(validBullFVG ? color.new(color.green, 85) : na)
bgcolor(validBearFVG ? color.new(color.red, 85) : na)