Institutional Framework Trading System MT5
- インディケータ
- バージョン: 1.586
- アップデート済み: 19 10月 2026
Range-Bound Edition · v1.58
機関投資家が実際に使用するのと同じ構造で金融商品を取引する
多くの小売向け Smart Money Concept(SMC)ツールが行うことは、チャート上に Order Block や Liquidity Sweep を描画し、それを信頼すべきかどうかをトレーダー自身に判断させることだけです。Institutional Framework Trading System MT5 は、それだけでは終わりません。
このシステムが生成するすべてのシグナルは、確認済みの価格アクション構造であり、さらに最大3つの機関投資家レベルの市場コンテキスト層——実際のオプション市場ポジショニング、マクロファンダメンタルズ、市場センチメント——によってクロスチェックされています。
これらすべてを1つの明確なシグナルへ統合することで、3つのインジケーターがそれぞれ異なることを示して画面上で競合するような状態を避けます。
本システムは、Order Block、Liquidity Sweep、Supply/Demand Zone をすでに理解しており、単に構造を描画するだけでなく、その構造を検証するシステムを求めるトレーダー向けに設計されています。
他との違い
-
完全な SMC 構造エンジン — Order Block、Liquidity Sweep、Supply/Demand Zone を、確認済みの確定足の価格アクションだけから構築します。シグナルはバーが確定した瞬間にロックされ、その後は決してリペイントされません。
-
構造だけではない多層確認。 各構造シグナルはチャートに表示される前に、Divergence、Exhaustion、Absorption の各検出器によってクロスチェックされます。つまり、単なるパターン一致ではなく、価格構造とオーダーフロー挙動の一致を確認できます。
-
実際のオプション市場とのコンフルエンス。 COMEX Gold Futures Options のデータから直接取得します。実際の Open Interest、Max Pain、実際のゴールド・オプション市場の流動性レベルを使用し、合成的な代替データではありません。価格が到達する前に、大口ポジションが実際にどこに存在しているかを確認できます。
-
マクロ環境を考慮した設計。 内蔵パイプラインが Fed のバランスシート、CPI/PPI、雇用データを読み取り、シグナルをより広いマクロ経済レジームと整合させます。
-
センチメント対応。 CFTC Commitment of Traders のポジショニングと市場の Fear & Greed が、実際の逆張りフィルターとして機能します。極端なセンチメント値はエントリーのゴーサインではなく、逆方向への取引機会として扱われます。
-
目的別に設計された2つのモード。 トレンド環境向けのスコアリング方式 Conservative Mode と、本ビルドのデフォルトである Range-Bound Mode。後者は戦略テストによって調整され、モメンタムよりも構造と平均回帰が重要となるレンジ・保ち合い市場向けに設計されています。
-
すぐに使えて、段階的に拡張可能。 上記の高度な各レイヤーはすべてオプションです。設定なしで装着しても、最初のバーから検証済みの純粋な構造を使用して動作します。必要になった時点で、オプションデータ、マクロデータ、センチメントデータを追加できます。コアエンジン以外はシグナル生成に必須ではありません。
-
.mq5 ファイルをターミナルの MQL5\Indicators フォルダへコピーします(MT5 内の File → Open Data Folder)。その後 MetaEditor でコンパイルします。
-
ゴールドのチャートにインジケーターを適用します。他の銘柄でも動作しますが、このファイルのすべてのデフォルト設定とコメントは XAU を前提としています。
-
すべての入力値をデフォルトのままにします。本バージョンは Range-Bound Mode で起動します。このモードは本ビルド用に調整されています。Divergence 検出は有効ですが、チャート上のマーカーは非表示です(理由はセクション2を参照)。
-
適用後は Experts ログを確認してください。自動ファンダメンタルズ/センチメント取得に失敗した場合、その内容が明確に表示されます。チャート上の情報パネルには、現在のモード、レジーム、シグナルスコアリング状態が一目で表示されます。
-
オプション市場のコンフルエンスを使用する場合は、セクション11から1つの方法を選択してください。使用しない場合は完全にスキップできます。インジケーターはオプションデータなしでも正常に動作します。
enum ENUM_SIGNAL_MODE { MODE_CONSERVATIVE, MODE_RANGEBOUND };
-
Conservative Mode — ポイントスコアリング方式です。Order Block、Sweep、Divergence、Exhaustion、Absorption、Cluster Confluence、Options Confluence がそれぞれスコアを加算します。スコアが MinSignalScore (デフォルト4)を超えた場合にのみシグナルが発生します。このモードでは、レジームフィルター(セクション12のファンダメンタルズ/センチメント評価)が、現在の優勢バイアスと逆方向のシグナルを積極的にブロックします。
-
Range-Bound Mode(本ビルドのデフォルトモード) — 1つの構造条件(Order Block または 有効な Demand/Supply Zone)、さらに1つの確認条件(Divergence、Exhaustion または Absorption)、そして RangeBoundMinScore による最低スコアを必要とします。デフォルトは2で、元の常時有効ゲートを正確に再現する値です。Cluster/Options Confluence の影響をさらに強めたい場合のみ引き上げてください。このモードではレジームフィルターによって方向がブロックされることはありません。ファンダメンタルズ/センチメントのバイアスに関係なく、ロングとショートの両方向が有効です。
重要 — RequireDivergence 、 RequireOrderBlock 、 RequireSweep を変更する前に必ず読んでください:
これら3つのパラメータは Conservative Mode にのみ適用されます。デフォルトの Range-Bound Mode では、これらの入力はまったく機能しません。調整に時間を使う必要はありません。
RequireDivergence は、将来的に Conservative Mode に戻した場合でも一貫した挙動を維持できるよう、デフォルトで false に設定されています。
DrawDivergenceMarks も本ビルドではデフォルトで false です。これは純粋に表示上の設定であり、チャート上の DIV_ マーカーを非表示にするだけです。
内部の Divergence 検出器( EnableDivergence 、現在も true )はそのまま動作し、Range-Bound Mode における hasConfirmation に引き続きカウントされます。
チャート上で Divergence を視覚的に表示したい場合は、 DrawDivergenceMarks を再び有効にしてください。
3. コア構造検出グループ: === SMC / Structure Detection ===
| パラメータ | デフォルト | 制御内容 |
|---|---|---|
| SwingWing | 3 | ローソク足を swing high/low として確認するために、その左右に必要なバー数。低い = より多くの Swing(ノイズ増加);高い = 少ないがより重要な Swing。 |
| SwingLookback | 100 | Divergence または Sweep 構造を確認する際、以前の Swing ポイントを探すためにどこまで過去へ遡るか。 |
| ATRPeriod | 14 | インジケーター内のほぼすべての距離ベースの閾値をスケーリングする ATR 期間。displacement、exhaustion、absorption、divergence-swing フィルターなどに使用。 |
| OBDisplacementMult | 1.0 | ローソク足が Order Block の displacement candle として認定されるために必要な最小の「実体サイズ / ATR」比率。 |
| OBMaxWickRatio | 0.3 | displacement candle のレンジに対して影が占めることのできる最大割合(0–1)。レンジは大きいが大部分がヒゲで構成されるローソク足を除外します。 |
| SDMoveMultiple | 3.0 | 後続の爆発的な値動きが「ベース」キャンドルのレンジの何倍に達すれば Supply/Demand Zone と認定するか(セクション6)。 |
| EquilibriumBandPct | 0.05 | 検出されたレンジの50%レベル周辺に設定される equilibrium バンドの幅。 |
グループ: === Exhaustion Detection === 、 === Absorption Detection === 、 === Delta Divergence === 、 === Delta (Native Tick) ===
| パラメータ | デフォルト | 制御内容 |
|---|---|---|
| EnableExhaustion | true | Exhaustion 検出器のメインスイッチ。 |
| ExhaustionWickMult | 0.6 | ローソク足を Exhaustion と認定するために必要な最小の「ヒゲ / レンジ」比率。 |
| ExhaustionBodyMult | 0.3 | そのヒゲと同時に許容される最大の「実体 / レンジ」比率。 |
| EnableAbsorption | true | Absorption 検出器のメインスイッチ。 |
| AbsorptionVolFactor | 1.5 | ローソク足を Absorption と認定するために必要な「出来高 / 平均出来高」の最小倍率。 |
| AbsorptionRangeFactor | 0.8 | 許容される最大の「レンジ / ATR」比率。Absorption = 高出来高 + 小さなレンジ。 |
| AbsorptionRejectPct | 0.2 | 必要とされる最小のヒゲによる拒否比率。 |
| EnableDivergence | true | Divergence 検出器のメインスイッチ。 DrawDivergenceMarks をOFFにしていてもONのままにしてください。 |
| DrawDivergenceMarks | false(本ビルド) | 純粋な表示設定。チャート上の DIV_ マーカーを表示/非表示にします。シグナル生成には影響しません。 |
| DivergenceMinSwingATR | 1.0 | 2つの Swing を Divergence 比較する前に必要となる最小の Swing 間価格差(ATR単位)。ノイズレベルの Swing を除外します。 |
| MaxTickBars | 50 | 実際の buy/sell tick-delta を Divergence に使用できる直近バーの数。それより古いバーでは raw tick-volume に自動的にフォールバックします。 |
グループ: === Cluster Confluence (both modes) ===
| パラメータ | デフォルト | 制御内容 |
|---|---|---|
| UseClusterScoring | true | 1本のバー上で複数の確認条件が同時に発生した場合、スコアボーナスを与えるかどうか。 |
| MinClusterSignals | 3 | ボーナスを発動するために同時に一致する必要がある確認条件数。 |
| ClusterBonusScore | 2 | シグナルスコアに追加されるボーナス値。 |
この機能は両モードに適用されます。Range-Bound Mode では、セクション2で説明されている RangeBoundMinScore ゲートに入力されます。
6. Supply & Demand Zonesグループ: === Supply & Demand Zones ===
| パラメータ | デフォルト | 制御内容 |
|---|---|---|
| DrawSupplyDemandZones | true | ゾーン描画エンジンのメインスイッチ。 |
| SDLookback | 100 | 条件を満たす「ベース + 爆発的値動き」パターンを探すために過去へ遡るバー数。 |
| SDMaxBaseCandles | 4 | 爆発的な値動きが始まる前に許容される「ベース」(コンソリデーション)キャンドルの最大数。 |
| SDDisplacementMult | 0.5 | ゾーンから離れる爆発的値動きに必要な最小「実体 / ATR」比率。 OBDisplacementMult とは独立しており、より緩い設定です。ゾーンと Order Block は独立して検出されます。 |
| SDMaxZonesShown | 3 | 同時にチャートへ表示できるゾーン数の上限。 |
| SupplyZoneColor / DemandZoneColor | Red / Blue | チャート上のゾーンカラー。 |
有効な(まだ mitigation されていない)Demand または Supply Zone は、Order Block と同様に Range-Bound Mode のゲートにおける「構造」部分を満たします。
7. Higher Timeframe フィルターグループ: === Higher-Timeframe Confirmation ===
| パラメータ | デフォルト | 制御内容 |
|---|---|---|
| UseHTFFilter | true | シグナル発生前に、高い時間足の方向性判断が一致する必要があるかどうか。 |
| HTFTimeframe | H4 | チェックする上位時間足。 |
| HTFLookbackBars | 20 | トレンド判定のために遡る、確定済み H4 バーの本数。 |
| HTFNeutralPct | 0.05 | HTF トレンドがどの程度フラットに近ければ「Neutral」と判断するか。Neutral の場合、Long/Short のどちらもブロックしません。 |
このフィルターは常に最新の確定済み上位時間足バーのみを読み取り、現在形成中のバーは読みません。そのためリペイントしません。
8. セッションフィルターグループ: === Session Filter (approximate UTC windows, NOT DST-adjusted) ===
| パラメータ | デフォルト | 制御内容 |
|---|---|---|
| AllowedSession | SESSION_ALL | シグナルを特定のセッションに限定します: SESSION_ALL 、 SESSION_LONDON 、 SESSION_NEWYORK 、 SESSION_LONDON_NY 。 |
| UTCOffsetHours | 0 | ブローカーのサーバー時間が UTC ではない場合に調整します。 |
内部でチェックされる実際の時間帯:
London = 08:00–16:00 UTC
New York = 13:00–21:00 UTC
| パラメータ | デフォルト | グループ | 制御内容 |
|---|---|---|---|
| SignalCooldownBars | 5 | Signal Cooldown | 同じゾーンで2つのシグナルが発生する間に必要な最小バー数。また、価格が十分に移動していない場合は最小価格距離も考慮し、同じレベルが繰り返しシグナルを発生させることを防ぎます。 |
| MaxBarAgeForSignal | 25 | Stale Zone Decay | Order Block が新しいシグナルの有効な構造として扱われるための最大経過バー数。このパラメータは矢印自体が表示されるかどうかを制御します。セクション13のアラートタイミング設定とは異なります。 |
グループ: === Fibonacci Extension Auto-Targets ===
Bullish または Bearish の Order Block が検出されると、チャート上に TP1 / TP2 / TP3 (Fibonacci 拡張、デフォルト 1.618 / 2.618 / 4.236)と BE 参照ラインが自動的に描画されます。
チャートに記載されているルール:Stop-Loss を Break-Even に移動してください。
| パラメータ | デフォルト |
|---|---|
| EnableFibTargets | true |
| FibTP1 / FibTP2 / FibTP3 | 1.618 / 2.618 / 4.236 |
| FibTP1Color / FibTP2Color / FibTP3Color | Yellow / Orange / Red |
| TrailBEColor | White |
Options Liquidity Confluence のスコアリングボーナスに、実際のオプション市場データを入力する方法は2つあります。
どちらか1つだけ使用すれば十分です。どちらも使用しなくてもインジケーターは正常に動作します。
Option A — FlashAlpha Live API(便利だが Proxy)
-
lab.flashalpha.com で無料 API Key を取得します。
-
UseLiveAPI = true に設定し、キーを FlashAlpha_API_Key に貼り付けます。
-
FlashAlpha_Expiration を希望する満期日に設定します。形式は yyyy-MM-dd 。無料プランでは一度に「すべての満期」を問い合わせることができないため、この設定は必須です。
-
特別な理由がない限り、 FlashAlpha_Symbol はデフォルト値( NEM )のままにしてください。
何を取得しているのかを理解してください:
FlashAlpha の無料プランは実際の COMEX Gold Options を提供していません。代わりに、流動性があり金価格と相関する Proxy として NEM (Newmont、金鉱山会社)が使用されます。
インジケーターは Proxy 株式の Strike Price をゴールドチャート上へ直接描画しません。使用するのは Proxy の net-gamma/GEX の読み取り値だけです。
したがって、Live API モードの Options Confluence は、関連銘柄を利用したセンチメント/ポジショニングの Proxy であり、ゴールドオプションそのものの実際のポジショニングではないことを理解してください。
無料プランの制限:
MaxDailyAPICalls = 5 / 日
(FlashAlpha 自身のクォータとは独立した、インジケーター側のハード上限)
RefreshIntervalHours = 4
(API 呼び出し間の最小4時間)
Option B — Barchart.com 月次 CSV(実際のゴールドオプション、手動更新)
これは Proxy ではなく、実際の COMEX Gold(GC)先物オプションデータです。
-
Barchart の Gold Futures Options Chain( barchart.com/futures/quotes/GC*0/options )へ移動し、契約月を選択して Chain を CSV としてダウンロードします。
-
ファイルは各行につき最低13個のカンマ区切り列を必要とします。
-
列1 = strike
-
列9 = volume
-
列10 = open interest
-
列13 = option type( C または P で始まる必要があります)
-
ヘッダー行は使用可能で、自動的にスキップされます。
-
-
ファイルをターミナル自身のデータフォルダへ配置します:File → Open Data Folder → MQL5 → Files
-
CSV_File_Name をファイル名と完全一致するように設定します。デフォルト: gcv26-options-monthly.csv
-
UseLiveAPI = false に設定します。
Weekly Strikes(オプション追加機能)
Weekly_Call_Strikes / Weekly_Put_Strikes の形式:
strike,openInterest,volume;strike,openInterest,volume;...
例:
4350,251,45;4400,36,12
使用しない場合は空欄(デフォルト)のままで構いません。安全に処理され、エラーは発生しません。
Weekly_Weight (デフォルト1.0)は、インジケーターが描画するすべてのレベル(Max Pain、Support、Resistance、BSL、SSL)において、Weekly OI が Monthly OI に対してどの程度の重みを持つかを制御します。
オプション表示設定
| パラメータ | デフォルト | 機能 |
|---|---|---|
| Min_OI_Threshold | 100 | Strike が BSL/SSL の計算対象となるために必要な最小 Open Interest。 |
| Min_Volume_Threshold | 200 | オプションベースのレベルに適用される最小 Volume フィルター。 |
| Max_Pain_Buffer | 5 | 計算された Max Pain レベル周辺で許容される Strike 単位の範囲。 |
| Max_Strikes_Processed | 100 | 処理する Strike 数を制限します。現在価格に近いものから読み込まれます。 |
| Max_Battle_Zones_Shown | 5 | 高 OI の「Battle Zone」レベルの最大表示数。 |
| Refresh_Hotkey | R | チャート上でこのキーを押すと、オプションデータを即座に強制更新します。 |
| Auto_Refresh_Seconds | 60 | 更新が必要かどうかをインジケーターが再確認する間隔。 RefreshIntervalHours とは異なります。 |
| UseOptionsConfluence | true | Options Confluence スコアリングボーナスのメインスイッチ(両モード)。 |
| OptionsConfluenceATRMult | 0.5 | ボーナス適用対象となるキー・オプションレベルへの近接許容値(ATR 単位)。 |
| OptionsConfluenceBonus | 1 | そのボーナスの大きさ。 |
どちらも 0–100 でスコアリングされます。
-
Fundamental score: 0 = Gold に対して Bearish、100 = Gold に対して Bullish。
-
Sentiment score: 0 = Extreme Fear、100 = Extreme Greed。
-
デフォルト/Neutral は両方とも 50。
これらは完全自動ではなく、ハイブリッド型のスコアです。
UseAutoFundamentals = true であっても、一部のコンポーネントには無料の公開データフィードが存在しないため、以下は常に手動入力する必要があります。
| 手動入力 | 内容 | 入手先 |
|---|---|---|
| ManualFedStance | 0 = 非常に Hawkish … 100 = 非常に Dovish | 自分自身の判断。明確な数値フィードは存在しません。 |
| ManualCmeCutProb | 次回会合での利下げ確率(CME FedWatch、0–100) | cmegroup.com の CME FedWatch Tool |
| ManualNFPActual / ManualNFPExpected | Non-Farm Payrolls、実績値 vs コンセンサス(千人) | 実績値は BLS、コンセンサスは政府データではありません。 |
| ManualADPActual / ManualADPExpected | ADP 雇用、実績値 vs コンセンサス(千人) | NFP と同様。 |
| ManualGeoScore | 地政学的緊張度、0–100 | 自分自身の判断。 |
| BPR_USBanksLong / BPR_USBanksShort | CFTC Bank Participation Report、COMEX Gold | cftc.gov の月次 Bank Participation Reports |
UseAutoFundamentals = true の場合、自動取得されるコンポーネント:
-
Fed バランスシート(FRED)
-
CPI/PPI/失業率(BLS)
-
ブローカーの Oil Symbol Price
センチメントについては、 UseAutoSentiment = true にすると以下を取得します:
-
CFTC Commitment of Traders(Disaggregated、Managed Money)
-
JM Bullion Fear & Greed Gauge
最も簡単な方法:
UseAutoFundamentals = false UseAutoSentiment = false
として、以下を自分で入力します:
FundamentalScore SentimentScore
どちらも 0–100 の範囲です。
これにより外部依存を完全になくすことができます。
FRED API Key の取得
-
fred.stlouisfed.org/docs/api/api_key.html で無料登録します。
-
キーを FRED_API_Key に貼り付けます。
これは Fed バランスシートコンポーネントにのみ必要です。
必要な URL をホワイトリストに追加
MT5 で:
Tools → Options → Expert Advisors → "Allow WebRequest for listed URL:" にチェック → 使用する各ドメインを追加:
https://publicreporting.cftc.gov https://www.jmbullion.com https://api.stlouisfed.org https://api.bls.gov https://lab.flashalpha.com
ブロックされたドメインがある場合、追加が必要な正確な URL がログに記録されます(エラー4014)。
まず必ず Experts ログを確認してください。
FundamentalsRefreshHours / SentimentRefreshHours (どちらもデフォルト24時間)は更新頻度を制御します。
基礎データ自体が週次または月次でしか更新されないため、1日1回の更新で十分です。
