自己测点差和滑点:用 100 单记录验证平台有没有坑你
43.6 万笔站内报价 · 100 次延迟成交模拟 · 四个字段的记录表 | XAUAD · 2026 年 10 月更新
「平台是不是在坑我」这个问题,几乎每个做过短线的人都问过。但绝大多数时候,答案不是「被坑」,而是成本结构你从来没量过:你以为自己在交易方向,其实每一笔都在先付一笔固定费用,而这笔费用相对于你所交易的周期到底有多大,你只有一个模糊的感觉。
这篇不讲道理,只给方法。用 XAUAD 自己报价库里 2026-10-18 到 10-24 的 436,527 笔 Swissquote 报价做标尺,先量出「正常」长什么样;再给你一张 100 单记录表,让你用自己的成交记录对上这把尺子;最后用真实的报价序列模拟 1 秒延迟的成交,看滑点到底占多少。结论先说:在这个样本里,坑你的不是滑点,是点差相对于你交易周期的比例。
① 站内报价库
quotes 表 Swissquote 源,2026-10-18 14:04:58 → 2026-10-24 23:42:31(北京),共 436,527 笔,相邻两笔中位间隔 1.28 秒(p90 1.4 秒),查询时间 2026-10-24 23:45(北京)② 同库近 30 天 481,226 笔,用于统计点差异常值(p99 与最大值)
③
/api/config 读取于 2026-10-24 23:42(北京):bid 3,997.559 / ask 3,998.221,点差 0.662 美元(约 1.66 个基点)④ 各到期收益率(同一次读取):60 秒 0.68、300 秒 0.80、600 秒 0.82、900 秒 0.85、1800 秒 0.88、3600 秒 0.90
⑤ 1 分钟与 5 分钟振幅:由同一报价库按分钟 / 5 分钟聚合,分别得到 9,147 个分钟段与 1,832 个 5 分钟段,口径为段内最高 mid 减最低 mid
⑥ 滑点模拟:在同一序列上随机抽 100 个时点,按「下单后 1 秒成交」取下一笔 ask,与下单时 ask 相减
一、先分清三个词:点差、滑点、拒单
这三个词被混用得最厉害,但它们对应三种完全不同的成本,混在一起谈,就永远算不清账。
- 点差(spread)= 卖价 ask − 买价 bid。它是确定性成本:每一笔、无论盈亏、无论行情,只要开仓就先付掉。你买在 ask、卖在 bid,等于一进场就逆着半个点差。
- 滑点(slippage)= 你看到的价 − 你成交的价。它是不确定性成本:可能为零、可能对你不利、偶尔对你有利(正滑点)。它的大小取决于报价在你按下到成交之间的那几百毫秒里走了多少。
- 拒单(rejection)= 报价失效,单子没成交。它不花钱,但会让你错过你想要的价,而且容易诱发「追单」——追单往往又制造新的滑点。
为什么必须先分清?因为它们三个的量级差了一个数量级。下面这张表是本文样本的核心读数,同一个 0.662 美元,放在不同周期上完全是两回事:
| 对照项 | 数值 | 点差 ÷ 该项 | 含义 |
|---|---|---|---|
| 1 分钟中位振幅 | 1.02 美元 | 64.9% | 做 1 分钟,点差吃掉近三分之二的常态波动 |
| 1 分钟 p90 振幅 | 2.51 美元 | 26.4% | 波动偏大的分钟里,成本占比才降到四分之一 |
| 5 分钟中位振幅 | 2.58 美元 | 25.7% | 周期拉长 4 倍,占比降到四分之一左右 |
| 60 秒中位移动幅度 | 0.38 美元 | 174% | 点差比 60 秒的常态移动还大 1.7 倍 |
| 半个点差 | 0.331 美元 | 87%(对 60 秒中位) | 一进场就先欠这么多,中位那一笔刚够跨过去 |
口径:振幅 = 段内最高 mid − 最低 mid,「移动幅度」= 相隔 60 秒的两个 mid 之差的绝对值中位数(4,609 个样本)。数据源见文首取样说明。
这张表已经把结论写完了:点差本身不是问题,「点差 ÷ 你的持仓周期」才是问题。所以下面所有的测试方法,目的都是把这一个比值算出来,而不是去纠结「点差 0.66 算不算高」——单独看这个数,它既不高也不低,它只是一个分子,没有分母就没有意义。
二、100 单记录表:四个字段,一张表
很多人「测滑点」的方式是凭记忆:赚了就是行情好,亏了就是平台滑点。这不叫测,这叫回忆。要能验证,必须在下单前就把字段定义好,成交后立刻填。四个字段足够:
| 字段 | 怎么记 | 为什么必须记 |
|---|---|---|
| ① 下单时刻(精确到秒) | 截图带系统时间,或记平台成交回报里的毫秒时间戳 | 没有时间戳,就无法回去查「同一秒的公开报价」,后面三步全部作废 |
| ② 下单时看到的 bid / ask | 按下确认之前那一帧的两个价,不是成交价 | 这是你的「预期成交价」。滑点 = 成交价 − 这个价 |
| ③ 实际成交价 | 成交回报里的 fill price,不是事后看图表估的 | 成交价是唯一有法律意义的数字,图表上看到的是 mid |
| ④ 目标盈利(美元) | 这一笔你打算赚多少,先写下来 | 有了它,点差才能换算成「吃掉目标盈利的百分之几」 |
再加两个可选字段,做满 100 单后你会发现它们比前四个更能说明问题:成交耗时(按下到回报,毫秒)和当时是否处在数据公布后 5 分钟内。前者解释滑点,后者解释异常值。
采样纪律有三条,比字段更重要:
- 按四个时段各 25 单,不要一晚连做 100 单。北京 00–06 的 1 分钟中位振幅只有 0.67 美元,21–24 是 1.52 美元,两者差 2.3 倍。混在一起算平均值,等于把两件不同的事平均成一个不存在的数。
- 100 单里至少要有 10 单落在数据公布窗口。非农、CPI 公布那几秒的点差是常态的 60 倍以上(本文第六节有实测),这类样本不进样本池,你就会误以为平台「一直很稳」,然后在最需要知道真相的那一分钟被打穿。
- 记录期间不要改策略。如果你一边测一边调仓位、调到期,最后算出来的滑点里混进了策略变化,就分不清是平台的锅还是你的锅。
三、判据一:点差稳不稳 —— 用 43.6 万笔报价当标尺
先看「正常」长什么样。下面是站内报价库近 7 天的点差分布,全部由 bid 与 ask 现算,没有任何估计:
| 统计量 | 近 7 天(436,527 笔) | 近 30 天(481,226 笔) |
|---|---|---|
| 中位 | 0.662 | 0.662 |
| p90 | 0.663 | —(p90 未单独统计) |
| p95 | 0.822 | — |
| p99 | 0.823 | 3.000 |
| 最大 | 2.758 | 57.00(2026-10-15 15:36 北京) |
| 点差 > 1 美元的占比 | ≈0(7 天内最大 2.758) | 4.52% |
| 点差 > 2 美元的占比 | ≈0 | 2.447% |
数据源:站内 quotes 表 Swissquote 源;近 7 天窗口 2026-10-18 14:04:58 → 10-24 23:42:31(北京),近 30 天窗口同库回溯至 2026-09-25;统计时间 2026-10-24 23:45(北京)。7 天窗口的 p90 与中位几乎重合(0.663 vs 0.662),说明这一周的点差极度稳定——恰好是「正常状态」最好的参照。
把这张表当尺子用,判据很直接:
- 你的点差中位应该落在 0.66 附近。如果你记录到的中位是 1.2 或 2.0,而同一时段公开报价是 0.66,那就是账户级别加点差,去问客服要书面解释。
- 你的 p99 应该在 1 美元以内,除非样本里有数据公布。7 天窗口的 p99 是 0.823,最宽一笔 2.758。如果你的 p99 是 10 以上,先翻记录看这 10 笔是不是都在 20:30 或 02:00——大概率是,那就不是平台问题。
- 看「最宽那一笔发生在几点」。平台动手脚通常发生在流动性最差的时段(北京 04:00–08:00 维护前后、周五收盘前),而全市场的点差扩张发生在数据公布时刻。两者的时间特征完全不同,这是最好用的区分方法。
顺带说一个容易被忽略的事实:这一周 14.6% 的分钟是零振幅的(9,147 个分钟段里有 1,339 个最高价等于最低价)。在这种分钟里,0.662 的点差不是「吃掉一部分波动」,而是吃掉全部波动——你无论做多做空,60 秒后价格大概率还站在原点附近,而你已经付了半个点差。
四、判据二:滑点有多少 —— 先解决「同一秒的合理成交价」
测滑点最难的一步不是统计,是找到一个可以对照的价。你不能用「我觉得应该成交在 4,000.00」当基准,那是主观的。三种可用的对照价,按可靠性排序:
- 同一时刻的公开报价源。最硬。要求两个条件:一是能取到秒级时间戳,二是它和你的平台报价源不同(否则同源同错,对照没有意义)。本文用的就是站内 Swissquote 连续报价(中位 1.28 秒一笔)。
- 你自己平台的报价快照。次优,但只能测「成交价 vs 下单时报价」,测不出平台整体偏移。优点是人人都有。
- 成交前后的 K 线极值。最弱,只能做粗筛。如果成交价落在当分钟最高价之上(买单)或最低价之下(卖单),可以判定至少方向不利,但量不出多少。
有了对照价,滑点的定义要写死:买单滑点 = 成交 ask − 下单时 ask;卖单滑点 = 下单时 bid − 成交 bid。两边都取正数表示对你不利,负数表示正滑点。注意不要用 mid 算——mid 里没有点差,用它算出来的「滑点」会把点差重复计算一次,这是最常见的错误。
还有一个陷阱:把点差扩张当成滑点。数据公布那一刻,ask 从 4,196.88 跳到 4,240.08,如果你此刻市价买入成交在 4,240.08,按上面的公式算出来的「滑点」是 43.20 美元。但这 43.20 里绝大部分是点差扩张,不是滑点。所以记录表必须同时存 bid 和 ask,事后才能把两个成分拆开:点差部分(当时 spread − 常态 spread)归因于市场,剩余部分才归因于成交质量。
五、实测:1 秒延迟下,100 次的滑点分布
光有方法不够,得先知道「正常值」的量级,否则你拿到自己的数据也不知道该不该怀疑。所以我在同一段报价序列上做了一次模拟:随机抽 100 个时点当作「按下确认」的时刻,取 1 秒后的第一笔 ask 当作成交价,与按下时的 ask 相减。结果:
| 指标 | 数值(美元) | 怎么读 |
|---|---|---|
| 滑点中位 | 0.000 | 一半的样本,1 秒后价格根本没动到你的成交价 |
| 滑点均值 | −0.014 | 略为负,即平均而言对买方有利 1.4 美分 |
| p90 | 0.142 | 只有 10% 的样本滑点超过 14 美分 |
| 最不利一笔 | 0.56 | 仍小于一个点差(0.662) |
| 最有利一笔 | −0.70 | 正滑点可以比点差还大 |
| 朝不利方向移动的比例 | 44 / 100 | 不到一半,接近抛硬币 |
方法:在 2026-10-18 14:04:58 → 10-24 23:42:31(北京)的 436,527 笔 Swissquote 报价上随机抽 100 个时点(固定随机种子,可复现),成交价取「按下时刻 + 1.0 秒」后的第一笔 ask。这测的是延迟 1 秒的滑点,不是 0.1 秒,也不是 7 秒;延迟越长,分布越宽。取样时间 2026-10-24 23:45(北京)。
这组数字值得读三遍,因为它和大多数人的直觉相反:在常态行情下,1 秒延迟的滑点中位是零,均值甚至是负的。44% 的样本朝不利方向走,56% 没走或朝有利方向走——这就是一个没有信息的随机过程应有的样子。真正让你亏损的,是那个 100% 确定的 0.662 点差,不是这个 50% 概率为零的滑点。
那为什么很多人坚信自己被滑点坑了?因为人只记得不利的那几笔。样本里最不利的一笔是 0.56 美元,占 1 分钟中位振幅的 55%,痛感极强;而最有利的 −0.70 美元那笔,会被记成「我抓得准」。100 单记录表的最大价值,就是把这个记忆偏差纠正过来——表格不记得痛,只记得数。
六、判据三:极端时刻的表现(30 天 4 次点差 > 40 美元)
常态的 0.66 不是全部真相。同一份 30 天数据里,点差超过 40 美元的时刻有 4 次,每次都发生在几分钟内:
| 时间(北京) | 点差峰值 | 是常态的 | 特征 |
|---|---|---|---|
| 2026-10-15 15:36 | 57.00 | 86 倍 | 非整点,疑似报价源切换 |
| 2026-10-02 20:30 | 43.20 | 65 倍 | 整点,非农公布 |
| 2026-10-16 22:20 | 42.50 | 64 倍 | 非整点 |
| 2026-10-14 20:30 | 42.20 | 64 倍 | 整点,美国数据公布 |
数据源:站内 quotes 表 Swissquote 源,2026-09-25 → 10-24 共 481,226 笔,取点差最大的 4 笔;「是常态的」= 峰值 ÷ 近 7 天中位 0.662。查询 2026-10-24 23:45(北京)。表中只陈述报价记录本身,不推断原因。
这 4 笔说明两件事。第一,极端点差是全市场现象:20:30 那两笔正好卡在数据公布,任何一家做市商都一样会撤单重报,这不是哪家平台在黑你。第二,真正的风险不是「点差高」,而是「你在点差高的时候下单」。43.20 美元的点差,对应 5 分钟中位振幅 2.58 美元的 16.7 倍——那一刻做市价单,等于把 16 根 K 线的波动当手续费交出去。
所以判据三其实是一条纪律:记录表里凡是点差超过 3 美元的样本,单独列一组,不要混进总平均。3 美元是这 30 天数据里 97.6% 分位附近的位置(点差 > 2 美元占 2.447%),越过它,基本可以判定你处在异常窗口。
七、把点差换算成胜率:打平线怎么算
前面所有数字,最后都要落到一个问题上:这么高的成本,我需要多准才能不亏?算两步。
第一步,算打平胜率。平台每个到期的收益率是已知的(/api/config 可读),打平所需胜率 = 1 ÷(1 + 收益率)。读数是 2026-10-24 23:42(北京):
| 到期 | 收益率 | 打平所需胜率 | 同期随机进场实测命中率(买 / 卖) |
|---|---|---|---|
| 60 秒 | 0.68 | 59.5% | 25.3% / 27.5% |
| 300 秒 | 0.80 | 55.6% | 30.2% / 34.5% |
| 600 秒 | 0.82 | 54.9% | —(未单独模拟) |
| 900 秒 | 0.85 | 54.1% | 31.3% / 38.5% |
| 1800 秒 | 0.88 | 53.2% | — |
| 3600 秒 | 0.90 | 52.6% | — |
打平胜率 = 1 ÷(1 + 收益率),例:60 秒 1 ÷ 1.68 = 59.5%。右侧实测命中率来自同一报价序列:每 120 秒取一个时点,买单按当时 ask 进场、到期看 mid,卖单按当时 bid 进场、到期看 mid,样本 4,602–4,609 个。收益率取自平台配置,可能调整,以当时页面为准。模拟时间 2026-10-24 23:45(北京)。
第二步,读懂那个命中率为什么会这么低。25.3% 不是「市场只有四分之一的概率上涨」——同期上涨和下跌的比例几乎对半(17.2% 对 18.4%)。低的原因是你买在 ask、卖在 bid:到期时 mid 必须涨过 0.331 美元,你这笔买单才算赢。而 60 秒内 mid 移动幅度的中位数只有 0.38 美元,一半的时间连这半个点差都跨不过去。于是「上涨 50%」被压缩成了「涨过半个点差 25.3%」。
把这两步合起来看,打平线就非常具体了:做 60 秒,你需要 59.5% 的胜率,而随机进场的基准是 25.3%——中间那 34 个百分点,就是你必须在方向上赚出来的真实优势。做 900 秒,基准升到 31.3%,打平线降到 54.1%,需要赚出的优势缩小到 23 个百分点。周期每拉长一档,点差对你的伤害就减一档,这不是巧合,是 0.331 这个固定门槛在更长的窗口里被更高的波动稀释了。
八、五个信号,出现两个就该换平台
测完 100 单,不要用「感觉」下结论,用这五条对照。出现两条以上,再考虑换:
- 点差中位明显偏离 0.66。同期公开报价 0.662,你的中位是 1.2 以上,且不是数据窗口造成的——账户级加点差。
- 滑点中位长期高于点差的一半。本文实测 1 秒延迟的滑点中位是 0.000。如果你的中位是 0.3 以上,说明成交价系统性偏离报价,不是运气问题。
- 成交价总是落在区间的极值。把 100 单的成交价与当分钟 K 线的高低点对照:如果买单 80% 以上成交在当分钟最高价附近,这不是滑点,是成交机制问题。
- 拒单集中在你能赚钱的时刻。偶发拒单正常(报价失效);但如果拒单总出现在行情朝你有利的一侧,而反向单从不被拒,这是选择性执行。
- 出金与报价同时恶化。点差异常 + 出金变慢 + 客服口径反复,这三件事同时出现时,先出金再谈其他。出金流程的排查方法在《出金被卡住了怎么办》里有逐条清单。
反过来,有三种情况不该算在平台头上:数据公布那几秒的点差爆炸(全市场同步,本文第六节有 4 次实录)、周末开盘的跳空(报价从上周五收盘直接跳到周一开盘,中间没有成交,滑点是必然的)、以及你自己用市价单去接一根 40 美元的 K 线。
九、60 秒到 5 分钟:这组数字怎么用
把本文所有读数压成三条能立刻执行的动作:
动作一:先看时段再决定周期。同一个 0.662,在 21:00–24:00 只占 1 分钟中位振幅的 43.5%,在 00:00–06:00 要占 98.8%。所以短周期只适合放在重叠时段做;午夜那几个小时,要么不做,要么把周期拉到 15 分钟以上。各时段的振幅与点差实测在《黄金几点做最好》里有逐段对照。
动作二:下单前算一次「点差 ÷ 目标盈利」。这一步 10 秒就能做完,但 90% 的人跳过。假设你目标赚 3 美元,点差 0.662,成本占 22%;目标赚 1 美元,成本占 66%——后者要求你的胜率高出 20 多个百分点才成立。目标盈利小于 2 美元的单子,在 0.66 的点差下基本没有数学上的生存空间。
动作三:异常窗口只做限价,不做市价。点差超过 3 美元时不追价(本文 30 天数据里这类时刻占 2.4%)。等它回到 1 美元以内再动手,通常只需要 30 秒到 2 分钟——2026-10-02 那次,点差从 43.20 回到 0.70 只用了 30 秒。等这 30 秒,是本篇性价比最高的一个动作。
如果你还想知道「不同平台之间到底差多少」,各家公开信息的核实结果在《黄金点差对比》里逐家列了来源与抓取日期;想一次看清一笔单子的全部成本(点差 + 隔夜利息 + 杠杆放大),看《黄金交易成本全拆解》。现在这一刻的实时买卖价与点差,直接看今日金价页。
十、三个常见误区
误区一:点差越小越好,所以要去点差 0.1 的平台。点差 0.1 通常意味着另外收费(佣金、隔夜费、或者更差的成交质量)。要比的是总成本:点差 + 佣金 + 隔夜费 + 滑点,四项加完再看。单看一项,很容易被引到另一个坑里。
误区二:正滑点是我本事大。本文样本里最有利的一笔是 −0.70 美元,比点差还大。那不是本事,那是报价在那 1 秒里朝你希望的方向走了。把正滑点当能力,会导致你在下一次不利滑点时加倍怀疑平台——而两者其实是同一个随机过程的两个尾巴。
误区三:100 单太多,做 10 单就能看出问题。10 单的样本量下,中位数的标准误大到没有意义:本文 p99 与中位差 0.16 美元,10 个样本根本分辨不出来。100 单是最低门槛,而且要分时段;如果你想验证「平台是否只在数据窗口动手脚」,那 100 单里至少要有 10 单落在窗口内,否则你连一个像样的子样本都没有。
十一、常见问题
Q. 黄金点差多少算正常?
A. 分两层看。绝对值:站内 436,527 笔报价的近 7 天中位是 0.662 美元、p99 是 0.823。占比:同期 1 分钟中位振幅只有 1.02 美元,0.662 等于吃掉 64.9%。所以「0.66 很小」只在 5 分钟以上成立,做 1 分钟时它是最大的成本项。
Q. 滑点多少算正常?
A. 常态行情下应该显著小于点差。1 秒延迟的 100 次模拟里,滑点中位 0.000、均值 −0.014、p90 0.142,44% 的样本朝不利方向。滑点中位长期高于点差的一半(0.33),才需要怀疑成交质量。
Q. 自己测要多少单?怎么分层?
A. 100 单起步,四个时段各 25 单(北京 08–14、15–20、21–23、00–06),其中至少 10 单落在数据公布窗口。分层的原因:午夜 1 分钟中位振幅 0.67 美元、重叠时段 1.52 美元,混算平均值会把两件不同的事抹成一个不存在的数。
Q. 点差吃掉多少胜率?
A. 60 秒到期、收益率 0.68,打平要 59.5% 的胜率,而随机进场实测命中率只有 25.3%(买)/27.5%(卖)。拉到 900 秒,命中率升到 31.3%/38.5%,打平线降到 54.1%。周期越短,点差的相对伤害越大。
Q. 怎么判断是平台坑我还是市场正常?
A. 看时间特征。全市场的点差扩张集中在数据公布时刻(本文实录 2026-10-02 20:30 的 43.20 美元、10-14 20:30 的 42.20 美元),且几分钟内恢复;平台动手脚通常发生在流动性最差的时段,而且只针对你的账户。另外,把成交价与当分钟 K 线高低点对照,能直接看出是否存在「总成交在极值」的模式。
quotes、/api/config 接口与同一序列的统计结果,报价随行情实时变化,历史分布不代表未来;收益率取自平台配置,可能调整。本文的 100 单方法为记录与统计方法建议,不构成对任何平台成交质量的结论。