mcpField
E
exchange-connectivity

exchange-connectivity

github.com/joellewis开发218679 次安装15 周前更新
代码仓库

关于 exchange-connectivity

面向开发交易基础设施的团队,介绍交易场所连接、FIX 会话管理和市场数据馈送等主题。内容涵盖直接市场接入、专有协议、冗余与故障切换等实践。

主要功能

  1. 01直接市场接入与赞助接入
  2. 02FIX 会话消息及序列号管理
  3. 03交易所专有协议概览
  4. 04市场数据深度层级
  5. 05连接冗余与故障切换

适用场景

  1. 01规划交易场所接入架构
  2. 02排查 FIX 会话序列缺口
  3. 03选择市场数据深度级别
  4. 04设计备用连接与恢复流程

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/joellewis/finance_skills --skill exchange-connectivity

安装后在 Claude Code 中输入/exchange-connectivity确认已加载。

附带文件references/examples.md

详细介绍

交易所连接

核心概念

交易场所连接架构

交易场所提供电子接口,供经纪交易商、做市商和机构参与者提交订单并接收执行报告。企业与其执行交易场所之间的连接架构是交易基础设施的基础组成部分。

直接市场接入(DMA): DMA 允许企业将订单直接发送至交易所的撮合引擎,无需通过其他经纪商的订单管理系统进行中介。企业需与交易所维护自己的 FIX 会话(或专有协议连接),并负责交易前风险控制。拥有交易所会员资格的经纪交易商和自营交易公司会使用 DMA。

赞助接入: 在赞助接入安排中,非会员企业通过赞助经纪交易商的市场参与者识别码(MPID)向交易所路由订单。根据 SEC Rule 15c3-5(《市场接入规则》),赞助经纪商负责交易前风险控制。赞助接入可以是“经过筛查”的(订单在到达交易所前通过赞助方的风险检查),也可以是“未经筛查”的(订单绕过赞助方系统,直接发往交易所,赞助方则依赖交易所层面的风险控制)。SEC 实际上通过 Rule 15c3-5 禁止了未经筛查的赞助接入;该规则要求提供市场接入的经纪交易商实施风险管理控制和监督程序,并且这些措施应合理地旨在防止错误订单进入市场。

FIX 协议连接: 金融信息交换(FIX)协议是股票、期权、固定收益和外汇市场中用于订单路由和执行报告的主流标准。FIX 是一种标签-值消息格式(例如,Tag 35=D 表示新订单,Tag 35=8 表示执行报告)。大多数美国股票交易所都接受通过 FIX 提交订单;FIX 也是经纪商之间以及经纪商与买方机构之间连接的标准接口。常用的 FIX 版本包括 FIX 4.2(广泛支持,许多交易场所仍在使用)、FIX 4.4(新增对多腿工具和分配指令的支持),以及 FIX 5.0/FIXT 1.1(将传输层与应用层分离)。

交易所专有协议: 多家交易所提供专有二进制协议。由于消息编码更紧凑、解析开销更低,这些协议的延迟低于 FIX:

  • OUCH — Nasdaq 的订单提交协议。采用二进制格式,支持提交、取消和替换订单。Nasdaq 及其附属交易场所的高频和低延迟参与者通常会使用该协议。
  • ITCH — Nasdaq 的市场数据分发协议。提供 Nasdaq 订单簿的完整逐笔订单(Level 3)视图,包括每一笔订单新增、修改、取消和执行事件。Nasdaq 的 TotalView 数据产品以 ITCH 为基础。
  • PITCH — Cboe 用于 BZX、BYX、EDGX 和 EDGA 交易所的市场数据协议。与 ITCH 类似,PITCH 提供逐笔订单的订单簿深度数据。
  • Pillar — NYSE 的一体化交易技术平台,为 NYSE、NYSE Arca、NYSE American 和 NYSE National 提供订单提交和市场数据支持。Pillar 使用二进制协议连接网关。
  • BOE(二进制订单提交) — Cboe 的专有订单提交协议,在 Cboe 股票交易所提交订单时,比 FIX 延迟更低。 **同址托管与邻近托管:**交易所提供同址托管服务,允许公司将交易服务器部署在与交易所撮合引擎位于同一数据中心。通过缩短公司服务器与交易所之间的物理距离,同址托管可将网络延迟(以微秒计)降至最低。邻近托管是指将服务器部署在交易所设施附近(但不在其内部)的数据中心,其延迟略高于同址托管,但通常成本更低。美国主要交易所数据中心包括位于新泽西州马瓦的 NYSE 数据中心,以及位于新泽西州卡特雷特的 Nasdaq 数据中心。

**连接服务提供商与金融外联网:**金融外联网是专用网络,通过单个物理连接将市场参与者接入多个交易所和交易场所。主要的外联网包括:

  • TNS(Transaction Network Services)——为全球交易所和交易场所提供托管连接服务。
  • IPC(现为 Atos 旗下公司)——运营 Connexus Cloud 金融外联网,连接交易公司、交易所、市场数据提供商和服务机构。
  • BSO(Boldon Smart Operations)——为金融市场提供低延迟网络基础设施。
  • Options Technology——为交易公司提供连接服务和托管基础设施。 外联网减轻了维护到各交易场所的独立点对点连接所带来的运维负担,但也会引入对共享网络的依赖。

**冗余与故障切换:**生产环境中的交易所连接必须包含冗余路径。标准做法包括:与各交易场所建立主用和备用 FIX 会话(通常使用独立的物理网络路径)、通过不同的外联网或运营商建立主用和备用网络连接、在同址托管设施内设置交叉连接冗余,以及设置地理冗余,即公司维护一个能够恢复交易的灾难恢复站点。

FIX 会话管理

FIX 协议定义了一个会话层,用于处理连接建立、消息排序、心跳检测和恢复。正确的会话管理对于确保订单流可靠至关重要。 会话级消息:

  • **登录(MsgType=A):**发起 FIX 会话。包含 SenderCompID、TargetCompID 和约定的心跳间隔。交易所或交易对手会回复自己的登录消息,以确认会话。某些场所要求在登录消息中提供加密或身份验证令牌。
  • **注销(MsgType=5):**正常终止 FIX 会话。任一方都可以发起。规范的实现会发送注销消息,并等待交易对手的注销回复后再关闭 TCP 连接。
  • **心跳(MsgType=0):**在没有交换其他消息时,按约定的间隔发送(通常为 30 秒)。用于确认会话仍处于活动状态。如果在预期间隔(加上容差时间)内未收到心跳,交易对手应发送测试请求。
  • **测试请求(MsgType=1):**在心跳超时后发送。接收方必须回复一条心跳消息,其中包含测试请求中的 TestReqID。未能回复表示连接已中断。
  • **重发请求(MsgType=2):**请求重传指定序列号范围内的消息。当检测到序列号缺口时使用——例如,接收方预期收到序列号 100,却收到 105,这表示遗漏了消息 100-104。
  • **序列重置(MsgType=4):**有两种模式。缺口填充模式(GapFillFlag=Y)会将预期序列号前移,跳过无需重传的管理类消息。重置模式(GapFillFlag=N)会将序列号强制设为新值,通常仅用于会话初始化或错误恢复。重置模式存在风险,使用不当可能导致消息丢失。
  • **拒绝(MsgType=3):**当消息未通过会话级验证时发送(标签格式错误、数据类型无效、缺少必填字段)。拒绝并不表示业务级拒绝,而是表示无法解析该消息。

会话配置:

  • **SenderCompID / TargetCompID:**FIX 会话双方各自的唯一标识符。由交易所分配或由交易对手协商确定。通常,某个公司为其维护的每个 FIX 会话配置不同的 SenderCompID。
  • **心跳间隔:**在登录期间约定。订单会话的常见值为 30 秒,市场数据会话的常见值为 10-30 秒。
  • **ResetOnLogon:**某些实现会在每次登录时将序列号重置为 1。其他实现会在不同会话之间保留序列号,并通过重发请求/序列重置来恢复缺口。具体要求以交易所的文档为准。
  • **消息编码:**标准 FIX 使用 ASCII 格式的 tag=value 键值对,并以 SOH(0x01)分隔符分隔。某些场所支持用于市场数据的 FAST(FIX Adapted for Streaming)编码,使用二进制压缩来减少带宽占用。

**序列号管理:**FIX 会话双方各自维护两个序列号计数器:发送序列号(每发送一条消息就递增)和预期接收序列号(每接收一条消息就递增)。如果收到的消息序列号大于预期值,表示检测到缺口,必须发出重发请求。如果收到的序列号小于预期值(且消息未标记为 PossDup),则会话处于无法恢复的状态,应断开连接。通常会将序列号持久化到磁盘,以便会话在重启后无需重置即可恢复。 **缺口检测与恢复:**检测到序列缺口时,接收方会发送 ResendRequest,指定缺失序列号的范围(BeginSeqNo 到 EndSeqNo,其中 EndSeqNo=0 表示“无限”或“直到最新”)。发送方会使用 PossDupFlag=Y 重新传输缺失的消息,表示这些消息可能是重复的。接收方必须以幂等方式处理 PossDup 消息——例如,如果 OMS 已处理过原始执行报告,那么收到 PossDup 执行报告时不应再次触发成交。

**会话时间安排:**交易所 FIX 会话按与市场交易时间一致的既定时间表运行:

  • **盘前时段:**许多交易所从 ET 7:00 或 8:00 开始接受订单(部分交易所的延长交易时段最早从 ET 4:00 开始)。FIX 会话可能需要在开始录入订单前建立,以便完成 Logon、序列号同步以及任何开盘前消息的收发。
  • **市场交易时段:**美国股票市场为 ET 9:30-16:00。FIX 会话必须在开盘集合竞价前全面就绪。
  • **盘后时段:**根据交易场所不同,订单录入可能持续到 ET 17:00 或 20:00。部分交易场所要求为延长交易时段单独设置会话参数。
  • **日终:**交易日结束时,会话可能会注销,并重置(或持久化)序列号。具体的日终流程因交易所而异。
市场数据源

市场数据源将交易场所的价格、成交量和订单簿信息传递给市场参与者。市场数据基础设施的架构会直接影响公司的证券定价能力、交易决策能力以及履行最佳执行义务的能力。

数据深度层级: Level 1(最优报价 — NBBO 和最新成交价)足以满足大多数投资组合和合规工作流的需求;Level 2(各交易场所的订单簿深度)支持市场冲击估算和订单簿失衡策略;Level 3(Nasdaq ITCH 和 Cboe PITCH 等逐笔订单数据源)支持做市商和对延迟敏感的策略完整重建订单簿。架构设计需要决定每个使用应用实际需要哪个层级 — 数据源成本、带宽和行情处理器的复杂度都会随着深度的增加而急剧上升。

综合行情源(SIP): 证券信息处理器(SIP)是一种监管机制,用于生成涵盖所有美国股票交易所报价和交易的综合视图。目前有两种 SIP 计划:

  • CTA/CQS(Consolidated Tape Association / Consolidated Quotation System): 汇总在 NYSE、NYSE Arca、NYSE American 等交易所上市证券的交易和报价。CTA 生成综合行情带(最新成交价数据),CQS 生成综合报价(NBBO)。
  • UTP(Unlisted Trading Privileges Plan): 汇总 Nasdaq 上市证券在所有交易场所的交易和报价。 SIP 数据源提供“官方”NBBO,并用作 Regulation NMS 交易穿越保护的参考。由于需要经过整合处理,SIP 数据历来慢于交易所直连数据源,因此产生了延迟差异,也引发过监管方面的讨论。

直连数据源(交易所专有): 各交易所会直接向订阅者发布自己的市场数据。直连数据源仅提供特定交易所的活动数据,但由于不需要经过整合环节,传输速度快于综合 SIP。需要最低延迟的公司(做市商、统计套利机构和对延迟敏感的算法)通常会订阅各交易所的直连数据源,并根据各交易所的数据源构建自己的内部 NBBO。这有时称为“合成 NBBO”或“直连 NBBO”。

市场数据标准化: 从多个来源(SIP、多个直连数据源、供应商数据源)接收数据的公司必须将数据标准化为统一的内部格式。标准化包括:将交易所专用的证券代码映射到公司的内部证券主数据,转换交易所专用的消息格式以符合通用架构,按交易所时间戳为不同来源的消息排序,处理不同的价格格式(小数、固定收益的分数),以及对同时出现在综合和直连数据源中的事件去重。

数据供应商集成: 主要数据供应商提供聚合并经过增强的市场数据:

  • Bloomberg — Bloomberg Terminal 和 Bloomberg B-PIPE 提供实时和历史市场数据、参考数据及分析。Bloomberg 使用自己的代码体系(Bloomberg 代码、FIGI)和数据交付 API(BLPAPI)。
  • Refinitiv (LSEG) — Refinitiv Elektron 提供实时市场数据,Refinitiv Eikon 终端提供分析。Refinitiv 使用 RIC(Reuters Instrument Code)代码体系。
  • ICE Data Services — 提供跨资产类别的实时数据、参考数据和估值定价。 供应商数据源通过提供一个统一接口来接入数百个交易场所的数据,从而简化连接,但也会引入供应商特有的延迟、代码体系层级和合同义务(交易所数据再分发协议、按用户授权)。
交易暂停与熔断机制

交易暂停与熔断机制会在市场波动极大或有重大信息待发布时暂停交易,以保护市场秩序。与交易所订单流交互的系统必须正确检测、遵守并响应交易暂停。

全市场熔断机制(MWCB): 全市场熔断机制根据 S&P 500 指数的跌幅,暂停所有美国股票交易所的交易。熔断阈值每日根据 S&P 500 指数前一日收盘值计算:

  • 一级(下跌 7%): 若在美国东部时间下午 3:25 前触发,交易暂停 15 分钟。若在美国东部时间下午 3:25 或之后触发,交易继续。
  • 二级(下跌 13%): 若在美国东部时间下午 3:25 前触发,交易暂停 15 分钟。若在美国东部时间下午 3:25 或之后触发,交易继续。
  • 三级(下跌 20%): 无论何时触发,交易均暂停至当日交易时段结束。 每天每个级别最多只能触发一次。一级暂停不会阻止市场在恢复交易后继续下跌时触发后续的二级或三级暂停。

涨跌幅限制(LULD): LULD 可防止个别 NMS 证券的交易价格超出指定价格区间。该机制的运作方式如下:

  • 参考价格: 前五分钟内已报告成交价格的算术平均值,在正常交易时段每 30 秒更新一次。
  • 价格区间: 根据参考价格上下浮动一定百分比计算。具体百分比因证券类别而异:一级证券(S&P 500、Russell 1000 和某些 ETP)为 5%,二级证券(所有其他 NMS 证券)为 10%。交易日开始后的前 15 分钟和结束前的 25 分钟,适用较宽的区间(20%)。
  • 限价状态: 如果 NBBO 达到上限或下限(即最佳卖价等于下限,或最佳买价等于上限),该证券将进入“限价状态”。交易继续进行,但不允许执行会导致价格超出区间的订单。
  • 交易暂停: 如果限价状态持续 15 秒,主要上市交易所将宣布暂停交易 5 分钟。暂停后,交易通过重新开盘集合竞价恢复。 系统必须实时监控 LULD 价格区间,并阻止提交会违反区间限制的订单。

监管性暂停:

  • 待发布消息(T1 暂停): 主要上市交易所可在预期有重大消息时暂停交易(例如,业绩预告、并购公告或其他可能影响市场的披露)。消息传播后,交易所在确定市场已获得足够时间消化信息后恢复交易。
  • 消息传播(T2 暂停): 在重大消息发布后实施,为市场处理信息提供额外时间。
  • SEC 交易暂停(第 12(k) 条): 如果 SEC 认定暂停交易对保护投资者和公众利益确有必要,可暂停任何证券的交易,最长为 10 个工作日。SEC 暂停通常源于对公开信息准确性的担忧、内幕交易或市场操纵。
  • IPO/直接上市暂停: 对新上市证券实施的开盘前暂停,在开盘集合竞价确定公平价格前持续有效。

交易所特定暂停: 个别交易所可能会实施自己的暂停机制(例如,波动性中断、撮合引擎问题)。相关信息通过交易所特定的市场数据消息和管理通知发布。 交易暂停证券的系统处理: 检测到交易暂停时,系统应:(1)立即停止向受影响的场所发送该证券的新订单;(2)确定未成交订单的处理方式——某些暂停类型会导致交易所取消所有挂在订单簿上的订单,其他类型则会保留这些订单;(3)提醒交易员和投资组合经理;(4)决定是将新的订单请求排队,待交易恢复后提交,还是直接拒绝;(5)监控交易恢复消息和重新开盘集合竞价;(6)记录暂停事件,以供监管报告使用(CAT 报告包含与交易暂停相关的订单事件)。

证券标识与证券识别

交易系统必须能够在不同场所、数据来源和内部系统之间正确识别证券。存在多种标识方案,同一证券在不同场景中通常会有不同的标识符。

标识符概览: 股票代码由交易所分配,会因公司行动而变更,且并非全球唯一。CUSIP(美国/加拿大)是专有标识符,使用时需获得 CUSIP Global Services 的许可;ISIN 将美国证券的 CUSIP 纳入其中,是跨境结算和监管报告的必需标识;SEDOL 用于英国和爱尔兰的上市证券;FIGI 是 Bloomberg 提供的开放许可标识符,具有合并级别(全球)和股份类别级别(场所级别)两种粒度。实际运营中的问题在于许可、变更管理和映射,而非标识符格式本身。

证券标识映射: 必须使用证券主数据或证券标识映射服务,在不同类型的标识符之间进行转换。例如,Apple Inc. 普通股的股票代码为 AAPL(在 Nasdaq 上),CUSIP 为 037833100,ISIN 为 US0378331005,FIGI 为 BBG000B9XRY4。向交易所路由订单时,系统必须使用该交易所要求的证券标识。收到来自供应商的市场数据时,系统必须将供应商的标识符映射为公司的内部标识符。证券标识映射必须处理:一对多关系(一个企业可能有多种上市证券——普通股、优先股、认股权证、认购权),随时间发生的变更(股票代码变更、因公司行动导致的 CUSIP 变更),以及场所特定的后缀或扩展标识。

公司行动对证券标识的影响: 公司行动经常会导致标识符变更。股票代码变更(品牌重塑)会替换交易代码。证券基本条款发生变化时,CUSIP 也会变更(例如,股票拆分产生新股、合并创建新实体、股份类别转换)。系统必须接收参考数据更新(通常由交易所和数据供应商在隔夜发布,有时也会在盘中发布),以确保证券标识保持最新。

特殊代码: 某些后缀和标识符表示特殊交易条件:"WI"(when-issued,即正式发行前交易)、"RT"(认购权)、"WS"(认股权证)、"U"(单位),以及表示不同股份类别的交易所特定后缀(例如,双重股权结构中的 "A" 和 "B")。

市场交易时间与交易时段

美国股票市场按照明确的时间表运行,并设有不同的交易时段。交易系统必须针对订单类型、定价和路由执行各时段专属规则。

盘前交易时段(美国东部时间凌晨 4:00 - 上午 9:30): 部分交易所和 ECN 最早会在美国东部时间凌晨 4:00 接受订单。盘前交易通常流动性较低、价差较大,并且可能限制某些订单类型(例如,仅允许限价订单,不允许市价订单)。并非所有证券都可进行盘前交易。

常规交易时段(美国东部时间上午 9:30 - 下午 4:00): 主要交易时段,所有 NMS 保护措施均适用(Reg NMS 的成交穿越规则、LULD 价格区间、全市场熔断机制)。该时段以开盘集合竞价开始,以收盘集合竞价结束。

盘后交易时段(美国东部时间下午 4:00 - 晚上 8:00): 常规交易时段收盘后的延长交易时段。限制与盘前交易类似:流动性较低,许多交易场所仅允许限价订单,且价差较大。

开盘集合竞价(Opening Cross): 交易所通过开盘集合竞价确定开盘价。在开盘前时段,订单不断累积,交易所会公布指示性撮合价格和成交量。美国东部时间上午 9:30,交易所按一个使可执行成交量最大化的统一结算价撮合累积订单。Nasdaq 将此称为“Opening Cross”;NYSE 则使用其指定做市商(DMM)系统协助开盘。

收盘集合竞价(Closing Cross): 收盘集合竞价确定官方收盘价,该价格用于净资产值(NAV)计算、指数再平衡和基准比较。在 Nasdaq,收盘集合竞价接受收市市价(MOC)和收市限价(LOC)订单。在 NYSE,DMM 协助收盘。收盘集合竞价的成交量显著增长——许多交易日中,总日成交量的 5-10% 或更多在收盘集合竞价中成交。

半日交易时段: 美国市场会在独立日(7 月 3 日;若 7 月 3 日为周末,则为 7 月 2 日)的前一天、感恩节后的第二天(黑色星期五)以及圣诞夜(12 月 24 日;若 12 月 24 日为周末,则为 12 月 23 日)提前收盘(美国东部时间下午 1:00)。系统必须设有节假日日历,以调整交易时段时间并处理提前收盘。

节假日日历管理: 交易系统必须维护市场节假日日历(元旦、马丁·路德·金纪念日、总统日、耶稣受难日、阵亡将士纪念日、六月节、独立日、劳动节、感恩节、圣诞节)和半日交易时段日历。交易所公布时间表后,必须每年更新日历。节假日日历出错可能导致订单被发送至休市市场(并遭拒绝),或在市场开市时未发送订单。

连接韧性

交易所连接必须按高可用性进行设计。连接故障可能导致无法提交订单、漏掉成交,并带来合规和财务风险。

主用/备用连接: 每个生产环境中的 FIX 会话或数据馈送都应有备用连接。主用连接和备用连接应使用不同的物理网络路径(不同的交换机、不同的外联网、不同的 ISP),以避免共因故障。一些公司会通过一个外联网(例如 TNS)建立主用连接,并通过另一个外联网(例如 IPC)建立备用连接,以确保单个服务提供商中断不会导致所有交易场所连接都中断。

故障切换测试: 必须定期测试从主用连接切换到备用连接的流程——不仅要在年度 DR(灾难恢复)演练中测试,还要在生产交易期间定期进行受控切换。未经测试的故障切换流程在真正发生中断时往往会失效。

心跳监控: 在 FIX 会话层面,心跳用于检测连接中断。在基础设施层面,公司通常会实施额外的监控:网络级健康检查(ping、TCP connect)、应用级健康检查(定期测试消息或数据馈送吞吐量计时检查),以及在性能下降时发出警报的延迟监控(例如,往返时间超过阈值)。当连接性能下降或发生故障时,监控系统应同时向技术人员和交易台发出警报。

会话恢复流程: FIX 会话意外断开时,恢复流程包括:(1)检测断开情况(心跳超时或 TCP 重置);(2)采用指数退避方式尝试重新连接,避免给交易所网关造成过大负载;(3)使用已持久化的序列号重新建立会话;(4)通过 ResendRequest/SequenceReset 进行缺口恢复,以同步状态;(5)对未结订单状态进行核对——断开前提交的订单可能在中断期间已成交、部分成交或已取消,公司必须在重新连接后确定每笔订单的当前状态。

灾难恢复与跨区域连接: 如果主站点发生故障,公司必须能够从次要站点恢复交易。DR 站点通常拥有自己的交易所连接(FIX 会话、市场数据馈送、网络基础设施),并保持待机或热备状态。关键设计决策包括:RTO(恢复时间目标)——主站点发生故障后,必须在多短时间内恢复交易;RPO(恢复点目标)——可以丢失多少订单/持仓状态;以及 DR 站点使用相同还是不同的 SenderCompID(相同的 CompID 可以无缝延续;不同的 CompID 则需要与交易所协调)。

性能监控: 持续监控连接性能包括:网络延迟(在应用层测量单向和往返延迟)、消息吞吐量(高峰时段每秒的消息数)、丢包率、订单确认延迟(从提交订单到交易所确认所需的时间),以及市场数据时效性(交易所时间戳与公司接收时间戳之间的间隔)。延迟激增或吞吐量下降可能表明存在网络拥塞、硬件问题或交易所网关故障。

监管要求

连接交易所和交易场所的公司须遵守针对其系统、控制措施和报告的特定监管要求。

**SCI 条例(系统合规与完整性):**美国证券交易委员会(SEC)《SCI 条例》(于 2014 年通过,2015 年 11 月生效)适用于“SCI 实体”——交易所、达到特定成交量门槛的某些 ATS(约占 NMS 成交量的 5%)、清算机构、SIP 处理机构,以及某些豁免清算机构。SCI 实体必须:制定合理的政策和程序,确保其系统具备充足的容量、完整性、韧性、可用性和安全性;定期审查并测试这些系统(包括业务连续性测试);及时向 SEC 通报“SCI 事件”(系统中断、系统入侵和重大系统合规问题);并向 SEC 提交年度 SCI 审查报告。虽然 SCI 条例直接适用于交易所和大型 ATS(而非连接到这些机构的经纪交易商),但经纪交易商应了解 SCI 条例,因为交易所系统故障会影响其连接能力,而且运营大型 ATS 的经纪交易商本身可能成为 SCI 实体。

**综合审计追踪系统(CAT):**CAT 是由 FINRA 代表自律监管组织(SRO)运营的综合订单追踪系统。CAT 要求经纪交易商和交易所报告 NMS 证券和场外(OTC)股票证券中每笔订单的完整生命周期——从订单发起,到路由、修改、取消和执行。CAT 报告包括:客户识别信息(通过 FDID——公司指定标识符)、订单接收和发起时间戳、订单路由事件(包括目标交易场所)、订单修改和取消,以及执行详情(价格、数量、交易场所)。公司必须分配 CAT 报告者 ID,将客户账户映射到 FDID,并向 CAT 处理机构提交每日报告。交易所连接基础设施必须采集 CAT 合规所需的时间戳和路由详情。

**市场准入控制(SEC 规则 15c3-5):**规则 15c3-5 要求每家提供市场准入的经纪交易商(包括提供交易所或 ATS 准入的经纪交易商)建立、记录并维护风险管理控制系统和监督程序,以合理管理市场准入带来的财务、监管及其他风险。所需控制措施包括:防止提交超出预设信用或资本门槛订单的交易前控制;防止提交错误订单(例如价格合理性检查、订单规模限制、重复订单检测);限制只有获授权人员才能访问交易系统;以及遵守所有适用的监管要求(例如卖空限制、交易暂停)。这些控制措施必须由经纪交易商直接且独占地控制——不得委托给客户或其他方。经纪交易商必须定期(至少每年一次)审查其市场准入控制的有效性。

**市场准入交易前风险控制:**规则 15c3-5 和交易所规则要求或预期采用的具体控制措施包括:订单价格区间(拒绝价格远离当前市场价格的订单)、最大订单规模限制、按证券代码和汇总层面设置的持仓限额与资本风险敞口限额、重复订单检测、在突破风险阈值时可暂停公司全部订单流的紧急停机开关、受限证券列表(防止交易已暂停、已退市或受限的证券),以及卖空合规检查。这些控制措施必须实时运行,且对延迟的影响应尽可能小。

实例

references/examples.md 中有三个完整实例,可加载查看端到端场景:(1)设计与五家股票交易场所的 FIX 连接,并实施 Rule 15c3-5 控制;(2)使用综合行情和直连行情源构建市场数据基础设施;(3)在 OMS、SOR 和市场数据系统中实现交易暂停处理。

常见陷阱

  • 未能在应用重启后保留 FIX 序列号,导致序列号重置,可能造成重复提交订单或漏收执行报告
  • 主用和备用 FIX 会话使用同一条网络路径,因此单个交换机或运营商故障会同时中断两条连接
  • 未能在缺口恢复期间正确处理 PossDupFlag——将带有 PossDup 标记的执行报告当作新成交处理,会导致重复计数
  • 对延迟敏感的交易策略仅依赖 SIP 获取 NBBO——SIP 比直连行情源慢数百微秒至个位数毫秒
  • 在订单路由器中忽略 LULD 价格带更新,导致订单因违反价格带规定而被交易所拒绝
  • 将所有暂停类型一概而论——不同暂停类型对未成交订单、恢复机制和监管义务的影响各不相同
  • 未维护最新且经过测试的假日日历,导致系统在市场假日尝试交易,或错过半日提前收市
  • 部署可能被交易人员绕过、覆盖或禁用的盘前风险控制(Rule 15c3-5)——这些控制必须由经纪交易商的风险管理职能部门独家掌控
  • 未定期测试故障切换流程——真实故障发生时无法使用的未经测试的备用连接毫无韧性可言
  • 在内部系统中仅使用股票代码作为标识符——股票代码会变更、重复使用,且并非全球唯一;内部系统应使用稳定标识符(CUSIP、ISIN 或内部 ID),并进行证券代码映射
  • 分析延迟时未考虑交易所时间戳与接收时间戳之间的差异——两个时钟可能未同步,单向延迟测量需要时钟同步(例如 PTP 或 GPS)
  • 误以为 FIX 会话 Logon 表示交易所已准备好接收订单——许多交易所有单独的“交易时段状态”消息,用于指示撮合引擎何时从开盘前状态切换到开盘状态

交叉引用

  • order-lifecycle(trading-operations 插件):订单状态、订单类型,以及从创建到执行或取消的订单生命周期——交易所连接是承载订单生命周期事件的传输层
  • trade-execution(trading-operations 插件):执行算法、交易场所选择和智能订单路由,都依赖此技能中介绍的连接和市场数据基础设施
  • pre-trade-compliance(trading-operations 插件):盘前风险控制(Rule 15c3-5)是市场接入的监管要求,必须集成到交易所连接架构中
  • settlement-clearing(trading-operations 插件):执行后,交易会从交易所连接系统流向清算和结算系统——正确的交易场所和执行标识符对下游处理至关重要
  • operational-risk(trading-operations 插件):交易所连接故障是操作风险的重要来源,此技能中的韧性、故障切换和监控实践均属于操作风险控制
  • books-and-records(compliance 插件):通过交易所连接捕获的订单和执行数据必须根据 SEC Rules 17a-3 和 17a-4 留存;CAT 报告义务要求连接系统提供全面的审计轨迹数据

评论

支持 Markdown