
この戦略は,公平価値ギャップ (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)