Cette stratégie est un système de trading complet qui combine la détection de l'écart de valeur équitable (FVG), la détermination de la tendance moyenne mobile et les niveaux de résistance dynamique.
La logique de base comprend les composantes clés suivantes:
Il s'agit d'une stratégie complète qui intègre plusieurs concepts de trading, recherchant des opportunités de trading à haute probabilité grâce à la combinaison de FVG, de tendances et de modèles de prix.
/*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)