港股 vs A 股下单规则对比(MS/HKEX DMA 工程核对)

项目背景:Mingshi OMS/EMS 通过 FIX 4.2 接入 Morgan Stanley(Razer platform)并路由至 HKEX。本文件把交易所规则、券商 FIX 合约和当前代码实现分层记录;它不是券商规格,也不构成交易或合规意见。

规则核对日:2026-08-12。送单前仍必须使用交易所当日通告、证券主数据、实时行情、账户权限及 MS 已签署 FIX specification / UAT 结果复核。

资料与证据:

  • HKEX Trading Mechanism、Securities Market Operations FAQ、Trading Hours、Regulated Short Selling;
  • HKEX 2026 最小价差 Phase 2 上线资料、Board Lot Framework Conclusions;
  • 上交所《交易规则(2026 年修订)》、北交所《交易规则》;
  • 当前工作树静态检查:src/fixApi/trade.go、src/utils/fix_order_utils.go、etc/ms/etc/dataCfg.json、/root/proj/go/hertz;
  • 代码结论不等于端到端 UAT;本仓库当前存在未提交 HKEX 相关变更,本文不将其视为已发布版本。

一、先分清规则层级与适用通道

层级负责内容不应混用的内容
交易所 / 清算所数量、tick、时段、订单类型、卖空价格规则、T+2 等MS 的 FIX 字段值和账户路由
券商 FIX 合约Tag 57、18、114、58、账户映射、回报语义HKEX 指定卖空名单或报价规则
证券主数据 / 行情board lot、Spread Table Code、产品类型、状态、参考价固定写死在源码的规则表
OMS 风控与持仓可售量、T+1、locate、限额、幂等、审计替代交易所或券商的最终准入

本文的港股是 HKEX 本地证券市场 / OTP-C 自动对盘订单;A 股是沪深主板、科创板、创业板与北交所的股票竞价交易。它们均不同于:

  • 北向 Stock Connect:香港/海外投资者交易沪深证券,遵循沪深市场交易模型;
  • 南向港股通:内地投资者交易香港股票,但适用港股通资格、人民币结算、交易日历等专门安排;
  • ETF、债券、期权、权证、结构性产品、大宗交易等专门产品/交易方式。

二、数量规则

规则A 股普通股票港股本地自动对盘当前 HKEX 代码路径
普通买入最小单位100 股;零股余额可一次卖出证券当前 board lot未读取 board lot
数量增量100 股整数倍(板块另有规定除外)普通 automatch 订单为 board lot 整数倍未校验
单笔上限主板通常 100 万股;科创板限价 10 万/市价 5 万;创业板限价 30 万/市价 15 万;北交所 100 万3,000 board lots未校验
零股 / 特别手卖出余额按各所规则一次申报不进入普通整手订单簿;实际路由能力取决于交易所和券商支持未实现独立路由
同价位队列非本文件固定参数交易所每个价格队列最多 40,000 笔订单仅可做本方预警,不能声称全市场校验

工程要求:qty % boardLot == 0 只适用于普通自动对盘路径。系统支持 odd lot / special lot 时,应由 order_route 分流,不能把所有非整手数量全局拒绝。

HKEX 于 2026-07-02 开始分两阶段实施 board-lot 框架优化;Phase 2 与 USM 于 2026-11-16 上线同步。它不是“所有存量港股即时改为同一手数”。board lot 必须以有生效日期的证券主数据为准;零股自动撮合最早仍拟于 2027 年第三季度推出,且须监管批准和市场准备。


三、价格与报价约束

3.1 A 股与港股的根本差异

项目A 股港股本地市场
最小价格变动股票通常人民币 0.01 元按证券 Spread Table Code 与价格档位
日涨跌幅主板通常 ±10%,科创/创业 ±20%,北交所 ±30%;风险警示、IPO、退市整理另有规则没有 A 股式普遍日涨跌停
连续竞价约束有效申报价格范围、保护限价、价格笼子按板块/状态变化nominal-price 九倍/九分之一、quotation rules、POS/CAS 限制、VCM 等

3.2 HKEX Phase 2:不可再使用旧 tick 表

截至 2026-08-12,HKEX 最小价差下调 Phase 2 已于 2026-08-03 生效。对 Phase 2 适用的 Spread Table Code 01 证券,常用表为:

价格区间(货币单位)最小价差
0.01–0.250.001
>0.25–10.000.005
>10–200.010
>20–500.020
>50–1000.050
>100–2000.100
>200–5000.200
>500–1,0000.500
>1,000–2,0001.000
>2,000–5,0002.000
>5,000–9,9955.000

边界:该表不能按 .HK 后缀盲套。ETP、债券、交易所买卖期权、结构性产品、inline warrants 等须使用自身 Spread Table Code。价格预校验必须消费 Security Definition / 证券主数据,而不是只限制四位小数。

连续交易的 quotation rule 也不能只概括为“九倍/九分之一”;对非 ETP 的部分边界还涉及 24 spreads 或参考价 5% 等规则。实现时将 spread_table_code、产品类别、规则版本、参考价与会话状态一起传给 venue validator。


四、订单类型与交易时段

时段HKEX 本地证券市场可用订单类型 / 关键行为
POS 09:00–09:30开市前竞价At-auction / At-auction limit;09:15–09:20 不可撤,09:20–最多 09:22 随机撮合,之后 blocking 至 09:30
CTS 上午 09:30–12:00连续交易Limit / ELO / SLO;ELO/SLO 的扫单与剩余订单行为不同
Extended Morning 12:00–13:00仅指定 Extended Trading Securities不能当作一般港股午间可交易时段
CTS 下午 13:00–16:00连续交易同上午 CTS
CAS 16:00–随机 16:08–16:10收市竞价(CAS 证券)16:01–16:06 可输入,16:06–16:08 不可撤,随后随机收市

半日市:无 Extended Morning、无下午 CTS;CAS 证券在 12:00–随机 12:08–12:10 收市,非 CAS 证券 12:00 收市。

HKEX 本地 OTP-C 没有可泛化为普通连续交易市价单的独立 Market Order。At-auction order 不应被误写成 CTS market order。当前代码的 OrdType_MARKET 只是 broker/FIX 适配能力;它是否能用于某一 HKEX 场景必须经 MS 合约和 venue session 准入确认。

A 股普通竞价的核心时段为 09:15–09:25、09:30–11:30、13:00–14:57、14:57–15:00;通常 09:20–09:25 与 14:57–15:00 不接受竞价撤单。A 股存在规定的市价申报,不应一概说“不支持”,但一般限于有涨跌幅限制证券的连续竞价,并依赖交易所规定的市价类型和保护限价。


五、卖空:交易所合规与 MS FIX 声明必须同时成立

维度A 股HKEX 受监管卖空
业务前提融资融券/证券出借标的、账户与券源指定卖空证券、卖空标识、借券或无条件交付权利
裸卖空禁止禁止
连续交易价格依交易所和券商业务规则通常不得低于当时最优卖价,豁免除外
POS / CAS依 A 股规则仅 at-auction limit;POS 不低于前收,CAS 不低于参考价;CAS 不接受卖空 at-auction order
账户声明券商契约决定除交易所规则外,MS 合约可能要求 LocateBroker / 覆盖声明

当前代码证据:

  • 输入 Side 0/1/2/3 映射为 FIX BUY/SELL/BUY/SELL_SHORT;BUY_TO_COVER 在当前实现中输出普通 FIX BUY,返回的 close 标记未在新单路径写入独立 FIX 字段;
  • SELL_SHORT 可生成 FIX side,但系统没有对 designated securities、借券/locate、卖空价格、POS/CAS 订单类型作本地校验;
  • 未发现自动生成的 Tag 114 卖空 locate 或专用 Tag 58 covered 声明。现有 Tag 58 配置用于测试/盒子策略文本,不能当作卖空覆盖声明。

因此,仅设置 SELL_SHORT 不构成可送出的合规卖空订单。卖空校验链应为:

1
2
3
4
5
6
account permission
→ designated-security snapshot
→ locate / borrow coverage
→ session and short-sale price rule
→ broker FIX declaration
→ raw FIX + decision snapshot audit

六、当前 MS/HKEX 新单路径:已覆盖与缺口

已有静态代码证据(非 raw-FIX 回归测试)

项目现状
港股代码新单拒绝非 5 位 Stockcode;Hertz 也以 5 位识别 HK
新单证券字段SecurityID=code.HK、Tag 22=5、Tag 15=HKD、Tag 207=HK、Tag 100=HK、Tag 167=CS、Tag 18=1 在新单路径中设置
路由TargetSubID(57) 由 condParams 配置,如 DMA 路由到 57=DMA
A 股限流隔离Hertz 的 A 股 bucket 只覆盖 SH/SZ/BJ;HK 不进入该 bucket
数量与价格序列化正数量检查、价格四位小数序列化;均不是 board-lot / tick 校验

需要明确的限制

  1. 新单字段结论是静态代码阅读结果;当前未发现港股 NewOrderSingle 与 Cancel 的字段级 raw-FIX 回归测试。
  2. 撤单路径会写 Tag 100,但 Tag 207 被注释,且未同步设置 Tag 15 / 22 / 167;不能把“新单已设置 HK 字段”泛化为撤单也完整。
  3. 代码没有名为 global.HKEX 的常量;实际新单根据 Stocktype 得到字符串 HK。
  4. float64 / 四位小数只能避免部分序列化问题,不能证明符合 venue tick。

缺口和建议优先级

优先级缺口验收证据
P0SELL_SHORT 的账户、名单、locate/coverage、时段和价格规则;MS 声明字段UAT raw FIX、指定名单快照、边界回放、审计 readback
P0新单与撤单港股字段一致性NewOrderSingle / Cancel 字段级测试及券商 UAT 对照
P1board lot、3,000 手与 odd/special lot 分流版本化主数据、公司行动回归、边界数量测试
P1Spread Table Code 驱动的 tick / quotation 校验各表边界测试、decimal 精度测试、行情版本记录
P1POS/CTS/CAS、半日市、随机期 / no-cancel / blocking 状态机冻结时钟测试、交易日历和会话状态测试
P1沪深北板块化规则包版本/生效日测试、证券状态和保护限价测试

七、交收、可售量与风险状态不能混为一谈

概念A 股股票HKEX 本地现金市场
成交成立交易主机撮合确认交易所撮合确认
可售回转买入当日通常不可卖出(T+1),例外产品另定取决于券商、持仓与信用安排,不应由 T+2 直接推导
交易所/清算交收按中国结算规则Exchange Participant 与 CCASS 间通常 T+2

截至核对日,HKEX 提议向 T+1 迁移的目标为 2027 年第四季度,仍须市场准备与监管批准,不是当前生效规则。持仓风控应单独保存 sellable_qty、settlement_date、borrow_coverage 和 channel,不得用一个 T+N 字段代替。


八、工程落地清单

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
Instrument resolver
  → market / board / channel / product / board_lot / spread_table_code / status
Session resolver
  → venue calendar / POS / CTS / CAS / A-share auction / after-hours
Stateless validator
  → side / qty / tick / order type / TIF / venue mapping / required FIX fields
Stateful validator
  → sellable qty / T+1 / locate / limit / duplicate ClOrdID / risk quota
Broker adapter
  → MS account routing / proprietary tags / reject normalization
Audit and reconciliation
  → resolved rule version / reference prices / raw FIX / venue & broker decisions

所有数字规则都应是带 effective_from、scope、source_version 的数据,而不是散落在业务代码中的常量。生产切换必须先做只读预校验、回放、UAT、审批与回滚演练。


九、权威资料

  1. HKEX Trading Mechanism
  2. HKEX Securities Market Operations FAQ
  3. HKEX Trading Hours — Securities Market
  4. HKEX Regulated Short Selling
  5. HKEX Reduction of Minimum Spreads
  6. HKEX Board Lot Framework conclusions, 2026-06-30
  7. 上海证券交易所交易规则(2026 年修订)
  8. 上交所修订发布交易规则说明
  9. 北京证券交易所交易规则
  10. 中国证监会系统:A 股交易新规 2026-07-06 起施行