Tollgate Spread Atlas
- 实用工具
- 版本: 1.0
- 激活: 10
Tollgate Spread Atlas 显示在您的经纪商处交易的真实成本。它读取图表品种和最多 8 个观察列表品种的真实 tick 历史,按一周中的小时(周一至周五,服务器时间 24 小时)建立点差地图,将实时点差与当前小时的典型点差比较,并把点差、佣金和隔夜利息换算为往返成本以及在六个周期上占 ATR 的比例。它只读取数据:从不开仓、修改或平仓。
快速开始
- 将工具加载到任意图表(例如 XAUUSD 或 EURUSD)。它从不交易,因此不需要 Algo Trading 权限。
- 读取历史时(Lookback Window,默认 28 天)面板显示 SCANNING TICK HISTORY 和 SCAN 百分比。首次扫描时终端需要下载 tick,可能需要一分钟。
- 扫描完成后,实时卡片显示 LIVE SPREAD、TYPICAL、RATIO 和状态:CHEAP、NORMAL、WIDE 或 SPIKE。
- 将 Cost Calculator Lot Size 设为您常用的手数,并选择 Commission Source。
- 验证方法:将鼠标停在地图单元格上查看提示,或点击 CSV 保存地图。
地图如何建立
- 每个报价的点差(ask 减 bid,取整为点)在到下一个报价之前的秒数内计入,上限为 Max Seconds Credited Per Quote,因此空档和休市不计入。按时间加权,而不是按 tick 数量。
- 每个单元格(星期 x 服务器小时)保存一个点差分布,由此得到 MEDIAN、P90(第 90 百分位)和 MEAN(时间加权平均)。31 点以内数值精确,之后每翻一倍分 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:自服务器午夜以来的最大点差;已读取报价数;历史天数。
成本卡片(ROUND-TRIP COST,账户货币)
- SPREAD:按手数计算的实时和典型点差成本(点 x tick 价值 x 点值 / tick 大小 x 手数)。
- COMMISSION 每手每边,及来源:[HISTORY](来自您的成交)、[FIXED] 或 [NONE]。
- TOTAL:实时和典型往返成本(点差 + 2 x 佣金 x 手数)以及实时合计的点数。
- SWAP / NIGHT 多单(L)和空单(S)按手数计算,以及三倍隔夜利息日(3x WED)。以点或存款货币计的隔夜利息会换算;其他模式显示原始值和单位(货币/LOT、%/YEAR 或 RAW)。禁用时显示 SWAP OFF。
- COST / ATR:实时往返成本(价格)除以最后一根已收盘 K 线的 ATR,乘以 100,适用于 M1、M5、M15、H1、H4 和 D1。低于 5% 为绿色,5-15% 为琥珀色,15% 及以上为珊瑚色;30% 时条形满格。数值高表示成本吞掉了该周期典型 K 线的很大一部分。
按钮
- 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:所有工作日中时间加权平均点差最低和最高的三个服务器小时。
- 周末报价计入 HOUR 和 WEEK 数值,但不绘制。地图每 30 秒刷新。
观察列表
列为 WATCHLIST、LIVE、TYPICAL、RATIO、STATUS 和 COST/ATR H1(实时往返成本相对 H1 ATR)。点击某行可让该品种成为整个面板的焦点(该行高亮)。NOT FOUND = 经纪商无此品种;SCANNING = 历史仍在加载;列表为空时显示 no watchlist symbols。
警报
当某品种(图表或列表)持续 SPIKE 达 SPIKE Must Last 秒时,每个品种在每个 Alert Cooldown 内发送一次警报,例如: [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 毫秒计时器。
- 仅在点击 CSV 时写文件:168 行,包含 day、hour、median_pts、p90_pts、mean_pts、coverage_min(-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(每手每边 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_"):在同一图表运行两个副本时请修改。
- 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 中使用上面的代码。
说明与限制
- 历史深度取决于经纪商;有些只保留几周的 tick。
- 在策略测试器中,地图来自测试器的 tick:使用 "Every tick based on real ticks" 才能看到真实点差。
- 不同经纪商和账户类型的点差不同,过去的点差不代表未来的点差。本工具只衡量成本,不预测价格或结果。交易存在亏损风险。
