Axioryのスプレッド×ATR比較による“市場参加量の測定”について

Axioryのスプレッド × ATR(Average True Range)比較で「市場参加量(=流動性/トレード活性度)の相対評価」を行う方法を、概念→指標設計→実装(MT4/MT5/Pine)→売買フィルター→バックテスト/注意点まで、実用レベルで詳しくまとめます。長めですが実戦で使えるテンプレつきです。

目次

概要 — なぜSpread×ATRで“参加量”が測れるのか

  • スプレッドは流動性の“粗さ”。広いほど流動性が薄く、約定コストや滑りのリスクが高い。
  • ATRは一定期間の実際の価格変動(ボラティリティ)を示す。ATRが大きいと「動いている」相場。
  • これらを組み合わせると、「動いているけどスプレッドが狭い=参加量が多く価格変動に対して提供板が厚い(参加者多数)」や、「動いているがスプレッドが広い=参加者少・流動性不足で動きが脆い」などが見える。

直感的には ATR(動き)に対してスプレッド(摩擦)が小さいほど“市場参加量が高い” と判断できます。
そのため下のような指標を作ります(後で詳細):

  • Participation Index (PI) = ATR / Spread
  • Liquidity Friction (LF) = Spread × ATR ← これは「ボラ×摩擦」の絶対値で、極端値(大)だと注意

指標設計:使いやすい候補(定義・単位)

※ATRはpips(通貨ペアなら通常ピップ換算)で揃えてください。スプレッドも同じ単位に。

  1. Participation Index (PI) PI=ATRNSpreadinstantPI = \frac{ATR_{N}}{Spread_{instant}}PI=Spreadinstant​ATRN​​
    • 解釈:大きいほど「変動に対して摩擦が小さい」=参加量が多い(良環境)。
    • 例:ATR(14)= 12 pips、Spread = 0.3 pips → PI = 12 ÷ 0.3 = 40(高い)
  2. Spread-to-ATR Ratio (SAR) SAR=SpreadinstantATRNSAR = \frac{Spread_{instant}}{ATR_{N}}SAR=ATRN​Spreadinstant​​
    • PIの逆。小さいほど良好。
    • 例の数値:0.3 ÷ 12 = 0.025(= 2.5%)
  3. Liquidity Friction (LF)(あなたの言う“Spread×ATR”) LF=Spreadinstant×ATRNLF = Spread_{instant} \times ATR_{N}LF=Spreadinstant​×ATRN​
    • 絶対的な“摩擦の総量”。大きいと「ボラもスプも大きい=荒れやすい/不安定」。
    • 例:0.3 × 12 = 3.6 (pips^2 のような単位・解釈は相対比較で)
  4. 標準化 zスコア(時間帯・ペアごとに有効)
    • PIやLFの過去分布(例えば過去30日、同時間帯)に対し z = (値 − μ)/σ を計算し、極端値を検出。

数値例(必ず桁ごとに計算:正確に)

例1(流動性良好):

  • ATR14 = 12.0 pips
  • Spread = 0.30 pips
    PI = 12.0 ÷ 0.30
    → 12.0 ÷ 0.30 = 12.0 ÷ 0.3
    まず 12.0 ÷ 0.3 = 40.0
    PI = 40.0(高い=参加量多)

LF = 0.30 × 12.0
→ 0.3 × 12 = 3.6
LF = 3.6

例2(流動性薄め):

  • ATR14 = 8.0 pips
  • Spread = 1.2 pips
    PI = 8.0 ÷ 1.2
    → 8.0 ÷ 1.2 = 8.0 ÷ 1.2
    計算:1.2 × 6 = 7.2、1.2 × 6.666… = 8.0 → 結果約 6.6667
    PI ≈ 6.6667(小さい=参加量少)

LF = 1.2 × 8.0 = 9.6
LF = 9.6(大きい=荒い摩擦×ボラ)

この2例で言えること:PIが高くLFが小さい場面が「参加者多/取れる場面」。逆は注意。


判定ルール(実務で使える閾値)

※Axiory/通貨ペアごとに調整必須。まずは目安。

  • PI > 20 → 良好(参加量高)。順張りやスキャルで有利。
  • 10 ≤ PI ≤ 20 → 中立。追加条件(ティック増、トレンド確認)を要求。
  • PI < 10 → 流動性低・危険。短期エントリーは原則回避。
  • LF > LF_threshold(過去分布の上位10%) → 注意(荒い)。LFが高くてもPIが高ければ状況に応じて可。

これらは初期設定。必ず過去データで通貨ペア・時間帯別に最適化してください。


エントリーフィルターへの組み込み(実践テンプレ)

以下は「Spread×ATRで市場参加量を測ってからエントリー可否を決める」標準フロー:

  1. データ取得
    • ATR_N(例:14)をチャートのpipsで算出(Nは14推奨)。
    • Spread_instant = Ask − Bid(リアルタイム)。可能ならティック平均で平滑化。
  2. 指標計算
    • PI = ATR / Spread
    • LF = ATR × Spread
    • PI_z = (PI − μ_PI_window)/σ_PI_window(任意)
  3. フィルター条件(例)
    • エントリー許可(順張り) = (PI > 20) AND (LF < 上位10%閾値ではない) AND (価格方向性確認)
    • 逆張り許可 = (PI > 15) AND (レンジ判定 = true) AND (ティック減少→スプ縮小確認)
  4. 実際のエントリー
    • Entry only when filter = true AND price signal (breakout/retest/oscillator) = true.
    • SL/TPはスプレッド依存で可変に(例:SL = max(Spread×k, ATR×m))。

例:順張りでPI基準を使う

  • ATR14 = 10pips、Spread = 0.4pips → PI = 25 → Entry OK(ただしトレンド確認が必要)

ストップ・利確の設計(スプレッド依存)

  • SLはスプレッドの影響を受けるので動的に: SL=max⁡(ATR×0.3, Spread×10, 固定最小pips)SL = \max(ATR \times 0.3,\ Spread \times 10,\ 固定最小pips)SL=max(ATR×0.3, Spread×10, 固定最小pips) 例:ATR=12 → ATR×0.3 = 3.6 pips。Spread=0.3→ Spread×10 = 3.0 pips → SL = max(3.6,3.0)=3.6 pips
  • TPはリスク比で設定(守備的):例えば R:R = 1:1.5〜1:3。ATRベースでも可(TP = ATR×0.5など)。

可視化・インジケーター実装(MT4/5・Pineの設計方針)

表示項目(チャート上)

  • 瞬時スプレッド(ライン)
  • ATRライン(同スケールpips)
  • PIライン(右軸)とその移動平均(MA)
  • PIの色分け(PI>20 緑、10-20 黄、<10 赤)
  • LFを背景ヒートマップ化(高→赤)

Pseudo(ロジック)

  • 毎ティックで Spread = Ask-Bid
  • ATR calc (period N)
  • PI = ATR/Spread (protect divide-by-zero with tiny eps)
  • PI_sma = SMA(PI, M)
  • If PI > PI_threshold then allow_entries=true else false

必要なら具体的な MQL4 / MQL5 コードまたは TradingView (Pine Script) のサンプルを作ります(要望あれば作成)。


バックテストのやり方(必須)

  1. ティックデータで再現(スプレッドはティック原点で再現。生成データ不可)
  2. 時間帯別で評価(東京早朝、ロンドン、NY)
  3. 通貨ペア別(USD/JPY, EUR/USD, GBP/JPY など)
  4. 指標回避ルールを組み込む(指標前後の除外)
  5. 統計指標:勝率、PF(プロフィットファクター)、期待値、最大ドローダウン、スリッページ平均
  6. 感度分析:PI閾値を変えて(例:10→15→20→30)、安定領域を探る

重要:スプレッドは過去でも時間帯依存・イベント依存で変動するため、固定スプレッドでのテストは信用できません。ティックと当時のAsk/Bidを使うこと。


実例シナリオ(解説)

シナリオA(順張り)

  • 通貨:EURUSD、日本時間 17:10(ロンドンオープン)
  • ATR14 = 18.0 pips、Spread = 0.4 pips → PI = 18 ÷ 0.4 = 45 → 良好
  • 価格が移動平均を上抜けかつ出来高(ティック)増加 → エントリー可。SL = ATR×0.3 = 5.4 pips、TP = ATR×1 = 18 pips(R:R ≈ 3.33)

シナリオB(回避)

  • 通貨:GBPJPY、早朝(薄商い)
  • ATR14 = 6.0 pips、Spread = 1.5 pips → PI = 6 ÷ 1.5 = 4 → 不良(回避)

(数値は上の計算法に従って逐一算出)


注意点・落とし穴

  1. 分母ゼロ・極小スプレッド:Spreadがゼロや極小のときPIが過大になる。小さい閾値 eps を入れて保護する(例:Spread_safe = max(Spread, 0.01 pips))。
  2. スプレッドの“瞬間ノイズ”:ミリ秒での瞬間スパイクをそのまま使うとダマシになる。スプレッドの短期MA(例:MA(Spread, 3-5 ticks))で平滑化推奨。
  3. ペア依存性:通貨ペアや口座(Nano/ECN)で普段のスプレッド・ATRの桁が全然違う。必ず通貨別プロファイル化。
  4. 指標・流動性イベント:指標直後はPIが高くても暴騰するケースがある。必ず指標フィルター。
  5. ブローカー仕様・滑り:Axioryは比較的スプレッドが正直だが、実際の約定パフォーマンスは口座タイプ・時間で差が出る。実トレード前にデモで検証。
  6. 過学習に注意:閾値を過度に最適化すると将来に効かない。複数期間、複数相場で堅牢性確認を。

まとめ(実用チェックリスト)

  • ATRとSpreadを同単位(pips)で揃える。
  • 主要指標:PI = ATR / Spread(参加度高→良)とLF = ATR × Spread(荒さの絶対量)。
  • PI閾値でエントリー可否をフィルタ(例:PI>20)。
  • Spreadは短期平滑化、分母ゼロ保護、時間帯・通貨別プロファイルを必須。
  • ティック/Ask-Bidベースのバックテストで検証。
  • SL/TPはATR依存で動的に。

                 \AXIORYなら入金手数料が無料!/

目次