
이 전략은 가격 불균형 지역 (Fair Value Gap, FVG) 을 기반으로 한 고주파 거래 전략이다. 50주기 및 200주기 지수 이동 평균 (EMA) 을 결합하여 트렌드 방향을 확인하고 거래량 및 가격 변동과 같은 여러 가지 필터링 지표를 사용하여 거래 신호의 신뢰성을 향상시킵니다. 전략은 실제 변동의 폭 (ATR) 을 기반으로 한 동적 중지 손실 메커니즘을 채택하여 수익을 보장하면서 위험을 엄격하게 제어합니다.
전략의 핵심은 가격 운동의 불균형 지역 (FVG) 을 식별하여 잠재적 인 거래 기회를 잡는 것입니다. 단기간에 가격이 눈에 띄는 폭등이 발생하고 폭등의 방향이 주 트렌드와 일치하면, 전략은 이러한 가격 불균형이 그 방향으로 계속 될 것을 예고합니다. 구체적으로:
이 전략은 기술 분석과 시장 미시 구조 분석 방법을 통합하여 비교적 완전한 거래 시스템을 구축한다. 전략의 핵심 장점은 다중 신호 확인 메커니즘과 동적 위험 제어에 있다. 그러나 실제 응용에서는 특정 시장 상황에 따라 변수를 최적화해야 한다. 지속적인 개선과 최적화를 통해 전략은 다양한 시장 환경에서 안정적인 성능을 유지할 수 있을 것으로 보인다.
/*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)