タイムリーなFVG検出と移動平均トレンドに基づく動的抵抗取引戦略

FVG MA SMC ICT
作成日: 2024-11-29 14:50:09 最終変更日: 2024-11-29 14:50:09
コピー: 0 クリック数: 558
1
フォロー
1617
フォロワー

タイムリーなFVG検出と移動平均トレンドに基づく動的抵抗取引戦略

概要

この戦略は,公平価値ギャップ (FVG) の検出,移動平均線のトレンド判断,動的抵抗位を組み合わせた総合的な取引システムである. この戦略は,異なる時間枠でFVGの形成を識別し,移動平均線のトレンド方向と組み合わせて,反転信号が発生したときに取引を行う. このシステムは,動的ストップと歴史的な高点に基づく利益目標設定も含む.

戦略原則

戦略の中核となるロジックには、次の主要な部分が含まれます。

  1. FVG検知:指定時間枠 (デフォルト 1 時間) 内で多頭と空頭の公平価値のギャップを検知
  2. トレンド判断:20周期移動平均を用いて市場のトレンド方向を判断する
  3. 逆転確認:グラフの形状から市場の逆転信号を判断する
  4. ダイナミックレジスタンス:レジスタンス位と利益目標として近年の最高値を用いる
  5. リスク管理: パーセンテージ・ストップ・ローズ・プロテクション

戦略的優位性

  1. 多次元分析:価格の形,傾向,市場構造を組み合わせる
  2. 適応性:異なる市場環境でパラメータを調整できる
  3. リスクはコントロール可能: 明確なストップ・ロズとリターン設定
  4. ビジュアルサポート:FVGエリアと主要価格のグラフィック表示
  5. ロジック・インテック: 入場,出場,リスク管理を含む完全な取引システム

戦略リスク

  1. タイムフレーム依存性:異なるタイムフレームによって衝突信号が生じる
  2. 市場の波動: 激しい波動により,頻繁にストップが起こる可能性
  3. パラメタセンシブル: パラメタ設定が戦略のパフォーマンスに大きな影響を与える
  4. トレンド依存性: 変動する市場では不振を呈する可能性がある
  5. 信号の遅延:移動平均は遅延がある

戦略最適化の方向性

  1. 波動率自律化導入:市場の波動に応じてストップ・ローズと利益目標の調整
  2. フィルタリング条件を追加する: 取引量またはその他の技術指標の確認
  3. タイムフレームの最適化:異なるタイムフレームの組み合わせをテストする
  4. トレンド判断の改善:複数の移動平均や他のトレンド指標を使用する
  5. 裏返し確認の改善:形状認識の追加方法

要約する

これは,複数の取引理念を融合した総合的な戦略で,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)