資源の読み込みに... 荷物...

多期ダイナミック・シグナル統合 ICT スマート構造 突破戦略

作者: リン・ハーンチャオチャン開催日:2025-01-06 14:09:05
タグ:RSIマックドエイマBOSFVGHTFLTFICTについて

img

概要

この戦略は,複数の技術指標とICT (Institutional Trading Concepts) を組み合わせた包括的な取引システムである.従来の技術分析指標 (RSI,ストキャスティック,MACD,EMA) を,異なる時間枠にわたる現代ICT取引概念 (フェアバリューギャップ,構造の破裂,より高いタイムフレームバイアス分析) と統合し,厳格な取引セッションフィルタリングを通じて正確な市場参入管理を実施する.

戦略の原則

この戦略は5つの主要要素を基に機能し,

  1. 高時間枠バイアス分析: 200 EMA を使用して,より高時間枠で市場傾向の方向性を決定
  2. 取引セッションフィルター: 特定の"キルゾーン"に限定された取引 (07:00〜10:00)
  3. 公正価値格差 (FVG) 特定: 3つのキャンドルパターンを介して市場の構造格差を認識する
  4. 構造の破裂 (BOS) 決定:主要価格レベルに基づく方向の変化の確認
  5. 低タイムフレーム指標の確認:RSI,ストカスティック,MACD,および200 EMAを使用して複数の検証

戦略 の 利点

  1. 多次元信号統合:複数の独立した技術指標とICTコンセプトを組み合わせることで信号の信頼性を向上させる
  2. タイムフレームシネージ:より高い時間フレームとより低い時間フレームの調整により信号の安定性が向上します
  3. FVGとBOSの識別を通じて,高い確率の構造的取引機会に焦点を当てます
  4. 総合的なリスク管理: ストップ・ロスト・メカニズムと利益引き取りメカニズム,標準化されたマネーマネジメントを含む.
  5. 取引時間の最適化: 時間のフィルタリングによって,取引以外のセッションからの干渉を減らす

戦略リスク

  1. シグナル遅延:複数の指標の組み合わせにより,入力のタイミングが遅れる可能性があります.
  2. 横向市場パフォーマンス: 変動する市場で頻繁に誤った信号を生む可能性があります.
  3. パラメータ敏感性:複数の指標パラメータは,過去のデータの徹底的な検証を必要とする.
  4. 実行リスク: 複雑な条件の組み合わせは,ライブ取引におけるいくつかの取引機会を逃す可能性があります.
  5. 市場環境による依存: 戦略の業績は,異なる市場条件によって大きく異なる可能性があります.

戦略の最適化方向

  1. 動的パラメータ調整: 市場の変動に基づいて指標パラメータの適応調整
  2. 市場環境分類: 異なるパラメータ組み合わせのための市場環境認識モジュールを追加する
  3. シグナル重量最適化:指標重量分布を最適化するために機械学習方法を導入
  4. タイムフレームの延長:信号の信頼性を向上させるためのより多くのタイムフレーム分析を含む
  5. リスク管理の強化: ダイナミックなストップ・ロスのメカニズムを導入し,資金管理戦略を最適化

概要

この戦略は,従来の技術分析と現代ICTコンセプトを統合することによって包括的な取引システムを構築する.その強みは多次元信号確認と厳格なリスク管理にありますが,パラメータ最適化と市場適応性の課題に直面しています.継続的な最適化と改善を通じて,この戦略はさまざまな市場環境で安定したパフォーマンスを維持する約束を示しています.


/*backtest
start: 2024-01-06 00:00:00
end: 2025-01-04 08:00:00
period: 2d
basePeriod: 2d
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// -----------------------------------------------------
// Multi-Signal Conservative Strategy (Pine Script v5)
// + More ICT Concepts (HTF Bias, FVG, Killzone, BOS)
// -----------------------------------------------------
//
// Combines:
// - RSI, Stochastic, MACD, 200 EMA (lower TF)
// - Higher Timeframe (HTF) bias check via 200 EMA
// - Kill Zone time filter
// - Fair Value Gap (FVG) detection (simplified 3-candle approach)
// - Break of Structure (BOS) using pivot highs/lows
// - Only trade markers on chart (no extra indicator plots).
//
// Use on lower timeframes: 1m to 15m
// Always backtest thoroughly and manage risk properly.
//
// -----------------------------------------------------
//@version=5
strategy(title="Multi-Signal + ICT Concepts (HTF/FVG/Killzone/BOS)", shorttitle="ICTStrategyExample",overlay=true, pyramiding=0, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100)

// -----------------------------------------------------
// User Inputs
// -----------------------------------------------------
/////////////// Lower TF Inputs ///////////////
emaLength       = input.int(200,   "LTF EMA Length",           group="Lower TF")
rsiLength       = input.int(14,    "RSI Length",               group="Lower TF")
rsiUpper        = input.int(60,    "RSI Overbought Thresh",    group="Lower TF", minval=50, maxval=80)
rsiLower        = input.int(40,    "RSI Oversold Thresh",      group="Lower TF", minval=20, maxval=50)
stochLengthK    = input.int(14,    "Stoch K Length",           group="Lower TF")
stochLengthD    = input.int(3,     "Stoch D Smoothing",        group="Lower TF")
stochSmooth     = input.int(3,     "Stoch Smoothing",          group="Lower TF")
macdFast        = input.int(12,    "MACD Fast Length",         group="Lower TF")
macdSlow        = input.int(26,    "MACD Slow Length",         group="Lower TF")
macdSignal      = input.int(9,     "MACD Signal Length",       group="Lower TF")

/////////////// ICT Concepts Inputs ///////////////
htfTimeframe    = input.timeframe("60", "HTF for Bias (e.g. 60, 240)", group="ICT Concepts")
htfEmaLen       = input.int(200,  "HTF EMA Length",                   group="ICT Concepts")
sessionInput    = input("0700-1000:1234567", "Kill Zone Window", group="ICT Concepts")
fvgLookbackBars = input.int(2,    "FVG Lookback Bars (3-candle check)",  group="ICT Concepts", minval=1, maxval=10)

/////////////// Risk Management ///////////////
stopLossPerc    = input.float(0.5, "Stop-Loss %",  step=0.1, group="Risk")
takeProfitPerc  = input.float(1.0, "Take-Profit %", step=0.1, group="Risk")

// -----------------------------------------------------
// 1) Higher Timeframe Bias
// -----------------------------------------------------
//
// We'll request the HTF close, then compute the HTF EMA on that data
// to decide if it's bullish or bearish overall.

htfClose       = request.security(syminfo.tickerid, htfTimeframe, close)
htfEma         = request.security(syminfo.tickerid, htfTimeframe, ta.ema(close, htfEmaLen))
isBullHTF      = htfClose > htfEma
isBearHTF      = htfClose < htfEma

// -----------------------------------------------------
// 2) Kill Zone / Session Filter
// -----------------------------------------------------
//
// We'll only consider trades if the current bar is within
// the user-defined session time (e.g., 07:00 to 10:00 local or exchange time).

isInKillZone = time(timeframe.period, sessionInput) != 0

// -----------------------------------------------------
// 3) Fair Value Gap (FVG) Detection (Simplified)
//
// For a "Bullish FVG" among bars [2], [1], [0]:
//     high[2] < low[0] => there's a gap that bar [1] didn't fill
// For a "Bearish FVG":
//     low[2] > high[0] => there's a gap that bar [1] didn't fill
//
// Real ICT usage might check partial fill, candle bodies vs wicks, etc.
// This is just a minimal example for demonstration.

fvgBarsAgo = fvgLookbackBars // default = 2
bullFVG = high[fvgBarsAgo] < low  // e.g. high[2] < low[0]
bearFVG = low[fvgBarsAgo]  > high // e.g. low[2]  > high[0]

// -----------------------------------------------------
// 4) Break of Structure (BOS)
// -----------------------------------------------------
// Using pivot detection from previous example:

swingLen = 2  // pivot detection length (bars on each side)
// Identify a pivot high at bar [1]
swingHigh = high[1] > high[2] and high[1] > high[0]
// Identify a pivot low at bar [1]
swingLow  = low[1]  < low[2]  and low[1]  < low[0]

// Track the most recent pivot high & low
var float lastPivotHigh = na
var float lastPivotLow  = na

if swingHigh
    lastPivotHigh := high[1]

if swingLow
    lastPivotLow := low[1]

bosUp   = not na(lastPivotHigh) and (close > lastPivotHigh)
bosDown = not na(lastPivotLow)  and (close < lastPivotLow)

// -----------------------------------------------------
// 5) Lower TF Indicator Calculations
// -----------------------------------------------------
ema200      = ta.ema(close, emaLength)  // 200 EMA on LTF
rsiValue    = ta.rsi(close, rsiLength)
kValue      = ta.stoch(high, low, close, stochLengthK)
dValue      = ta.sma(kValue, stochLengthD)
stochSignal = ta.sma(dValue, stochSmooth)
[macdLine, signalLine, histLine] = ta.macd(close, macdFast, macdSlow, macdSignal)

// LTF trend filter
isBullTrend = close > ema200
isBearTrend = close < ema200

// -----------------------------------------------------
// Combine All Conditions
// -----------------------------------------------------
//
// We'll require that all filters line up for a long or short:
//  - HTF bias
//  - kill zone
//  - bullish/bearish FVG
//  - BOS up/down
//  - RSI, Stoch, MACD alignment
//  - Price above/below LTF 200 EMA

longCondition = isInKillZone                     // must be in session
 and isBullHTF                                   // HTF bias bullish
 and bullFVG                                     // bullish FVG
 and bosUp                                       // BOS up
 and (rsiValue > rsiUpper)                       // RSI > threshold
 and (kValue > dValue)                           // stoch K above D
 and (macdLine > signalLine)                     // MACD bullish
 and isBullTrend                                 // above LTF 200 EMA

shortCondition = isInKillZone                    // must be in session
 and isBearHTF                                   // HTF bias bearish
 and bearFVG                                     // bearish FVG
 and bosDown                                     // BOS down
 and (rsiValue < rsiLower)                       // RSI < threshold
 and (kValue < dValue)                           // stoch K below D
 and (macdLine < signalLine)                     // MACD bearish
 and isBearTrend                                 // below LTF 200 EMA

// -----------------------------------------------------
// Strategy Entries
// -----------------------------------------------------
if longCondition
    strategy.entry("Long Entry", strategy.long)

if shortCondition
    strategy.entry("Short Entry", strategy.short)

// -----------------------------------------------------
// Risk Management (Stop-Loss & Take-Profit)
// -----------------------------------------------------
if strategy.position_size > 0
    // Long position exit
    strategy.exit("Long Exit", stop  = strategy.position_avg_price * (1.0 - stopLossPerc/100.0), limit = strategy.position_avg_price * (1.0 + takeProfitPerc/100.0))

if strategy.position_size < 0
    // Short position exit
    strategy.exit("Short Exit",  stop  = strategy.position_avg_price * (1.0 + stopLossPerc/100.0), limit = strategy.position_avg_price * (1.0 - takeProfitPerc/100.0))

// -----------------------------------------------------
// Hide All Indicator Plots
// (We only show trade markers for entry & exit)
// -----------------------------------------------------
// Comment out or remove any plot() calls so chart stays clean.
//
// Example (commented out):
// plot(ema200, title="EMA 200", color=color.new(color.yellow, 0), linewidth=2)
// plot(rsiValue, title="RSI", color=color.new(color.blue, 0))
// plot(macdLine, title="MACD", color=color.new(color.teal, 0))
// plot(signalLine, title="Signal", color=color.new(color.purple, 0))


関連性

もっと