本文面向 OMS/EMS、FIX 网关和程序化交易研发人员,不构成投资建议,也不能替代券商、交易所当日公告、证券主数据和合规意见。

资料核对日期:2026-08-12。规则会调整;实际送单应以交易所当日有效规则、券商准入、证券状态、交易日历、公司行动及实时行情为准。

一、结论:不要为“股票”写一套通用下单规则

把港股视为“代码五位、币种 HKD”的 A 股变体,往往会在真实送单时出错。至少需要区分:

  1. 数量单位:A 股普通股票通常按 100 股买入;港股普通自动对盘按证券级 board lot,不能硬编码。
  2. 价格网格:A 股股票通常是 0.01 元;港股由 Spread Table Code 和价格档位决定。HKEX Phase 2 已于 2026-08-03 改变部分证券的 tick。
  3. 市场状态:A 股主要处理涨跌幅、有效申报价格范围、集合竞价与保护限价;港股处理 POS/CTS/CAS、报价规则、竞价订单类型与 VCM。
  4. 卖空:港股受监管卖空要同时满足指定证券、覆盖/借券、卖空价格规则和券商声明;仅把 FIX Side 写成 SELL_SHORT 不够。
  5. 通道和交收:本地 HKEX DMA、北向 Stock Connect、南向港股通不是同一个订单模型;交收周期也不等于成交后是否可售。

二、先把市场、板块和通道拆开

本文比较的范围:

范围说明
HKEX 本地证券市场OTP-C 自动对盘的香港股票订单,适用 HKEX POS/CTS/CAS 等规则
A 股上交所主板/科创板、深交所主板/创业板、北交所股票竞价交易
北向 Stock Connect香港/海外投资者交易沪深证券,遵循沪深交易规则,不是 HKEX 本地 POS/CAS
南向港股通内地投资者交易香港股票,但受港股通资格、人民币结算、交易日历及券商安排约束

ETF、REIT、债券、期权、权证、结构性产品、大宗交易等都有专项规则。订单路由的第一步应解析:

1
venue / market / board / product_type / channel / account / session

三、核心规则总表

维度港股(HKEX 本地)沪深主板科创板创业板北交所
普通买入最小数量证券 board lot100 股限价/市价通常至少 200 股100 股100 股
数量增量普通 automatch 为 board lot 整数倍100 股整数倍超过 200 股可按 1 股递增100 股整数倍100 股整数倍
普通竞价单笔上限3,000 board lots通常 100 万股限价 10 万;市价 5 万限价 30 万;市价 15 万100 万股
股票最小价位Spread Table Code 驱动0.01 元0.01 元0.01 元当前 0.01 元
常规涨跌幅无普遍日涨跌停±10%±20%±20%±30%
IPO 初期不适用 A 股“五日”模型以当期注册制规则/状态为准前 5 个交易日无涨跌幅前 5 个交易日无涨跌幅向不特定合格投资者公开发行股票上市首日无涨跌幅
连续交易订单Limit / ELO / SLO限价、市价申报限价、市价申报限价、市价申报限价、市价申报
市价单边界不可把 FIX Market 直接当作 HKEX 通用市场单依交易所规定的市价类型与状态保护限价和板块规则保护机制与价格笼子有涨跌幅证券连续竞价,须保护限价
买入后的可售券商、持仓和信用安排决定股票通常 T+1 才可卖同左同左同左

表中数值不是可直接硬编码的唯一输入;下单前还要结合证券状态、当前行情、订单类型和交易日历。

四、港股:四类最容易被 A 股逻辑误伤的规则

4.1 数量:board lot 不是“港股版 100 股”

对 HKEX 自动对盘证券:

  • 单笔订单最大为 3,000 个 board lots;
  • 每个交易所价格队列最多 40,000 笔订单;这不是单一 OMS 或券商独占的限额;
  • 普通自动对盘订单按当前证券 board lot 处理;零股/特别手是否可交易、如何路由取决于交易所规则和券商支持。

正确的普通整手预校验概念如下:

1
2
3
4
board_lot := instrument.board_lot
qty > 0
qty % board_lot == 0
qty <= 3000 * board_lot

不要把此逻辑泛化到 odd lot / special lot 路径。board_lot 应是带生效日期的证券主数据:拆股、合股、供股、证券迁移和公司行动都可能改变结果。

HKEX 已于 2026-07-02 启动 board-lot 框架优化,并会在 2026-11-16 USM 上线时进入下一阶段。它不表示存量股票已经同时改为统一手数。HKEX 对零股自动撮合的探索最早预计 2027 年第三季度,仍受监管批准和市场准备条件约束。

4.2 价格:四位小数不等于 tick 校验

HKEX 的最低价差取决于证券的 Spread Table Code。截至本文核对日,最小价差下调 Phase 2 已于 2026-08-03 生效;对适用的 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。工程上应:

  • 使用 decimal 或定点整数判断价格网格,避免 float64 做余数比较;
  • 保存 spread_table_code、产品类型、规则版本和生效日期;
  • 用当前 Security Definition / 行情主数据得出 tick;
  • 把 tick、名义价限制、quotation rule、POS/CAS 价格范围拆成不同拒因。

港股没有 A 股式的统一日涨跌停,但并非没有价格约束:还需要处理名义价九倍/九分之一限制、连续交易 quotation rules、POS/CAS 价格范围和 VCM。应避免把所有港股价格拒绝都笼统标成“超涨跌停”。

4.3 时段:POS、CTS、CAS 是不同的状态机

时段时间行为要点
POS09:00–09:30仅 at-auction / at-auction limit;09:15–09:20 不可撤,09:20–最多 09:22 随机撮合,之后 blocking
CTS 上午09:30–12:00连续交易,Limit / ELO / SLO
Extended Morning12:00–13:00仅适用于指定 Extended Trading Securities;不是一般港股午间交易时段
CTS 下午13:00–16:00连续交易
CAS16:00–随机 16:08–16:10CAS 证券的收市竞价;16:06–16:08 不可撤

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

HKEX 本地 OTP-C 不存在可简单等价为“CTS 普通市价单”的通用 Market Order。FIX OrdType=Market 是否被某券商接收,属于 broker contract 和具体 venue-session 的组合判断,不能从交易所规则直接推导。

4.4 卖空:侧别、覆盖和声明缺一不可

受监管卖空至少要求:

  1. 标的位于 HKEX 当前的指定卖空证券名单;
  2. 卖空前有借券或无条件交付证券的权利,禁止裸卖空;
  3. 订单具有正确卖空标识;
  4. 连续交易一般不得低于当时最优卖价,法定/规则豁免除外;
  5. POS/CAS 还受专用订单类型和价格限制:例如 POS 卖空只能用 at-auction limit,且不得低于前收。

券商 FIX 的 locate / covered 声明属于另一层。它必须以已签署规格与 UAT 结果确定,不能替代指定证券、借券覆盖和交易所卖空价格规则。

五、A 股:分板块,而不是只有“±10%”

5.1 沪深北竞价和撤单窗口

普通股票竞价的核心时间结构:

时段时间
开盘集合竞价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 股市价申报并非“不支持”。交易所规定多类市价申报,但通常只适用于有涨跌幅限制证券的连续竞价,并受保护限价、无对手方、市场状态和板块规则约束。OMS 应基于:

1
venue + board + instrument_status + session + market_order_type + protection_limit

做准入,而不是用一个全局 OrdType=MARKET 开关。

5.2 主板、科创板、创业板、北交所

板块数量和价格涨跌幅 / 无涨跌幅特别风险点
沪深主板买入 100 股整数倍、零股余额一次卖出、通常最多 100 万股;股票 0.01 元正常股票通常 ±10%;注册制新股初期按证券状态/现行规则连续竞价有效申报价格范围、市价保护机制;2026-07-06 起沪深主板风险警示股票涨跌幅调整为 ±10%
科创板限价至少 200 股且最多 10 万;市价至少 200 股且最多 5 万;超过 200 股部分可按 1 股递增±20%;IPO 前 5 个交易日无涨跌幅市价保护限价、无涨跌幅日临停、价格范围
创业板买入 100 股整数倍;限价最多 30 万,市价最多 15 万±20%;IPO 前 5 个交易日无涨跌幅连续竞价价格笼子;超范围限价申报可按规则暂存,不能一概等同立即拒单;无涨跌幅日有 ±30% / ±60% 临停
北交所至少 100 股、100 股整数倍、通常最多 100 万;当前 tick 0.01 元±30%;公开发行股票上市首日等无涨跌幅市价仅限有涨跌幅证券连续竞价且要保护限价;限价超有效范围为无效申报

上海证券交易所 2026 规则已于 2026-07-06 生效:盘后固定价格交易由科创板扩展至全部 A 股和 ETF,主板风险警示股票由 ±5% 调整为 ±10%。该规则公告亦列有暂缓实施条文,具体订单功能仍要看当日已实施条文、交易所通知和会员接入能力。

北交所规则已列入盘后固定价格交易条款,但北交所公告明确其中部分条文的具体实施时间另行通知。生产系统应将此类功能建成按 venue + effective_date + member_capability 控制的开关,不能仅因规则文本出现就默认可路由。

六、交收周期与可售回转不能写成同一个字段

概念A 股股票HKEX 本地证券市场
可售回转买入当日通常不可卖出,除非标的实行回转交易取决于券商、持仓和信用安排
交易所/清算交收按中国结算规则Exchange Participant 与 CCASS 间通常 T+2
通道差异北向交易有证券、资金交收及可售节奏的专门规则南向港股通又有独立结算和日历安排

T+2 不表示“港股一定当日可卖”,T+1 也不等同于所有资金和证券的清算时间。风险系统至少应分开保存 sellable_qty、settlement_date、borrow_coverage 和 channel。

HKEX 已提出现金市场向 T+1 迁移的目标安排(拟 2027 年第四季度),但截至本文核对日尚未生效。

七、MS/HKEX FIX:把交易所规则与券商字段分层

对 MS/HKEX DMA,新单适配层可参考下面的抽象检查表:

类别应核验内容
证券识别港股代码、币种、市场、产品类型、board lot、Spread Table Code、状态
SessionPOS / CTS / CAS / 半日市 / 交易日历
无状态校验side、数量、tick、订单类型、TIF、价格保护、必填字段
有状态校验可售量、T+1、locate、限额、频率、重复 ClOrdID
Broker adapterMS 账户映射、TargetSubID、专有 tag、reject 归一化
审计规则版本、参考价、主数据版本、原始 FIX、券商与 venue 决策

具体 FIX Tag 值是券商会话/路由约定,不是 HKEX 交易所规则。生产字段值必须以 MS 已签署 specification、会话配置和 UAT raw FIX 为准。

当前项目代码的静态检查显示,新单路径包含五位港股代码检查、HKD、HK 交易所/目的地字段、DMA 路由和 ExecInst=1 等实现;但静态代码不等于 UAT。尤其要注意:

  • SELL_SHORT 虽可映射为 FIX Side,但未见本地指定名单、locate、覆盖和卖空价格校验;
  • BUY_TO_COVER 当前映射为普通 FIX BUY,没有独立 close-to-cover 字段落地;
  • 新单与撤单字段并不完全对称;
  • 当前未见港股 NewOrderSingle / Cancel 的字段级 raw-FIX 回归测试;
  • 四位小数价格序列化不等于 Spread Table tick 校验。

八、建议的开发与测试矩阵

类别必测边界
港股数量board lot 100/400;不足一手、整手、超过 3,000 手;odd/special-lot 路由
港股价格Phase 2 及其他 Spread Table 的边界、decimal 精度、nominal/quotation/CAS 约束
港股时段POS 可撤→不可撤→随机→blocking;CAS 四阶段;半日市
港股卖空非指定证券、无 locate、价格不合规、POS/CAS 错误订单类型、FIX 声明
沪深主板100 股、零股卖、±10%、价格范围、集合竞价禁撤窗口
科创板199/200/201、10 万/5 万、无涨跌幅日前五日、保护限价
创业板30 万/15 万、价格笼子暂存、±20%、无涨跌幅日临停
北交所±30%、100 万、保护限价、超有效范围无效、盘后功能开关
FIX 与回报ClOrdID / OrigClOrdID、39/150 组合、CumQty 单调性、reject 审计、重放幂等

高风险原则:先做只读预校验与拒因审计;规则切换、券商配置、实盘路由或写入任何生产状态前,必须有 UAT 证据、回放测试、审批和可回滚方案。

九、权威资料与版本追踪

  1. HKEX Trading Mechanism
  2. HKEX Trading Hours — Securities Market
  3. HKEX Securities Market Operations FAQ
  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 起施行

最后的工程建议:将所有数字规则做成可版本化、可热更新、可回放的 market-rule 数据;源代码只实现规则解释器和强类型校验。不要把价格表、board lot、指定卖空名单、交易日历或某家券商的 FIX 文本硬编码进业务逻辑。