金融科技与交易
面向经纪商、基金和交易公司的 FIX 连接:托管网络、授权引擎,还是自建网关
FIX 是什么,哪些版本重要,托管网络做什么、你要放弃什么,以及运行一个引擎需要做哪些事。文中还谈到协议在哪里结束、你自己的工作从哪里开始,延迟、会话中断、欧盟和美国的义务、FINRA 指引、什么时候该自建、离开时你能保留什么,以及该向供应商问哪些问题。
作者:amBrain阅读需 10 分钟
本文内容
FIX 是 Financial Information Exchange(金融信息交换)的缩写,是交易公司用来发送订单、接收成交回报的标准报文格式。FIX 连接,就是通往每家经纪商或交易场所的那条可用链路:一个始终保持登录、中断后能恢复且不丢失任何一条消息的会话。你可以从托管网络租用这条链路,也可以授权一个 FIX 引擎自己运行,或者自建网关。无论选哪种,都要为人员、与每个交易对手的测试,以及必须有人值守的时间预留预算。
先说结论:如果你很快需要连接许多交易对手(你与之交易的经纪商和交易场所),而你的优势不在连接上,就用托管网络或连接服务商。如果你只连几家交易场所,并且有能在市场开盘时段随时待命的工程师,就授权一个引擎。只有当你测试过的产品都满足不了某项能带来收益的需求时,才自建网关。无论哪种情形,都要问清楚会话中断时,你未完成的订单会怎样。
FIX 是什么,由谁维护?
FIX Trading Community 称自己是“FIX 协议的保管者”。它把这些标准描述为“用于电子交易和交易处理的开放、技术中立的规范”。这个协议“规定了交换哪些业务信息,以及这些信息的含义”,涵盖股票、固定收益、外汇和衍生品的订单、成交、报价和行情数据。
实际中有两层很重要。应用层承载业务消息,比如新订单或成交报告。会话层负责保持链路畅通。FIX Trading Community 关于技术标准的页面说,这个协议“通过会话,在双方之间实现可靠的双向通信”,消息有序,序列号连续。
2026 年哪些 FIX 版本重要?
FIX Trading Community 表示:“强烈建议各公司使用 FIX Latest。”它还补充说,对于有旧版实现的公司,“FIX Trading Community 仍然支持 FIX 协议 4.2 和 4.4 版本”,其他版本则不再受支持。你用哪个版本,由你的交易对手决定。运行 4.2 的经纪商,不会因为你喜欢更新的版本就升级,所以在选任何产品之前,先列出每个交易对手提供的版本。
托管 FIX 网络或连接服务商做什么?
你只需连接一次服务商,由服务商维护与另一端的经纪商、交易场所或客户之间的会话。以下是各服务商自己的描述,于 2026 年 11 月 10 日查阅。
- Broadridge 提供“通过我们基于网页的界面,对 FIX 交易对手进行自动化接入和即时认证”,并称你可以“以全托管或部分托管的方式部署”。
- Iress 把它的 FIX Hub 描述为“端到端的全托管服务,接入省力,并支持 FIX 消息处理”,让你“通过一家连接合作伙伴、一次连接和认证”接入交易对手。
- Rapid Addition 的 RA Hub“支持本地部署、云端或混合部署”,所以要核实由谁来持有这些会话。它称,其交易对手连接产品旨在“简化并加快客户接入,改善客户体验,缩短交易准备时间”。
请用你自己的交易对手来检验每一项说法。这三个页面都没有标明价格。
使用托管服务商,你要放弃什么?
你放弃的是对订单所走路径的控制,以及对变更时间的控制。你的订单要经过别人的服务器。Iress 提到“FIX 消息处理”(FIX manipulation),Broadridge 的托管服务使用“标准化服务”(a normalization service)。我们的理解是,两者都指服务商在传输途中修改消息,不过两个页面都没有说明改哪些字段、怎么改。要问清楚它到底改哪些字段,以及你能否并排看到原始消息和修改后的消息。
如果服务商宕机,你需要另一条路径,去撤销在交易场所上仍在执行的订单。请让对方以书面形式给出这套流程。
运行授权的或开源的 FIX 引擎需要做什么?
引擎是一个替你处理 FIX 会话层的库。OnixS 把它的引擎描述为 .NET、C++ 和 Java 版本的“金融信息交换(FIX)协议高速实现”。它们附带“可插拔的会话状态和消息存储”的示例代码,并以“低成本、全面支持的订阅方式”提供。它的页面没有标明价格,并提供免费的 30 天评估。开源引擎不收许可费。QuickFIX/J 的页面把提问引向一个邮件列表和一个 Stack Overflow 标签。QuickFIX 项目网站也列出了商业支持,所以你要么购买支持,要么靠自己的员工。
引擎只是工作中较小的一部分。下面这些,你仍然要自己运行:
- 对每个交易对手的会话管理:连接时间、凭证和序列号重置。
- 消息存储,这样重启之后,你能回应重发请求,也就是交易对手要求补发它漏收的消息。
- 与每家交易场所或经纪商的认证,当某项变更可能影响连接或其消息时,需要重新认证。
- 监控,在会话中断时能很快通知到人。
- 人员,或者值班轮换,覆盖你所交易的市场开放的每一个小时。
什么是认证,它的有效期多长?
认证是交易场所或经纪商在允许你的软件实盘交易之前设置的一项测试。ASX 表示:“所有客户应用在接入生产市场之前,都必须通过 ASX 一致性测试流程。”它要求你的软件“在预约测试之前,已处于可投入生产的状态”。它还保留“阻止不合规软件接入生产系统的权利”。
这项测试不是一次性的。ASX 列出了客户必须重新测试的几种情形,其中包括软件“以任何可能影响或直接冲击 ASX 连接或消息的方式被修改”。要问托管服务商,它此前与某交易场所做过的测试,是否适用于你的订单,还是你必须自己再测一次。
协议在哪里结束,你自己的工作从哪里开始?
FIX 是一个标准,但每个交易对手都会加上自己的规则。FIX Trading Community 正是为此建立了 FIX Orchestra。它“被构想为交易对手之间机器可读的交互规则”,旨在缩短接入一个新交易伙伴所需的时间。规则手册只有在交易对手公开发布时才有用。ASX 和伦敦金属交易所(LME)以 PDF 文档的形式发布了它们的规则。
两份已公布的交易场所和经纪商文档,显示出各家规则可以相差多远。Paxos 在其加密资产经纪业务文档中写道:“默认启用断线撤单。”它还“每周对所有会话强制断开并重置序列号”。伦敦金属交易所的规范在登出时有所不同:网关“不会自动撤销”用户的非持久化订单。用户可以通过每个订单上的一个标志,要求在连接丢失时撤单。
你自己的工作是订单状态:你的系统认为每个订单处于什么状态,以及交易对手的看法与你不同时你怎么办。每个交易对手都需要一份映射,把它的消息对应到你的状态,涵盖拒绝、部分成交、成交之后才到达的撤单,以及修改。引擎或托管网络替你写不了这个,因为它取决于你的业务规则。
延迟什么时候重要?
当你的利润取决于抢先拿到一个价格时,它就很重要。对于转发客户订单的经纪商,或者用几个小时慢慢执行订单的基金,可靠性通常更重要。OnixS 把它的引擎描述为“专为关键任务、超低延迟、高频交易基础设施而设计”。这是供应商的说法,它的页面没有给出任何数字。
请自己去测。在交易繁忙的一天,记录你的系统发出订单的时间,和对应的成交报告返回的时间。托管网络会把服务商的系统放进这条路径,只有你自己的数字才能说明这对你是否有影响。另见我们关于毫秒为何在交易中重要的文章,以及关于交易所托管机房的文章。
订单进行到一半会话中断,会怎样?
可能出现四种情况。订单可能根本没有到达交易场所。它可能仍在那里执行。它可能已经成交,全部或部分,只是回报在返回途中丢了。或者交易场所看到断线后把它撤销了。你的系统必须弄清是哪一种,而且不能把订单发两次。
会话层能帮上忙。对于会话期间出现的缺口,LME 的规范说:“客户端可以使用重发请求(35=2)消息,来恢复任何丢失的消息。”在中断后登录时,它说缺口应当自动补齐,并且“任何一方都不应基于传入登录消息的 MsgSeqNum (34) 生成重发请求(35=2)”。它还说,它的网关“不处理客户端发起消息的可能重发”。它补充说:“任何带有重复 ClOrdID (11) 的消息,都会因客户订单 ID 唯一性检查而被拒绝”。所以,网关会拒绝重复使用同一标识符的重试,而以新标识符发来的,则当作正常订单处理。在你用新标识符再次发送之前,先弄清楚第一个订单怎么样了。
签约之前,请和供应商一起做这个测试:在有订单正在执行时断开连接,重新连上,然后比对双方各自认为的状态。自建的团队应当把它写成脚本,并在每次发布之后重复执行。
连接市场时适用哪些义务?
规则因国家以及你的公司类型而异,所以请把这一节当作与律师交谈的一张地图。这些引文并不是各项制度的全部。
- 欧盟。MiFID II 第 17 条,即欧盟的金融工具市场指令,由欧盟市场监管机构 ESMA 发布在其在线规则手册中。它规定,从事算法交易的投资公司“应当设有有效的系统和风险控制”,使其系统“具有韧性,并具备足够容量”。使用高频技术的公司,必须保存“其所下全部订单(包括订单撤销)的准确且按时间顺序排列的记录”。
- 欧盟测试。第 2017/589 号授权条例第 6 条,即 RTS 6,是为从事算法交易的投资公司而写的,规定公司“应当测试其算法交易系统和交易算法”与交易场所的一致性。这包括“首次通过赞助接入安排连接该交易场所时”。赞助接入是指在另一家公司的交易代码下,不经过该公司的基础设施,直接向交易场所发送订单。第 12 条要求具备以下能力:“作为紧急措施,立即撤销”公司所连接的所有交易场所上未执行的订单。
- 美国。SEC 规则 15c3-5 要求拥有市场准入的券商“建立、记录并维护一套风险管理控制和监督程序体系”。这些控制必须“经合理设计”,以“通过拒绝超出适当价格或数量参数的订单,防止错误订单进入”。它们还必须“处于该经纪商或交易商的直接且专属的控制之下”。有一项例外,允许公司通过书面合同,把特定的监管控制分配给身为注册券商的客户。首席执行官“应每年对其作出证明”。
- FINRA。2015 年 3 月 26 日发布的监管通知 15-09,列出了对采用算法交易的公司建议的有效做法。其中包括“测试独立于代码开发进行”,以及“公司可以据此迅速停用算法或配套平台的机制”。
在英国,FCA 2025 年 8 月 21 日发布的一份审查说,算法交易公司“须按 RTS 6 第 6 条,测试其算法与交易场所或直接市场准入提供方系统的一致性”。审查报告了一些公司的反映,称这些程序“因交易场所而异,差别很大”。本文没有引用 FCA 手册,所以请向你的律师询问其中关于算法交易的章节。
视监管制度和公司的交易方式而定,这些规则可能意味着:有办法撤销所有交易场所上的全部订单,有带时间戳的订单记录,以及有测试的证据。托管服务商可以提供其中的一部分。
什么时候自建网关才有道理?
当某项能带来收益的需求,超出了你测试过的所有产品时,就该自建。可以留意这些信号:
- 你的订单状态逻辑是策略的核心,而会修改消息或让消息排队的服务商,会碍你的事。
- 你需要在每个订单发出之前,在发送它的同一个进程内运行风控检查,就像我们那篇关于交易前风控热路径的文章所讲的。
- 把几年里所有会话上的托管网络费用加起来,高于一个运行自有系统的团队的成本。
不要因为引擎许可费看起来贵就自建。无论走哪条路线,认证、监控和市场开盘时段的值班轮换都仍然在你身上。我们那篇关于终端的文章,描述了自有 FIX 核心的一般设计。
离开服务商时,你能保留什么?
这取决于合同,所以要在开始之前谈定。问清楚你的认证是否属于服务商的会话,这样换一条路线就意味着重新测试。问清楚消息历史存放在哪里,以及每个交易对手登记的凭证和网络地址,用的是谁的名字。
签约之前,要求导出每一条消息,格式要可读。要求有在交易对手同意下接管会话的权利,并且通知期要长到足够重新测试。使用引擎,会话和历史都归你;自建的话,如果合同这样写,代码也归你。
该向供应商,或者替你搭建的公司问什么?
- 我们的交易对手中,你们已经连接了哪些?你们能展示哪些 FIX 版本和认证日期?
- 你们在传输途中会修改哪些字段?我们能否看到每条消息的两个版本?
- 如果我们这边或你们那边的会话中断,我们正在执行的订单会怎样?你们能现场演示吗?
- 我们自己的员工能否不必打电话给你们,就撤销所有交易场所上的全部订单?
- 消息历史存放在哪里,保留多久,我们能以什么格式导出?
- 当我们更改自己的软件,或者交易场所更改规则时,由谁重新做认证?
- 每个市场的开盘时段由谁值班?书面的响应时间是多少?
amBrain 在其中处于什么位置?
amBrain 发布这个博客。它这样描述自己交易方面工作的一部分:“amBrain 构建算法交易基础设施:订单执行、行情数据和交易前风控。”它面向交易和金融科技的服务卡片列出了“交易终端开发、订单管理系统和 FIX 协议交易所对接”。这只是服务描述。
amBrain 自 2019 年起开发软件。关于与客户的合作方式,它说:“三种合作方式:整体交付、专属团队,或工程师嵌入你的团队。”它关于所有权的说法是:“客户拥有产品与代码的全部所有权,我们的可复用组件除外。”签约之前,请要求它逐项列出这些组件的名称。
本文不是案例研究,也没有描述任何客户的工作。这里没有任何内容表示 amBrain 曾为哪个客户构建过 FIX 网关、连接产品或托管网络。引文来自 FIX Trading Community、上文提到的供应商和交易场所、ESMA、FINRA、FCA、美国联邦法规汇编(US Code of Federal Regulations)和 legislation.gov.uk 已发布的页面。本文不声称 amBrain 与其中任何一家有关系,不推荐它们的任何产品,也没有给出 amBrain 的价格或时间安排。
这也不构成法律或投资意见。请与你交易所在各个市场的律师一起核查适用于贵公司的规则。如果 amBrain 在你的候选名单里,请像对待其他公司一样,把同样的问题也问它。
主题
- FIX 协议
- FIX 连接
- 交易基础设施
- 自建还是购买