初心者からエキスパートへ:流動性ゾーンインジケータの開発
内容
はじめに
前回の記事では、流動性ゾーンとその後に発生するブレイクアウトレンジの間に存在し得る比率を明らかにするための深いリサーチを行いました。統計的に最も一貫性が高かった概念的な比率は、1:3(流動性ゾーンの深さ:ブレイクアウト/インパルスのレンジ)でした。
この重要な値が特定された今、次の論理的ステップは明確です。それは、インサイトを実用的なエッジへと変換することです。多くのトレーダーが知りたいのは、「この1:3の比率をどのように実際の戦略に落とし込むのか」という点です。その答えは戦略開発にあります。
本日は、この比率を実際のチャート上で機能させるカスタムインジケータの構築に焦点を当てます。本研究で観察された理論的な関係性をリアルタイムの実用的シグナルへと変換することが目的です。以下ではまずコアコンセプトを再確認し、その後に実装フェーズへ進みます。
コンセプトの再確認
流動性ゾーンとは、市場のコンソリデーション(持ち合い)期間を表しており、価格が時間をかけて明確に定義された2つの水準の間で振動するレンジとして認識されます。分かりやすくするために、固定された絶対価格ではなく概念的な基準点としてPrice AとPrice Bを用います。典型的な強気構造では、Price Aはベースの安値を表し、Price Bはベースの高値を表します。この期間中、価格はこの2つの水準の間で変動します。弱気シナリオではこの構造は単純に反転し、Price Aがベースの高値、Price Bがベースの安値となります。市場はこの間、一見すると均衡しているように見えますが、実際には機関投資家はポジションの蓄積または分配を行っており、レンジの両端付近に流動性が意図的に構築されています。
最終的に価格はこの均衡状態を離れ、インパルス的なブレイクアウトによってレンジを脱出します。強気のケースではブレイクアウトはPrice B(ベースの高値)を上抜ける形で発生し、弱気のケースではPrice A(ベースの安値)を下抜ける形で発生します。このブレイクアウトによって新しい参照レベルが形成され、これをPrice Cと定義します。強気の場合はインパルス上昇の高値、弱気の場合はインパルス下落の安値に相当します。これらの動きはランダムではなく、多くの場合、レンジ外に存在するストップロス注文、個人投資家のブレイクアウト注文、そしてレンジ内で捕捉されたポジションなど、蓄積された流動性の吸収によって駆動されます。
高確率環境においては、流動性スイープ後の継続シナリオであれ、より深い操作(manipulation)後の反転シナリオであれ、価格はブレイクアウト後に単純に一方向へ拡張し続けるのではなく、元の流動性ゾーンであるA–Bレンジへと再訪することが頻繁に観察されます。この挙動は市場メカニクスの本質に基づいており、インパルス的な動きによって生じた非効率性の修正、片側の流動性吸収の完了、あるいは次の方向性フェーズに向けた追加流動性の誘発として説明されます。 図1ではこの概念を図示しています。

図1:流動性需要の概念図
これまでの研究は、この挙動を視覚的ではなく定量的にアプローチしました。複数の銘柄および複数の時間足にわたる高品質なセットアップを繰り返し測定した結果、流動性ゾーンの深さ(Price AとPrice Bの距離)と、インパルスブレイクアウトの大きさ(レンジ境界からPrice Cまでの距離)の間に一貫した比例関係が存在することが確認されました。この関係性の中で最も一貫して観測されたものは、おおよそ1:3の比率(流動性ゾーンの深さ:インパルスの大きさ)であり、これが本研究および本インジケータのモデル基盤となっています。
この観測された比率は、機関投資家による流動性設計が、コンソリデーション後に非対称的な価格拡張を引き起こす典型例として解釈できます。実際の市場では、比較的タイトな流動性ゾーン(例:低時間足における20〜40pipsのレンジ)が、その後に60〜120pips以上のより大きな拡張へと発展するケースが頻繁に見られます。この場合、ブレイクアウトの動きは元のレンジの深さの約3倍(またはそれ以上)に達してから、明確なリトレースメントまたはリテストが発生することがあります。このようなパターンは、Smart Money Concepts (SMC)およびInner Circle Trader (ICT)の観点とも整合的です。
ただし、この比例関係はすべての市場条件において普遍的な定数ではありません。通貨ペア、時間足、市場環境、ボラティリティ条件によって大きく変動します。たとえば、強いトレンドが発生している状況や重要なニュースイベント時には、1:4や1:5といったより大きな拡張が観測される場合があります。一方で、アジアセッションのような低ボラティリティ環境やレンジ相場では、1:1.5〜1:2.5程度の控えめな拡張に留まることもあります。また、FX、指数、暗号資産、コモディティといった資産クラスの違いによっても、流動性構造や平均的な拡張幅には明確な差異が存在します。
したがって、この統計的関係は厳密なルールではなく、高確率なガイドラインとして扱うべきものです。この内在的な変動性は、適応性の重要性を強調しています。インジケータにRatioMultiplierのような調整可能な入力パラメータを組み込むことで、トレーダーは特定のシンボル、時間足、またはトレードスタイルに最適な閾値を経験的にテストし、チューニングすることが可能になります。例えば「3×」という設定はXAUUSDのM15において最適に機能する場合があり、「2.5×」はGBPJPYのM15に適している可能性があります。また、「4×」はNFPリリースのような高ボラティリティ期間においてより適合する場合があります。
最終的に、この研究の本質的な価値は、変化しない固定的な定数を特定することではなく、設計された流動性ゾーンの規模と、その後に発生するブレイクアウトインパルスとの間に、測定可能で反復性のある関係が存在することを示す点にあります。定量的アプローチが導入される以前は、これらのゾーンはレンジの「タイトさ」やヒゲの集中といった視覚的な手がかりのみに基づいて主観的に評価されることが一般的でした。この変数を定量化することで、客観的なエッジを明らかにすることができます。それは、流動性スイープの後に市場が過去に非対称的なリターンポテンシャルを提供してきたセットアップを特定するというものです。この洞察は、本インジケータの設計における中核的な根拠を提供しています。すなわち、反復可能な機関投資家の行動パターンを、リアルタイムかつカスタマイズ可能なツールへと変換し、トレーダーがより体系的にスマートマネーフローへ整合しやすくするという目的です。
本分析における最も一貫した観察結果は、おおよそ1:3の比率でした。すなわち、インパルス的なブレイクアウトの値幅は、直前の流動性ゾーンの深さの約3倍(またはそれ以上)に達することが頻繁に見られます。この関係は厳密な普遍法則として提示されるものではなく、むしろ高確率なガイドラインとして位置付けられています。このガイドラインは、既存のSmart Money Concepts (SMC)およびInner Circle Trader (ICT)の市場モデルとも高い整合性を示します。実務上では、明確に定義された小規模なコンソリデーションゾーンの後に、残存流動性が掃かれ、マーケット構造がブレイクした際に、より大きく、より急激なディスプレイスメント(価格の拡張)が発生するケースが多く見られます。
このダイナミクスを整理すると、流動性ゾーン → インパルスブレイクアウト(おおよそ1:3)→ 高確率リテスト、という構造になります。これにより、流動性駆動型の価格形成における中心的な現象である「操作 → ディスプレイスメント → リトレースメント」という機関的サイクルを捉える、再現性のある堅牢なフレームワークが得られます。
このフレームワークは、本プロジェクトの次のフェーズの基盤となるものです。それは、理論的インサイトを実用的かつ視覚的なトレードツールへと変換することです。ここで開発するカスタムインジケータは、以下の機能を目的として設計されています。
- 客観的なコンソリデーション条件に基づいて、有効な流動性ゾーンを自動的に検出しハイライトする
- 識別された各ゾーンの深さを測定し、継続的に追跡する
- 条件を満たしたブレイクアウトを認識し、そのインパルスレンジをリアルタイムで計算する
- 観測された1:3の関係性を、ユーザーが完全に調整可能な比率設定とともにチャート上へ可視化する
- 有効なブレイクアウト後に価格が元の流動性バウンダリへ戻ってきた際、潜在的なリテストゾーンをハイライトし、必要に応じてアラートを出す
このロジックをMQL5に実装することで、概念的な観察段階から、実行可能でチャート統合されたモデルへと移行します。その結果として得られるのは、主観性を排除し、ノイズをフィルタリングし、トレーダーが機関投資家のオーダーフローにより体系的に整合できるようにする客観的ツールです。これにより、エントリータイミング、リスクリワード比、そして継続および反転の両シナリオにおけるトレード判断の確信度が向上します。
次のセクションでは実装フェーズへ移行し、このマーケットモデルをチャート上で機能させるために必要なMQL5ロジック、主要変数、ゾーン検出ルール、ブレイクアウト判定条件、そして可視化手法について詳述します。
実装
インジケータの宣言と入力パラメータ
インジケータの先頭では、本ツールのスコープ、目的、および設定可能性を定義します。本インジケータはチャートウィンドウ上で直接動作するよう設計されており、ロジックと可視化の両方を制御する限定された入力パラメータ群を公開します。LookbackBarsやRatioMultiplierといったパラメータは、有効な流動性ベースをどれだけ過去まで遡って探索するか、またインパルス的な値動きがそのベースに対してどの程度の強度を持つ必要があるかを決定します。さらに、色、透明度、バッファスタイル、延長長などの視覚的入力は、基礎となるロジックを変更することなく表示方法のみを調整できるように設計されています。この分離構造により、分析モデルの安定性を維持しつつ、視覚的な好みには柔軟に対応することが可能になります。
#property indicator_chart_window #property indicator_buffers 8 #property indicator_plots 4 input int LookbackBars = 500; input double RatioMultiplier = 3.0; input int ZoneExtendBars = 50; input color DemandColor = clrLimeGreen; input color SupplyColor = clrTomato; input int ZoneOpacity = 40;
グローバル配列とインジケータバッファ
次に、価格データおよびインジケータバッファのためのグローバル配列を宣言します。OnCalculateから渡される配列のみに依存するのではなく、OHLCおよび時間配列を独自に管理する設計であり、実装では必要な価格系列を明示的にコピーして扱います。このアプローチにより、インデックス管理を完全に制御できるようになり、ゾーンを将来方向へ拡張する際の一貫性が保証され、バーとオブジェクトの対応付けにおける曖昧さを排除できます。8つのインジケータバッファはそれぞれ異なる役割を持ち、ゾーン境界の保存、ゾーン存在のシグナル化、そしてライフサイクル管理のための時間情報の保持を担当します。この構造により、本インジケータは視覚的用途だけでなくプログラムからの利用にも対応でき、将来的にEAや他のインジケータから利用される場合でも機能する設計となっています。
double OpenArr[], HighArr[], LowArr[], CloseArr[]; datetime TimeArr[]; // Buffers double DemandHigh[], DemandLow[], SupplyHigh[], SupplyLow[]; double ZoneSignal[], ZoneStartTime[], ZoneEndTime[], ZoneType[];
初期化ロジック(OnInit)
初期化処理では、標準的な価格精度およびフラクショナルプライシングの両方の銘柄に正しく対応できるよう、ポイント値を正規化します。その後、インジケータメタデータを設定し、バッファをバインドします。さらに、レンダリングアーティファクトを防ぐため、すべてのバッファをEMPTY_VALUEで明示的に初期化します。各プロットは個別に構成されており、デマンドゾーンとサプライゾーンが視覚的に区別されつつも、共通のレンダリングスタイルを共有するようになっています。最後に、既に描画されているゾーンはすべて削除され、チャートがクリーンで一貫した状態から開始されることを保証します。これにより、インジケータを読み込むたびに現在の計算結果のみが反映される状態が確保されます。
int OnInit() { IndicatorSetString(INDICATOR_SHORTNAME, "Liquidity Zone 1:3 Model"); SetIndexBuffer(0, DemandHigh, INDICATOR_DATA); SetIndexBuffer(1, DemandLow, INDICATOR_DATA); SetIndexBuffer(2, SupplyHigh, INDICATOR_DATA); SetIndexBuffer(3, SupplyLow, INDICATOR_DATA); SetIndexBuffer(4, ZoneSignal, INDICATOR_CALCULATIONS); SetIndexBuffer(5, ZoneStartTime, INDICATOR_CALCULATIONS); SetIndexBuffer(6, ZoneEndTime, INDICATOR_CALCULATIONS); SetIndexBuffer(7, ZoneType, INDICATOR_CALCULATIONS); ArrayInitialize(DemandHigh, EMPTY_VALUE); ArrayInitialize(SupplyHigh, EMPTY_VALUE); DeleteAllZones(); return INIT_SUCCEEDED; }
クリーンアップおよびオブジェクト管理(OnDeinitおよびDeleteAllZones)
オブジェクトベースのインジケータにおいて、適切なクリーンアップ処理は非常に重要です。本インジケータが削除または再計算される際には、厳格な命名規則に基づいて、このツールによって作成されたすべてのチャートオブジェクトを体系的に削除します。これにより、オブジェクトの蓄積、チャートの視覚的な乱雑化、パフォーマンス低下を防止します。削除ロジックを専用関数に集約することで、再初期化、タイムフレーム変更、手動削除といったあらゆる状況において一貫した動作を保証します。
void OnDeinit(const int reason) { DeleteAllZones(); } void DeleteAllZones() { for(int i = ObjectsTotal(0) - 1; i >= 0; i--) { string name = ObjectName(0, i); if(StringFind(name, "LQ_ZONE_") == 0) ObjectDelete(0, name); } }
ユーティリティ関数:ローソク足レンジおよび時間マッピング
コアロジックの可読性と再利用性を維持するため、共通処理はヘルパー関数として分離します。CandleRange()はバーの高値と安値のレンジ計算を抽象化し、ベースキャンドルとインパルスキャンドルを比較する際の可読性を高めます。GetTimeForBar()は正確な時間マッピングを保証し、特に利用可能なヒストリカルバーの範囲を超えてゾーンを延長する場合に重要な役割を果たします。これは特に、直接的なバーのタイムスタンプがまだ存在しない将来方向へゾーンを投影するケースにおいて重要です。
double CandleRange(int index) { return HighArr[index] - LowArr[index]; } datetime GetTimeForBar(int index) { if(index < ArraySize(TimeArr)) return TimeArr[index]; int delta = index - ArraySize(TimeArr) + 1; return TimeArr[ArraySize(TimeArr) - 1] + PeriodSeconds() * delta; }
ゾーン描画ロジック(DrawZone)
DrawZone()関数は、検出された流動性ベースをチャート上の可視オブジェクトへ変換する役割を担います。ベースとなるローソク足の時間および価格の極値を使用し、ユーザー定義のバー数だけ前方へ延長される矩形を構築します。この関数は、ヒストリカルな描画と将来への投影の両方のシナリオを処理し、適切な色設定および透明度を適用します。また、オブジェクトは非インタラクティブかつバックグラウンド描画として設定されます。これにより、ゾーンは情報としての役割を維持しつつ、手動分析やトレード操作を妨げない形で表示されます。
void DrawZone(string name, datetime t1, datetime t2, double high, double low, color clr) { ObjectCreate(0, name, OBJ_RECTANGLE, 0, t1, high, t2, low); ObjectSetInteger(0, name, OBJPROP_COLOR, clr); ObjectSetInteger(0, name, OBJPROP_BACK, true); ObjectSetInteger(0, name, OBJPROP_TRANSPARENCY, ZoneOpacity); }
ゾーンのバッファ生成(FillZoneBuffers)
矩形オブジェクトは視覚的な明瞭性を提供しますが、バッファはゾーンをデータ駆動的に表現するために使用されます。本関数はバッファ値を矩形のライフサイクルと同期させ、ゾーンの境界およびシグナルマーカーを、ゾーンがカバーするすべてのバーにわたって埋め込みます。専用バッファに開始時刻と終了時刻を格納することで、各ゾーンに対する時間情報を完全に保持します。このように、可視化のためのオブジェクトと、ロジック処理のためのバッファという二重の表現を持たせることで、本インジケータは拡張性を確保し、将来的にEAから利用可能な設計となります。
void FillZoneBuffers(int start, int end, double high, double low, bool isDemand) { for(int i = start; i <= end; i++) { if(isDemand) { DemandHigh[i] = high; DemandLow[i] = low; ZoneType[i] = 1; } else { SupplyHigh[i] = high; SupplyLow[i] = low; ZoneType[i] = -1; } ZoneSignal[i] = 1; } }
バッファメンテナンス(ClearOldBuffers)
市場は常に前進しており、ゾーンには最終的に有効期限が訪れます。本関数は、ゾーンの投影されたライフタイムが経過した時点でバッファ値をクリアすることを保証します。ただし、単純に一括でクリアするのではなく、アクティブなゾーンを誤って削除しないよう、時間の有効性をチェックします。このアプローチにより、メモリはクリーンに保たれ、誤シグナルの発生が防止され、関連性のある構造のみがチャート上に残り、かつアクセス可能な状態が維持されます。
void ClearOldBuffers(int index) { if(ZoneEndTime[index] < TimeCurrent()) { DemandHigh[index] = EMPTY_VALUE; SupplyHigh[index] = EMPTY_VALUE; ZoneSignal[index] = EMPTY_VALUE; } }
コア計算ループ(OnCalculate)
インジケータの中核はOnCalculateに実装されています。この関数内で必要な価格データをコピーし、シリアルインデックスを強制し、ユーザー定義の制限に基づいて処理対象バー数を決定します。アルゴリズムは過去のバーをスキャンし、シンプルでありながら強力なパターンを検出します。それは、コンソリデーションベースの形成の後に、その同方向へ発生するインパルスキャンドルが存在し、そのレンジが事前に定義された比率条件を満たす、またはそれを超えるというものです。この条件が満たされた場合、そのベースとなるローソク足は有効な流動性ゾーンとして分類され、描画およびバッファ処理ルーチンへと渡されます。このロジックは、本研究で特定された1:3の流動性対インパルス比率を直接実装したものであり、統計的インサイトを実用的なチャートベースのシグナルへと変換するものです。
int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[]) { ArraySetAsSeries(time, true); ArraySetAsSeries(high, true); ArraySetAsSeries(low, true); CopyTime(_Symbol, _Period, 0, LookbackBars, TimeArr); CopyHigh(_Symbol, _Period, 0, LookbackBars, HighArr); CopyLow (_Symbol, _Period, 0, LookbackBars, LowArr); for(int i = LookbackBars - 2; i >= 1; i--) { double baseRange = CandleRange(i); double impulseRange = CandleRange(i - 1); if(impulseRange >= baseRange * RatioMultiplier) { bool bullish = CloseArr[i - 1] > OpenArr[i - 1]; string name = "LQ_ZONE_" + IntegerToString(i); datetime t1 = TimeArr[i]; datetime t2 = GetTimeForBar(i + ZoneExtendBars); DrawZone(name, t1, t2, HighArr[i], LowArr[i], bullish ? DemandColor : SupplyColor); FillZoneBuffers(i, i + ZoneExtendBars, HighArr[i], LowArr[i], bullish); } } return rates_total; }
実装に関する最終的な考察
本実装は、過度な最適化よりも明確性と構造的規律を意図的に優先しています。各ロジックセクションは、市場モデルにおける概念的ステップ、すなわち識別、検証、投影、ライフサイクル管理に対応する形で設計されています。このようにコードを段階的に追うことで、コンソリデーション、ディスプレイスメント、リトレースメントといった機関投資家の行動が、どのように決定論的なルールへと変換されているかを明確に理解することができます。さらに重要な点として、本インジケータは高い適応性を維持しています。比率パラメータは調整可能であり、フィルタは追加可能であり、可視化も拡張可能である一方で、コアフレームワーク自体は一切損なわれない構造となっています。
ロジックが完全に定義され実装されたことで、次のステップは理論および構造の段階から、テストによる検証フェーズへと移行することになります。チャート上でこのツールを実際に稼働させることで、異なる銘柄、セッション、ボラティリティ環境において、1:3のベース対インパルスの関係性を観察することが可能になります。複数の通貨ペアや時間足に適用することで、この比率がどの程度一貫して成立するのか、どの条件下で最も機能するのか、そして市場コンテキストによってどのように変動するのかを評価できます。このテストフェーズの目的は、あらゆるシナリオにモデルを強引に適合させることではなく、実践的なエビデンスを収集し、閾値を洗練させ、そして統計的インサイトがライブの価格アクションにさらされたときにも、再現可能でトレードに有意義な挙動として成立するかを確認することにあります。
テスト
エラーなくコンパイルが成功した後、インジケータをライブチャートに適用し、リアルタイムで検証しました。以下のスクリーンキャストでは、機関投資家の参加によって流動性構造が特に顕著に現れる高流動性銘柄であるXAUUSD(ゴールド/米ドル)における挙動を示しています。

図2:XAUUSDmicroにおける流動性ゾーンインジケータのテスト
検出された流動性ゾーンは、実際のプライスアクションと非常に高い整合性を示しました。
- ゾーンは、過去のコンソリデーションレンジ上に正確に配置されました。
- これらのゾーンから発生したブレイクアウトは一貫してインパルス的な値動きを伴い、その多くがデフォルト設定である1:3の比率(ゾーンの深さ対ブレイクアウトの大きさ)を満たすか、あるいはそれを上回る形で推移し、前段の統計的分析の妥当性を裏付ける結果となりました。
特に注目すべき点として、デフォルトの比率設定 (3.0)がXAUUSDにおいてそのまま有効に機能したことが挙げられます。追加調整なしの状態でも、条件を満たすセットアップは明確かつ高確率なゾーンとして検出され、観測される機関的な市場挙動と一致しました。これにより、本モデルが研究段階から実運用へと適切に移行可能であることが確認されました。
さらに重要な観察結果として、条件を満たすセットアップの出現頻度が比較的少ない点が挙げられます。本インジケータは、(強気/弱気のローソク足シーケンス+ブレイクアウトレンジがベースレンジの3倍以上)という厳格な条件を採用しているため、軽微なコンソリデーションやノイズ的な値動きを自然に除外します。この希少性は、過剰トレードを避けたいトレーダーにとって意図的な利点となり得ます。インジケータは、より高い確度を持つ流動性設計構造のみを抽出し、忍耐と選択的エントリーを促す設計となっています。
さらに検証として、よりボラティリティの高い銘柄、特にVolatility Index(75s)でもテストを行いました。研究由来のRatioMultiplier値3.0では、生成されるシグナルはごく少数に留まりましたが、比率を2.0へと引き下げることで、意味のあるゾーン検出が明確に発生するようになりました。一方で、検出された水準に対して価格は依然として明確な反応を示し続けました。
同様の挙動はEURUSDでも観察されました。デフォルト比率では検出されるゾーンは限定的でしたが、倍率を下げることで検出頻度が増加し、より実用的なシグナルが得られるようになりました。これらの観察結果は重要な結論を裏付けています。すなわち、1:3の比率は統計的に強力なベースラインである一方で、最適なパフォーマンスを得るためには適応性が不可欠であるという点です。銘柄ごとのボラティリティ特性や市場構造の違いにより、最適なインパルス対ベース比は変化します。
この結果は、比率パラメータを入力可能な設定として公開した設計判断の妥当性を強く支持します。これによりトレーダーおよび研究者は、固定的なルールに縛られることなく、閾値を調整し、異なる比率を試験し、特定の銘柄に合わせてモデルをキャリブレーションできるようになります。以下の図3および図4は、これらの比較結果を銘柄横断的に示しています。

図3:ボラティリティインデックスでのテスト

図4:EURUSDでのテスト
結論
ベース対インパルス比率という概念を、実際に機能する流動性ゾーンインジケータとして実装することに成功しました。その結果、サプライゾーンであれデマンドゾーンであれ、コンソリデーションベースとその後に続くブレイクアウトインパルスとの間には、明確な構造的関係が存在することが確認されました。前回の研究では1:3の比率が強力な平均値として浮かび上がりましたが、さらなる検証の結果、この比率が普遍的なものではないことも明らかになりました。最適な比率は銘柄や市場環境によって変化するため、固定的な設定がすべての状況で一貫したパフォーマンスを示すとは限りません。
本記事が実践的な洞察を提供できたのであれば幸いです。今後の研究では、これらの概念を完全自動化されたトレードシステムへと発展させ、体系的なテストおよびリアルタイム運用を通じて、その有効性をさらに検証していく予定です。主要な学びと関連資料については、以下に参考情報として掲載します。
重要な学び
| 重要な学び | 説明 |
|---|---|
| 流動性ゾーンとブレイクアウトインパルスの比率は、実在する測定可能なパターンです。 | 本研究では、コンソリデーション/流動性ゾーンの深さと、その後に発生するインパルス的なブレイクアウトの大きさとの間に、繰り返し現れる関係性が一貫して確認されました。多くの高品質なセットアップにおいて、この比率は平均的におよそ1:3となるケースが最も多く観察されました。 |
| この比率は普遍的な定数ではなく、高確率なガイドラインです。 | 1:3という比率は複数の銘柄(例:XAUUSD)において有効な出発点として機能しましたが、実際には通貨ペア、資産クラス、時間足、市場環境によって大きく変化します。そのため、有効なゾーンを見逃さず、かつ不要なノイズを増やさないためには、適切な調整が必要です。例えば、Volatility 75 Indexや方向感の乏しい相場環境では、2.0程度の設定がより適切となる場合があります。 |
| 実用化において最も重要なのは、ユーザー入力による柔軟性です。 | RatioMultiplierを調整可能な入力パラメータとして実装することで、本インジケータはあらゆる銘柄やトレードスタイルに適応可能となります。トレーダーは銘柄ごとに経験的なテストと最適化を行うことができ、単なる統計的観察を、機関投資家の流動性行動と整合する個別最適化された客観的優位性へと変換できます。 |
| 上位時間足の構造は、流動性ゾーンの信頼性を向上させます。 | 流動性ベースおよびインパルスの大きさを上位時間足で定義することで、よりクリーンな構造と安定した比率が得られます。また、そのように形成されたゾーンは、その後に下位時間足で分析を行った場合でも価格から尊重される傾向があり、流動性主導型の市場行動がトップダウン構造を持つことを裏付けています。 |
| 定量化によって、主観的な概念は再現可能なロジックへと変換されます。 | サプライ・デマンドゾーンに関する視覚的な解釈を、ベースレンジ、インパルスの大きさ、比率閾値といった測定可能なルールへ変換することで、曖昧さを排除できます。その結果、一貫した検出、バックテスト、自動化、さらには統計的な改良を継続的に行うことが可能になります。 |
添付ファイル
| ソースファイル名 | 説明 |
|---|---|
| Liquidity_Zone_Indicator.mq5 | コンソリデーションベースとその後のインパルスとの定量化された関係性に基づき、流動性ゾーン(サプライゾーンおよびデマンドゾーン)を検出・可視化するためのMetaTrader 5カスタムインジケータです。コンソリデーションベースを識別し、統計的研究から導出された設定可能な比率倍率を用いてブレイクアウトインパルスを検証し、検出したゾーンをチャート上へ前方投影するとともに、高確率なリテストエリアをハイライトします。複数の銘柄および時間足に適応できるよう設計されており、テスト、キャリブレーション、および将来的な自動化に対応するための各種パラメータを柔軟に調整可能です。 |
MetaQuotes Ltdにより英語から翻訳されました。
元の記事: https://www.mql5.com/en/articles/20986
警告: これらの資料についてのすべての権利はMetaQuotes Ltd.が保有しています。これらの資料の全部または一部の複製や再プリントは禁じられています。
この記事はサイトのユーザーによって執筆されたものであり、著者の個人的な見解を反映しています。MetaQuotes Ltdは、提示された情報の正確性や、記載されているソリューション、戦略、または推奨事項の使用によって生じたいかなる結果についても責任を負いません。
カスタムインジケータワークショップ(第1回):MQL5でSupertrendインジケータを構築する
エラー 146 (「トレードコンテキスト ビジー」) と、その対処方法
初心者からエキスパートへ:流動性ベースの取引戦略の構築
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
その指値注文で価格が成立しなければ、取引は成立しないですよね?しかし、取引が必要であれば、確実に成立させるために成行注文でポジションを開く必要があります。 どこでやっても構いませんが、場所によって結果は大きく異なります。
5ポイントの範囲内で条件付きで1000枚の契約を購入する場合と、50ポイントもの大きなスリッページを伴う場合とでは、違いがあるでしょうか?もちろんあります。後者の場合、より高値で購入することになり、利益も少なくなります。 どんな愚か者でもこの方法で購入するでしょうが、それはプロフェッショナルなやり方ではありません。だからこそ、大規模な市場参加者は、大規模な取引を開始するのに適切な条件が整っている場所と、そうでない場所を判断しなければならないのです。
注文の種類とその調整は基本ですが、実際にはもう少し複雑です。
あなたの論法には、偽の二者択一を構築しているという欠陥があります。 あなたは、大口参加者にとって成行注文が避けられない現実であるかのように想定し、その成行注文によるスリッページの結果を根拠に、流動性ゾーンという概念を正当化しています。これは循環論法です。そもそも成行注文を使用すると仮定したからこそ、「適切な場所」で執行する必要があるという結論に至ったのです。
あなた自身の仮定の質問に対する答えは単純です。「成行注文を使わない」ことです。取引が「必要」な場合でも、希望価格で指値注文を出し、待つのです。約定しなければ、価格を調整するか、取引は成立しないかのどちらかです。 プロの機関投資家が「今すぐどんな価格でも取引しなければならない」と言い、ストップ注文が集中している チャート上のゾーンを探すことでその問題を解決するようなシナリオは存在しません。大口参加者は(高い)レバレッジで取引することはなく、決して急いでいることはありません。
あなたは本質的に、指値注文(流動性を提供する)がすでに解決している問題——成行注文(流動性を消費する)によるスリッページ——を自ら作り出し、その作り出した問題を根拠に流動性ゾーン理論を正当化しようとしているのです。
指値注文の利用、すなわち市場への流動性提供という観点からすれば、流動性を「狩る」や「奪う」必要などありません。彼らは実際に自ら流動性を提供しており、注文を急いで約定させたい参加者たちが来るのを待っているのです。それほど単純な話であり、不必要に複雑にする必要はありません。
問題点は、あなたが偽のジレンマを作り出していることです。あなたは、市場注文が大手参加者にとって避けられない現実であるかのように想定し、その市場注文のスリッページによる影響を、流動性ゾーンという概念を正当化するために利用しているのです。 これは循環論法です。最初に成行注文を使用すると仮定したからこそ、約定のための「適切な場所」が必要だという結論に至ったのです。
あなた自身の仮定の質問に対する答えは単純です。成行注文を使わないことです。取引が「必須」である場合でも、必要な価格で指値注文を出し、待つだけです。 もし約定しなければ、価格を調整するか、取引は成立しないことになります。「今すぐどんな価格でも取引しなければならない」とプロの組織が言い、その後、チャート上でストップ注文が集中しているゾーンを探してこの問題を解決するようなシナリオは存在しません。 「今すぐどんな価格でも取引しなければならない」と言い、その後、チャート上でストップ注文が集中している ゾーンを探してその問題を解決するようなシナリオは存在しません。大口参加者は(高い)レバレッジで取引せず、決して焦ることはありません。
実のところ、あなたは(流動性を消費する)市場注文のスリッページという問題を自ら作り出し、 ——これはすでにリミット注文(流動性を供給する)によって解決されている——という問題を自ら作り出し、この作り上げた問題を流動性ゾーンの理論を裏付けるために利用しているのです。仮に、あなたが市場注文を一切使わず、もっぱら 指値注文だけで 取引しているとしよう。 ある日、価格が上昇し続けるのに追いつくためにリミット注文を引き上げ、どんどん高い価格で買い付けざるを得ない状況に陥るでしょう。結果は同じです:50ピップスの範囲内で、不利な平均価格で買い付けてしまったことになります。
しかし、現実には何が起こるかわかりません。何らかの理由で緊急の必要性が生じ、ただじっと様子を見ているのではなく、今すぐ行動せざるを得ない状況に追い込まれることもあるのです。 より機敏な競合相手に、目の前で必要な流動性を奪われ、市場はあなた抜きで進んでしまうでしょう。価格が上昇すると確信しているなら、そんな事態は許されません。
本質的に、誰もが同じ選択を迫られています。今日、確実ではあるものの少し割安な価格で買うか、それともより良い価格を待つか。しかし、後者を選べば、明日にはより高い価格で買わざるを得なくなるリスクがあります。
だからこそ、どこで流動性が急増するかを把握し、必要な大口取引を成立させることが重要であり、手探りや盲目的な行動は避けるべきです。 価格空間は均一ではなく、場所によって「足元の地盤」の密度が異なる起伏のある地形のようなものです。
だからこそ、必要な大口取引を行うためには、どこで流動性が急増するかを把握することが重要であり、無計画に、あるいは手探りで行動してはならない。価格空間は均一ではなく、場所によって「足元の地盤」の密度が異なる起伏のある地形のようなものだ。
では、どうすればそれを知ることができるのでしょうか? 大口参加者が、次の流動性の急増がどこで起こるかを特定する実際のメカニズムとは何でしょうか?
チャートパターンは、オーダーブックで既に起こった事象を遅れて反映した派生的な表現に過ぎません。現在、潜在的な流動性がどこに存在するかという実際の情報は、ローソク足の形成ではなく、レベル2データ、実際のオーダーブック、タイム・アンド・セールス(T&S)データの中に存在します。
大口取引を行う機関投資家は、そうしたリアルな市場構造データに直接アクセスできる。彼らはプライムブローカーとの取引関係を持ち、実際の資金の流れを把握し、実際のオーダーブック分析に基づいて構築されたアルゴリズム執行システムを利用している。チャートは、その情報の漫画版に過ぎず、しかも遅れて表示されるものだ。
つまり、私たちは元の木阿弥に戻ってしまったのです。リアルマネーが全く注目していない、あるチャート上の架空のレベルに過ぎないのです。
どうしてそれを知っているのですか? 大手参加者が、次にどこで流動性の急増が起こるかを判断する実際の仕組みはどのようなものなのでしょうか?
チャートは、注文簿ですでに起こったことを遅れて映し出す二次的な表現に過ぎません。 流動性が現在どこにあるかという実際の情報は、ローソク足ではなく、レベル2データ(実際の注文板、時間、売買情報)に含まれています。
大口取引を行う機関投資家は、こうしたマイクロストラクチャーに関するリアルタイムデータに直接アクセスできます。彼らはプライムブローカーと提携しており、実際の資金フローを把握し、実際の注文ポートフォリオの分析に基づいて構築されたアルゴリズム執行システムを活用しています。 チャートは、この情報の誇張されたバージョンであり、しかも遅延を伴うものです。
こうして、私たちは出発点に戻ってきた。現実の資金が全く注目していない、あるチャート上の架空のレベルに。
チャートは過去の記録に過ぎない、確かにそうだが:
1) そこには依然としてポジションが残っており、価格がそれらに向かって、あるいはそれらから離れて動くにつれて反応を示すでしょう
2) チャート自体が今後の行動へのシグナルとして機能し、それは過去ではなく、まさに今、市場参加者が一斉に価格チャートを見て意思決定を行っているのです
さらに、 今、あなた自身も、流動性はどこかに存在していると言っていますね。つまり、それはやはり「ゾーン」なのです。なぜなら、他の場所では流動性が不足しているからですよね? そしてこれは貴重な情報であり、自宅でノートパソコンや個人向け取引端末を前にしている一般の人々にはアクセスできないものです。より情報通な市場参加者は、情報に疎い人々の資金を狙っているのです。 これはまさに「狩り」です。なぜなら、市場はお金を創り出すのではなく、ある者から別の者へと分配するだけだからです。
さて、これで私たちは本当に原点に戻りました。あなた自身が、当初反論していた主張を認めているのですから。
流動性の創出についてもっと詳しく知りたいですか? 100年前に株価を吊り上げ、その後、生じた熱狂の中でそれを売り払ったリバーモアについて読んでみてください。これこそが流動性の創出なのです。つまり、売り時である場所で大衆の参加者に買いを促し、その逆も行うことです。 それ以来、何も変わっていません。何かを売るには、それを買ってくれる相手が必要です。そして、その相手に希望する価格で買ってもらうためには、その取引が自分にとって有利であると納得させる必要があります。
もしあなたの名前がJPモルガンではなく、あなたが述べたような非公開情報へのアクセス権がないのであれば、あなたに残された道は、チャートを分析し、その背後にあるものを論理的に推測することだけです。
最も有名な例は、価格の極端な値動きの背後に置くストップ注文です。これは、まさにその地点に指値注文を出し、他人のストップ注文を大量に誘発できる明らかな場所です。他にも、それほど目立たない場所があります。
チャートは物語のようなものですが、 しかし:
1) 価格がその水準に近づいたり離れたりすると反応するポジションが、依然としてそこに存在している
2) チャート自体がさらなる行動のシグナルとして機能しており、それは過去の話ではなく、まさに今、市場参加者が価格チャートを見て判断を下しているのだ
さらに、あなた自身も今、流動性はどこかにあると言っている。 つまり、他の場所には十分な流動性がないからこそ、そこは依然として重要な領域である、ということですね?そして、これは自宅のノートパソコンや個人向け取引端末の前に座っている一般の人々にはアクセスできない貴重な情報です。 知識の豊富な市場参加者は、知識の乏しい参加者から金を奪おうとしています。これはまさに「狩り」です。なぜなら、市場は金を生み出すのではなく、ある者から別の者へと分配するだけだからです。
さて、あなた自身が当初主張していた説を再び主張するに至り、私たちはまさに振り出しに戻ったことになります。
流動性の創出についてもっと知りたいですか?100年前に株を煽り立て、その熱狂に乗じて売却したリバモアについて読んでみてください。流動性の創出とはまさにそれです。つまり、売り時であるはずの場所で大衆に買いを促し、その逆もまた然り、ということです。 それ以来、何も変わっていません。何かを売るには、それを買ってくれる相手が必要です。そして、その相手に自分の望む価格で買ってもらうためには、それが良い取引だと納得させる必要があります。
あなたがG.P.モルガンという名前で、あなたが述べたような非公開情報にアクセスできる立場にない限り、やるべきことはチャートを分析し、その背後にあるものについて論理的な推測を立てることだけです。
人々は実際に同じチャートを見て、同じ水準に反応し、それによって自己実現的なダイナミクスが生まれます。これは事実です。しかし、これが証明するのははるかに弱い事実であり、つまり価格水準が取引を引き寄せるのは、大口投資家が仕組んだからでも、注文帳の意味での構造的な流動性が実際にそこに存在するためでもなく、参加者がそうなることを期待しているからに過ぎない ということです。
繰り返しますが、市場に流動性を提供しているのは成行注文ではなく、指値注文です。 大口参加者が「そこに指値注文を出し、他人のストップ注文で約定させる」ためには、まず価格がその極端な水準に達していなければならない。市場が自然にその水準に達した場合は誰も操作していないことになるし、誰かが意図的に押し上げた場合は、典型的な操作行為であり、規制市場では違法となる。
実際の流動性情報が存在しながらも個人投資家にはアクセスできないという事実が、チャート分析を有効な代替手段にするわけではない。より優れたツールがないからといって、劣ったツールが正当化されるわけではない。それは、体温計を買う余裕がないからといって、ラジエーターに触れることが室温を測る有効な方法だと言うようなものだ。
自己欺瞞を排除することが成功への第一歩だ。だが、どうしてもそうしたいというのなら、どうぞご自由に自分を欺いてください。私には何の影響もありません。