A-book、B-book、混合路由、最后确认(last look)、非对称滑点,以及如何衡量你的经纪商是否真正公平地成交你的订单。
经纪商执行透明度是指外汇或差价合约(CFD)经纪商向你展示订单实际如何被路由、定价和成交的程度。当你点击买入时,你的订单并不会沿着一条单一而明显的路径传递。它可能被转给外部流动性提供商(A-book),也可能被经纪商留在内部并由经纪商充当对手方(B-book),或者在两者之间拆分(混合模式)。在此过程中,订单可能因最后确认窗口而被延迟,以比你看到的更差的价格成交(负滑点),被拒绝,或被重新报价。本指南由 BJF Trading Group 维护,逐一解释每个环节,帮助你分辨公平的成交与被操纵的成交。
大多数面向散户的教育内容止步于”你点击,你成交”。实际上,一笔订单要经过一条链路,而每一个环节都可能改变价格、速度和公平性。理解这条链路才是关键所在,因为每一种关于执行的抱怨(滑点、拒单、重新报价、点差飙升),本质上都是针对其中某一个具体环节的抱怨。
一笔市价单的简化生命周期如下:
# 订单生命周期(市价单)
1. 你在交易终端上看到报价 (已因行情源延迟而滞后)
2. 你发送订单 (客户端 -> 经纪商服务器)
3. 经纪商执行路由逻辑 (A-book / B-book / 混合模式决策)
4. 可选的最后确认持有窗口 (接受、拒绝或重新定价)
5. 成交被确认 (按请求价格、更好或更差的价格)
6. 记录持仓和滑点 (这就是你的证据链)
透明意味着经纪商愿意告诉你第 3 步和第 4 步发生了什么,并在第 5 步和第 6 步为你提供可供核实的数据。不透明则意味着你永远只能看到第 6 步,而且只能看到经纪商选择展示给你的那个数字。
经纪商针对你的账户所做的最重要的一个决定,就是把你的订单流放进哪一本”账簿”(book)。这决定了经纪商是在你盈利时获利,还是在你亏损时获利。
| 模式 | 你的订单去向 | 经纪商如何盈利 | 利益冲突 |
|---|---|---|---|
| A-book(STP / 代理模式) | 直接转给外部流动性提供商 | 点差加价和佣金 | 低。经纪商想要的是交易量,而不是你的亏损 |
| B-book(交易商 / 做市商) | 留在内部,经纪商充当对手方 | 你的亏损成为经纪商的收入 | 高。你亏损时经纪商获利 |
| 混合模式 / C-book | 部分订单流内部消化,部分对冲给流动性提供商 | 两者兼有,按客户逐一调整 | 完全取决于信息披露 |
这里有一个几乎没有任何营销页面会承认的细节:B-book 并不自动意味着不好,A-book 也不自动意味着干净。一个运营良好的 B-book 交易台可以为普通交易者提供紧密的点差和即时成交,因为从统计上看,大多数散户账户都会亏损,经纪商没有理由进行干预。而 A-book 经纪商依然可能把你路由到一个缓慢或敌对的流动性提供商,然后以”我们只是转发订单”为借口推卸责任。
真正的透明度问题不是”我在哪一本账簿里?”,而是”经纪商是否会根据我是否盈利来切换我的账簿,并且是否告诉我?”这种悄无声息的切换,正是诚实执行终结的地方。
路由公平时你的账簿归属是公开披露的,或至少是始终一致的。成交价格紧跟可见的市场行情。盈利账户和亏损账户获得相同的点差、相同的速度和相同的滑点表现。 |
路由变得敌对时一旦你开始盈利,你就被悄悄转移到更差的执行路径上。点差只在你的账户上扩大,滑点变成单向的,拒单只出现在本该盈利的交易上。 |
从经纪商的角度看,并非所有订单流都是一样的。”有毒订单流”(toxic flow)是行业术语,指那些相对于对手方持续盈利的订单流,通常是因为交易者拥有经纪商无法低成本对冲的信息优势或速度优势。
风控部门倾向于标记为有毒的订单流包括:
| 订单流类型 | 为什么让经纪商难以应对 |
|---|---|
| 延迟套利 | 交易者依据更快的行情源行动,在经纪商报价跟上之前入场 |
| 新闻交易 | 在定期公布的数据前后,以毫秒级速度捕捉大幅单边行情 |
| 快速剥头皮 | 交易次数多、目标极小,系统性地吃掉过时报价 |
| 多账户关联 | 许多账户在同一时刻按同一信号交易 |
这一点之所以与透明度相关,是因为对有毒订单流的处理,恰恰是未披露的执行变更被施加的地方。一家无法通过内部消化你的订单流获利、又不愿或无法将其对冲给流动性提供商的经纪商,只有三个选择:拒绝它、延迟它,或者降低它的成交价格。除非你在进行衡量,否则这三种做法都是不可见的。
最后确认(last look)是这样一种机制:在你发送订单后,负责成交的一方在已经看到你的请求之后,还拥有一个短暂的窗口来接受或拒绝这笔交易。它起源于机构外汇市场,如今在零售桥接层中也很常见。
这个窗口通常很短,大约从 1 毫秒到几十毫秒不等。在这个窗口内,价格可能会变动。接下来发生的事情才是问题的全部:
| 最后确认窗口内的价格变动 | 对称(公平)的最后确认 | 非对称(敌对)的最后确认 |
|---|---|---|
| 对你有利 | 成交,有时还会获得价格改善 | 被拒绝,或被重新定价到对你不利的方向 |
| 对你不利 | 按相同阈值被拒绝 | 以更差的价格成交 |
| 没有变动 | 按报价成交 | 按报价成交 |
对称的最后确认在两个方向上采用相同的容差,作为一种真正的风险检查是站得住脚的。非对称的最后确认则是”正面经纪商赢,反面你输”。只有在价格变动有利于对手方时你才会成交,而在变动有利于你时则被拒绝。在数千笔交易中,这是一笔巨大而无声的”税”,而在任何单笔成交上看起来都只像是”运气不好”。
你无需任何内部权限就能发现这种不对称。如果你记录下每次请求的请求价格、成交价格或拒单情况,以及请求时刻的市场中间价,数据分布就会说出真相:公平的最后确认会大致对称地拒单,而敌对的最后确认几乎只在即将朝有利于你的方向变动的交易上拒单。
滑点是你请求的价格与实际成交价格之间的差异。滑点本身是正常的,市场总在变动。区分公平经纪商与敌对经纪商的关键,是你的滑点分布的形态,而不是滑点的大小。
将每笔交易的滑点(以点为单位)定义为:
# 正值 = 成交价优于请求价,负值 = 成交价差于请求价 slippage_pips = (fill_price - requested_price) / pip_size * direction # 买入时 direction = +1,卖出时 direction = -1,以保证符号含义一致 # 然后观察大量交易的分布,而不是单笔交易 symmetry_ratio = count(slippage > 0) / count(slippage < 0)
公平执行的特征正滑点和负滑点都会出现。对称比率接近 1.0。价格改善是真实存在的,并且会出现在你的日志中,而不仅仅出现在宣传册里。滑点大小随波动率变化,对盈利交易和亏损交易一视同仁。 |
被操纵执行的特征滑点几乎总是负值。对称比率远低于 1.0。价格改善基本上从不出现。滑点专门在你的盈利交易上和新闻前后飙升,而在亏损交易上则不会。 |
这就是为什么保存你自己的逐笔记录比任何评测网站都更重要。经纪商汇总的”平均滑点”数字可能看起来不错,而你的分布却完全是单向的。平均值掩盖了不对称,分布则将其暴露无遗。
除了最后确认和滑点之外,还有三种工具会在服务器层面改变你的成交结果,而且是在你的订单到达市场之前。
服务器不直接成交或拒绝,而是给你一个新的、更差的价格,并要求你确认。对于快速策略来说,仅仅是重新报价带来的延迟就足以毁掉这笔交易。一家宣传”无重新报价”、却只在你的盈利交易上重新报价的经纪商,实际上是在进行选择性执行。
在流动性稀薄时和新闻前后,点差扩大是正常的。敌对的做法则是仅在检测到盈利模式时,针对特定账户或特定品种扩大点差,然后再收窄。由于这是针对特定账户的,你无法通过与公开图表对比来发现它,只能通过长期记录你自己获得的报价点差来发现。
这类插件是位于你的订单与成交之间的服务器模块,可对目标账户施加可配置的延迟、人为滑点、重新报价概率,或直接拒单。它们的存在正是为了抵消交易台认为有毒的订单流。交易者看不到任何东西,只会看到更差的结果。唯一的防御手段就是衡量:例如,一个给你的账户额外增加 30 到 300 毫秒人为延迟的插件,会在你的执行延迟日志中留下清晰的指纹,而干净的账户则没有这种指纹。
你无法读取经纪商的路由表,但你可以进行受控测试,让数据给出答案。这些测试都不需要特殊软件,只需要一份带有时间戳和价格的交易日志。
至少记录 200 笔交易的请求价格与成交价格。健康的对称比率接近 1.0。如果比率远低于此,且几乎没有正滑点,这就是最强烈的单一信号。
在模拟账户和实盘账户上并行运行完全相同的策略。模拟账户几乎总是纯 B-book,成交只是表面效果。模拟与实盘执行质量之间存在大而持续的差距,就能告诉你实盘订单流实际上是如何被处理的。
记录每次拒单时的中间价。如果拒单集中出现在本该朝有利于你方向变动的交易上,你看到的就是非对称的最后确认,而不是随机的风险检查。
记录从发送到成交的毫秒数。平均延迟突然阶跃式上升,尤其是在你的账户开始盈利之后,表明服务器端增加了延迟。
按品种记录你自己获得的报价点差。与经纪商公开报价不符的、针对特定账户的点差扩大,是被针对的信号。
对有毒订单流的处理在数据公布前后最为激进。如果在新闻窗口期间,只有你的账户的成交、点差和拒单情况急剧恶化,说明交易台把你的订单流视为知情交易。
如果在 0.1 手时执行很干净,但在更大规模时突然出现滑点、重新报价或拒单,说明风控逻辑中存在一个阈值。公平的执行会随流动性平滑地变差,而不是在你的交易量变得举足轻重时出现阶跃式变化。
一旦你不再争论动机,而是开始给数字打分,上述所有内容就都变得可操作了。以下是任何认真的交易者都应针对每家经纪商追踪的核心执行质量指标。
| 指标 | 衡量内容 | 良好表现 |
|---|---|---|
| 成交率 | 已成交订单占已发送订单的比例 | 在各种市场条件下都高且稳定 |
| 拒单率 | 被拒绝订单的比例 | 低,且与你的盈利交易无关 |
| 滑点对称性 | 正滑点与负滑点之间的平衡 | 比率接近 1.0,存在价格改善 |
| 执行延迟 | 从发送到成交的毫秒数 | 低且稳定,长期无阶跃式变化 |
| 重新报价频率 | 你被重新定价的频率 | 接近零,且不针对盈利交易 |
| 有效点差 | 你在每个品种上实际支付的点差 | 与公开报价一致,没有针对特定账户的加价 |
之所以要收集全部六项而不是只看一项,是因为敌对的经纪商可以让任何单一数字看起来都还说得过去。真正能揭示执行路径的,是这些指标的组合,并在长期和不同市场状态下进行一致的评分。这正是 BJF 经纪商执行质量指数(BEQI)背后的逻辑:这是一套开放的方法论,可以把你自己的交易日志和 tick 日志转化为一个可比较的执行评分,从而让两家经纪商能够基于证据而非声誉进行排名。
对于持仓数天的主观波段交易者来说,零点几个点的非对称滑点只是个小麻烦。而对于套利、延迟或新闻策略来说,它就是全部的盈亏。
这些策略通过多次捕捉非常微小、转瞬即逝的优势来获利。每笔交易的平均利润在设计上就极小。这意味着策略的表现取决于它最差的那些成交,而敌对的执行路径恰恰攻击那些本该盈利的交易。正如我们在执行时间差研究中所阐述的,一个在回测中看起来很强的优势,可能仅仅因为额外的执行延迟和非对称成交,在实盘中变为负值,而策略逻辑本身完全没有问题。
实际后果如下:
| 策略 | 敌对执行路径对它的影响 |
|---|---|
| 延迟套利 | 额外的服务器延迟抹除了整个策略赖以生存的毫秒级优势 |
| 新闻交易 | 数据公布前后的选择性点差扩大和拒单,恰好剔除了那些真正带来收益的成交 |
| 快速剥头皮 | 非对称滑点逐笔交易地把正期望值变成负期望值 |
| 配对 / 统计套利 | 单腿成交和重新报价破坏了对冲,让你暴露在无保护的风险之下 |
这就是为什么认真对待执行的交易者会做两件事:他们坚持不懈地衡量自己的经纪商,并且在测试中模拟真实的执行情况,而不是假设完美成交。像 SharpTrader Optimizer 那样,在真实 tick 数据上结合模拟的执行延迟和可变点差进行回测,是在投入资金之前判断一个优势能否经受住真实、不完美的执行路径考验的唯一方法。
不是。B-book 经纪商可以提供紧密的点差和即时成交,而且对于大多数散户交易者来说,根本不存在任何干预。风险在于未披露的切换:一旦你开始盈利,你的执行质量就会悄悄下降。问题不在于模式本身,而在于隐瞒。
滑点是指以不同于请求价格的价格成交。最后确认是成交前的一个短暂窗口,对手方在看到你的订单后,可以在此窗口内接受、拒绝或重新定价。非对称的最后确认是单向滑点和选择性拒单的常见来源。
你可以建立有力的证据。为每笔交易记录请求价格、成交价格或拒单情况、市场中间价以及执行延迟。如果滑点系统性地为负、拒单集中在你的盈利交易上,并且在你开始盈利时延迟出现阶跃式上升,那么即使无法访问经纪商的服务器,数据也足以清楚地说明问题。
仅凭这些并不能说明。这些标签描述的是一种路由模式,而不是其背后流动性的质量,也不能说明你的特定账户是否正在被过滤。与其相信标签,不如自己衡量成交率、滑点对称性和延迟。
模拟服务器通常模拟近乎完美的成交。实盘订单流,尤其是被交易台视为有毒的订单流,可能会被路由到延迟、非对称最后确认或执行过滤器之后。模拟与实盘之间大而持续的差距,本身就是衡量你的实盘订单流如何被处理的一种指标。
这是一个通用术语,指对目标账户施加可配置延迟、人为滑点、重新报价概率或拒单的服务器端模块。它被用来抵消经纪商无法通过对冲获利的订单流。它的指纹会以额外的、针对特定账户的执行延迟形式出现在你的日志中。
新文章、研究论文和产品发布,在我们发布时第一时间送达。涵盖经纪商执行、延迟套利和新闻交易,并附上背后的数据。