Tollgate Spread Atlas
- ユーティリティ
- バージョン: 1.0
- アクティベーション: 10
Tollgate Spread Atlas は、お使いのブローカーでの取引に実際いくらかかっているかを表示します。チャート銘柄と最大 8 つのウォッチリスト銘柄の実際のティック履歴を読み込み、曜日と時間別のスプレッドマップ(月曜から金曜、サーバー時間 24 時間)を作成し、現在のスプレッドを現在時間の典型的なスプレッドと比較し、スプレッド、手数料、スワップを往復コストと 6 つの時間足での ATR に対する割合に換算します。読み取り専用で、取引の発注、変更、決済は一切行いません。
クイックスタート
- ユーティリティを任意のチャート(例: XAUUSD や EURUSD)に適用します。取引しないため Algo Trading の許可は不要です。
- 履歴の読み込み中(Lookback Window、既定 28 日)は SCANNING TICK HISTORY と SCAN の割合が表示されます。初回はターミナルがティックをダウンロードするため 1 分ほどかかることがあります。
- 完了するとライブカードに LIVE SPREAD、TYPICAL、RATIO と状態(CHEAP、NORMAL、WIDE、SPIKE)が表示されます。
- Cost Calculator Lot Size を普段のロットに合わせ、Commission Source を選びます。
- 動作確認は、マップのセルにマウスを置く(ツールチップ)か、CSV を押してアトラスを保存します。
アトラスの作り方
- 各気配のスプレッド(ask から bid を引いた整数ポイント)を、次の気配までの秒数だけ計上します。上限は Max Seconds Credited Per Quote で、空白や市場休止中は加算されません。ティック数ではなく時間で重み付けします。
- 各セル(曜日 x サーバー時間)はスプレッド分布を保持し、そこから MEDIAN、P90(90 パーセンタイル)、MEAN(時間加重平均)を求めます。31 ポイントまでは正確で、それ以降は 2 倍ごとに 16 段階です(下限値を表示)。
- 典型スプレッド = 現在のセルの中央値。セルが Minimum Coverage For A Cell に満たない場合は全曜日の同じ時間、さらに週全体を使います。出典は [CELL]、[HOUR]、[WEEK] で表示されます。
- Add Live Quotes To The Atlas が有効なら、気配が新しい間、各銘柄の現在スプレッドを毎秒追加します。
- アトラスはサーバー日ごとに Daily Rebuild Hour で履歴から再構築され(期間がずれます)、RESCAN を押したときにも再構築されます。
状態のルール
RATIO = 現在スプレッド / max(典型, 1 ポイント)。超過 = 現在 - 典型。
- SPIKE: RATIO が SPIKE From 以上、かつ超過が Minimum Excess For WIDE / SPIKE 以上。
- WIDE: RATIO が WIDE From 以上で、同じ超過条件。
- CHEAP: RATIO が CHEAP Below 未満。
- NORMAL: それ以外。
- NO DATA: まだ気配がない、または典型スプレッドがない。
超過条件により、raw や ECN 口座(典型 0-2 ポイント)が小さな変化で反応するのを防ぎます。
パネル
ヘッダー
- LED: 緑またはティール(NORMAL、CHEAP)、琥珀色(WIDE またはスキャン中)、赤(SPIKE)、灰色(NO DATA)。
- TOLLGATE SPREAD ATLAS、フォーカス銘柄、SERVER TIME(時間はすべてブローカーのサーバー時間)。
- [-] でパネルを TSA、銘柄、比率、状態を示す小さなバーに最小化し、[+] で戻します。
ライブカード
- LIVE SPREAD(ポイント、3/5 桁銘柄では pips も表示)。
- TYPICAL と出典 [CELL]、[HOUR]、[WEEK]、RATIO、状態バッジ。
- 典型スプレッドの 0 から 3 倍までのメーター(METER 0-3x)。CHEAP Below、WIDE From、SPIKE From に白い目盛り。
- TODAY MAX: サーバー時間の 0 時以降の最大スプレッド、読み込んだ気配数、履歴日数。
コストカード(ROUND-TRIP COST、口座通貨)
- SPREAD: 指定ロットでの現在と典型のスプレッドコスト(ポイント x ティック価値 x ポイント / ティックサイズ x ロット)。
- COMMISSION 1 ロット片道あたりと出典: [HISTORY](ご自身の約定から)、[FIXED]、[NONE]。
- TOTAL: 現在と典型の往復コスト(スプレッド + 2 x 手数料 x ロット)と現在合計のポイント換算。
- SWAP / NIGHT 買い(L)と売り(S)のロットあたり金額とトリプルスワップ曜日(3x WED)。ポイントまたは入金通貨のスワップは換算し、他のモードは単位付きの元の値(通貨/LOT、%/YEAR、RAW)を表示。無効時は SWAP OFF。
- COST / ATR: 現在の往復コスト(価格)を最後の確定足の ATR で割り 100 倍した値。M1、M5、M15、H1、H4、D1 について表示。5% 未満は緑、5-15% は琥珀色、15% 以上はコーラル。30% でバーが満杯。高い値は、その時間足の典型的な 1 本の大部分をコストが占めることを意味します。
ボタン
- METRIC: MEDIAN / METRIC: P90 / METRIC: MEAN でマップの指標を切り替えます。
- RESCAN で手数料を再読込し、全アトラスを履歴から再構築します。
- CSV でフォーカス中のアトラス(スキャン後)を MQL5\Files\Tollgate_<SYMBOL>.csv に保存します。
- ALERTS ON / ALERTS OFF でこのセッションの SPIKE アラートをオン・オフします。
- click cell = pin: セルを固定できることの案内です。
ボタンでの変更は、再初期化(時間足変更、再適用、再起動)時に入力値へ戻ります。
マップ(HOUR-OF-WEEK ... SPREAD)
- 行は MON から FRI、列はサーバー時間 00-23。色 = セル値 / 週全体の同じ指標(WEEK MEDIAN、WEEK P90、WEEK MEAN): 0.6x 以下はティール、1.0x は緑、1.6x は金色、2.6x 以上はコーラル。暗いセル = データなし(カバレッジが最小値未満)。
- 金色の枠 = 現在の時間(now)。白い枠 = 固定したセル。
- ツールチップ: セルの中央値、P90、平均、カバレッジ。セルをクリックすると固定、もう一度クリックで解除。
- 詳細行: NOW(現在のセル)または PINNED と MEDIAN、P90、MEAN、COVERAGE。
- CHEAPEST HOURS と DEAREST HOURS: 全曜日での時間加重平均スプレッドが最も低い、最も高いサーバー時間の上位 3 つ。
- 週末の気配は HOUR と WEEK の値に含まれますが描画されません。マップは 30 秒ごとに更新されます。
ウォッチリスト
列は WATCHLIST、LIVE、TYPICAL、RATIO、STATUS、COST/ATR H1(現在の往復コストと H1 ATR の比)。行をクリックするとその銘柄がパネル全体のフォーカスになります(行が強調表示)。NOT FOUND = ブローカーにその銘柄がない、SCANNING = 履歴を読み込み中、リストが空のときは no watchlist symbols。
アラート
銘柄(チャートまたはリスト)が SPIKE Must Last 秒間 SPIKE のままのとき、銘柄ごと、Alert Cooldown ごとに 1 回アラートを送ります。例: [Tollgate Atlas] XAUUSD spread SPIKE 51 pts = 5.1x typical 10 pts (THU 23:00 server) エキスパートログに出力され、Terminal Pop-Up Alerts、Audible Alerts(alert.wav、ポップアップに独自の音があるためポップアップがオフのときのみ)、Push Notifications To Mobile(ツール、オプション、通知 で MetaQuotes ID を設定)で通知されます。
他の EA 向けフラグ(ターミナルのグローバル変数)
Publish Terminal Global Variables が有効なら、スキャン後に毎秒、銘柄ごとに:
- TSA_<SYMBOL>_RATIO: 現在 / 典型。
- TSA_<SYMBOL>_TYPICAL: 典型スプレッド(ポイント、-1 = データなし)。
- TSA_<SYMBOL>_OK: 1 = CHEAP または NORMAL、0 = WIDE または SPIKE、-1 = NO DATA。
ユーティリティを削除すると消去されます。
if(GlobalVariableCheck("TSA_EURUSD_OK") && GlobalVariableGet("TSA_EURUSD_OK") == 0)
return; // spread is WIDE or SPIKE: skip new entries 副作用
- ウォッチリスト銘柄を気配値表示に追加します。Object Name Prefix 付きのチャートオブジェクトを作成します(ユーティリティと一緒に削除)。250 ms のタイマーを使います。
- CSV を押したときだけファイルを書きます: day、hour、median_pts、p90_pts、mean_pts、coverage_min の 168 行(-1 = データなし)。
入力パラメーター
- Lookback Window(28、3-90 暦日): 銘柄ごとに読む履歴。
- Max Seconds Credited Per Quote(60、5-600): 気配ごとの上限。
- Minimum Coverage For A Cell(15 分): これ未満のセルはデータなしとなり、典型値は代替を使います。
- Heatmap Metric(Median Spread): 起動時の Median Spread、90th Percentile Spread、Time-Weighted Mean Spread。
- Add Live Quotes To The Atlas(true): ライブ学習。
- Daily Rebuild Hour(3、サーバー時間、-1 = しない): ロールオーバー後の日次再構築。
- CHEAP Below(0.85)、WIDE From(1.5)、SPIKE From(2.5): 比率のしきい値。
- Minimum Excess For WIDE / SPIKE(5 ポイント)。
- Cost Calculator Lot Size(1.0)。
- Commission Source(From Account History): From Account History、Fixed Per Lot Per Side、No Commission。
- Fixed Commission(1 ロット片道 3.5): 履歴に約定がない場合の代替値でもあります。
- Commission History Window(90 日)。
- ATR Period For Cost Burden(14)。
- Watchlist Symbols("EURUSD,GBPUSD,USDJPY,XAUUSD"、最大 8、サフィックスを含むブローカーの正確な名前)。
- Alert On SPIKE(true)、SPIKE Must Last(5 秒)、Alert Cooldown(15 分)。
- Terminal Pop-Up Alerts(true)、Push Notifications To Mobile(false)、Audible Alerts(true)。
- Publish Terminal Global Variables(true)。
- Object Name Prefix("TSA_"): 1 つのチャートで 2 つ動かす場合に変更します。
- HUD Chart Corner(Top Left、Top Right、Bottom Left、Bottom Right)、HUD X Offset(16)、HUD Y Offset(24)ピクセル。
- Panel Scale(1.0、0.5-2.5): Windows のスケーリングに加えるサイズ倍率。
- Start Minimized(false)。
代表的な設定
- M1 スキャルピング: Heatmap Metric 90th Percentile Spread、WIDE From 1.3、SPIKE From 2.0、Minimum Excess For WIDE / SPIKE 2。CHEAPEST HOURS に取引し、M1 の COST / ATR を確認。
- ゴールド: Lookback Window 42、SPIKE From 3.0、Minimum Excess For WIDE / SPIKE 15、Alert Cooldown 30、Push Notifications To Mobile true。
- raw または ECN 口座: Heatmap Metric Time-Weighted Mean Spread、Commission Source From Account History、Minimum Excess For WIDE / SPIKE 5。
- EA のフィルター: Alert On SPIKE false、Publish Terminal Global Variables true、上記のコードを EA に追加。
注意事項と制限
- 履歴の長さはブローカー次第で、数週間分のティックしか保存しない場合もあります。
- ストラテジーテスターではテスターのティックからアトラスを作ります。実際のスプレッドを見るには "Every tick based on real ticks" を使ってください。
- スプレッドはブローカーや口座タイプで異なり、過去のスプレッドは将来を保証しません。本ユーティリティはコストを測定するもので、価格や結果を予測しません。取引には損失のリスクがあります。
