이 전략은 공정 가치 격차 (FVG) 검출, 이동 평균 트렌드 결정 및 동적 저항 수준을 결합한 포괄적인 거래 시스템이다. 전략은 서로 다른 시간 프레임에 걸쳐 FVG 형성을 식별하고, 이동 평균 트렌드 방향을 통합하고, 역전 신호에 따라 거래를 실행합니다. 이 시스템에는 역사적인 최고치를 기반으로 동적 스톱 손실 및 이익 목표도 포함되어 있습니다.
핵심 논리는 다음의 주요 구성 요소를 포함합니다.
이 전략은 다양한 거래 개념을 통합하여 FVG, 트렌드 및 가격 패턴의 조합을 통해 높은 확률의 거래 기회를 추구하는 포괄적인 전략입니다. 전략의 강점은 체계적인 접근과 위험 통제에 있습니다. 그러나 매개 변수 최적화 및 시장 환경 적응성에주의를 기울여야합니다. 제안된 최적화 방향을 통해 더 많은 전략 개선을 할 여지가 있습니다.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-27 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("SMC FVG Entry Strategy with Retest", overlay=true) // Parametreler stopLossPercent = input(2, title="Stop Loss (%)") / 100 lookbackPeriod = input(50, title="Güçlü Direnç İçin Geriye Dönük Süre") fvgLength = input.timeframe("60", title="FVG Zaman Dilimi") // 1 saatlik zaman dilimi maPeriod = input(20, title="MA Dönemi") // Trend yönü için MA dönemi // FVG'leri Hesapla var float fvgLow = na var float fvgHigh = na var bool fvgFilled = false // Seçilen zaman diliminde FVG'leri kontrol et if (ta.change(time(fvgLength))) bull_fvg = low > high[2] and close[1] > high[2] bear_fvg = high < low[2] and close[1] < low[2] if (bull_fvg) fvgLow := low[2] fvgHigh := high fvgFilled := true else if (bear_fvg) fvgLow := low fvgHigh := high[2] fvgFilled := true // Trend Yönü Kontrolü (MA kullanarak) ma = ta.sma(close, maPeriod) trendUp = close > ma trendDown = close < ma // Dönüş Mumu Kontrolü bullishReversal = close > open and close[1] < open[1] and fvgFilled and close > fvgHigh bearishReversal = close < open and close[1] > open[1] and fvgFilled and close < fvgLow // İlk güçlü direnç noktası resistanceLevel = ta.highest(high, lookbackPeriod) // Giriş Koşulları if (bullishReversal and trendUp) entryPrice = close stopLoss = entryPrice * (1 - stopLossPercent) takeProfit = resistanceLevel strategy.entry("Long", strategy.long) strategy.exit("TP", "Long", limit=takeProfit, stop=stopLoss) if (bearishReversal and trendDown) entryPrice = close stopLoss = entryPrice * (1 + stopLossPercent) takeProfit = resistanceLevel strategy.entry("Short", strategy.short) strategy.exit("TP", "Short", limit=takeProfit, stop=stopLoss) // FVG'leri Grafik Üzerinde Göster // if (fvgFilled) // var box fvgBox = na // if (na(fvgBox)) // fvgBox := box.new(left=bar_index[1], top=fvgHigh, bottom=fvgLow, right=bar_index, bgcolor=color.new(color.green, 90), border_color=color.green) // else // box.set_top(fvgBox, fvgHigh) // box.set_bottom(fvgBox, fvgLow) // box.set_left(fvgBox, bar_index[1]) // box.set_right(fvgBox, bar_index) // Direnç Noktasını Göster plot(resistanceLevel, color=color.blue, title="Direnç Noktası", linewidth=2) plot(ma, color=color.red, title="Hareketli Ortalama", linewidth=2)