物理定律与地方法规
前七章讲的都是"物理定律":订单簿的形状、价格时间优先、撮合循环、最大成交量原则——这些是全世界交易所的公共语言,换了哪家都一样。这一章讲"地方法规":同样是撮合,A股、美股、期货、加密货币交易所在参数和规则上的真实差异。你要写自己的交易所,就得知道哪些旋钮是别人已经替你调好的、哪些得自己定。
最小价位:一分钱的讲究
第二章说tick size是"插队的最低票价"。各家定法很不一样:
- A股:统一0.01元,不管股价是2块还是2000块(茅台一股2000元,tick还是一分钱,相对值小到可以忽略)。
- 美股:1美元以上的股票tick是0.01美元;1美元以下的是0.0001美元。另外美股有个著名的"tick试点"(Tick Size Pilot,2016年起的小范围实验),强制部分小盘股用0.05美元的tick,想看看把缝撑大能不能吸引做市商——监管用真实市场做实验,这本身就说明tick是个有真实后果的政策杠杆。
- 期货:每个品种自己定,而且tick对应固定的金额价值。比如螺纹钢期货tick是1元/吨、一手10吨,所以每跳一格一手盈亏10元——交易员直接按"跳"算钱。
- 加密货币:每个交易对自己定,而且通常很细。BTC/USDT的tick常见0.01美元甚至更小,配合0.00001个的最小数量,缝可以窄到几乎不存在。
给你的工程启示:tick和lot必须是每个交易品种的配置项,绝不能写死在代码里。
T+0与T+1:成交和"货到手"是两回事
A股有个让新手迷惑的规则:今天买的股票,今天不能卖(T+1);但期货、可转债、美股、加密货币都是T+0——随买随卖。注意这跟撮合引擎没关系:撮合瞬间就完成了,"T+1"限制的是成交之后的交收和再卖出权限,是结算层和风控层的规则。
这是本章最重要的架构启示:撮合引擎只负责"谁和谁按什么价成交了",不负责"货什么时候到账、到账前能不能再用"。T+0还是T+1、涨跌停多少,都是撮合外围的约束层。把撮合内核和约束层分开,你的系统才能既去服务A股式的市场,也去服务币所式的市场。
自成交防护:三种斩法
第五章说过自成交要被拦。具体怎么拦,各家给用户的选项不同,常见三档(以CME、各大币所的STP为典型):
- 撤新单(cancel aggressor):保留墙上旧单,把新冲进来的撤掉。
- 撤旧单(cancel resting):撤掉墙上自己的旧单,让新单继续跟别人成交。
- 两边都撤(cancel both):都不留。
STP通常按账户或机构ID判断。实现上就是撮合循环里每次准备成交前查一下对手单的归属,撞到就按模式处理。一个小但有用的细节:STP是订单自带的参数,同一张单上写着"如果我撞到自己怎么办",而不是交易所全局一个开关。
手续费:maker赚钱,taker付费
加密货币交易所把一件事做到了极致:maker/taker费率——挂单被吃的一方(maker,提供流动性)手续费极低甚至是负数(交易所倒贴返佣),主动吃单的一方(taker,消耗流动性)付正常费率。比如maker -0.01%、taker 0.05%:你挂的单被别人吃掉,交易所给你钱。
为什么倒贴?因为订单簿的厚度是交易所最核心的资产,深度厚才能吸引大交易者,而大交易者来了做市商才有生意——所以交易所花钱买"墙厚"。美股也早就这样:交易所给挂单方每股返佣零点几美分,"挂单返佣"甚至是一些交易策略的全部利润来源。A股是例外:没有maker/taker之分,买卖都收佣金和印花税,方向还不一样(印花税只在卖出时收)。
给你的启示:费率和返佣是按"这次成交里你是主动方还是被动方"逐笔算的。撮合循环的每一笔成交输出里,就得标清楚谁是taker谁是maker——这是计费系统的数据源,事后补标很痛苦。
交易时段与涨跌幅:A股的特色护栏
A股主板有±10%涨跌停(创业板、科创板±20%,ST股±5%),一天就四个小时的连续竞价加两头集合竞价;美股没有个股涨跌停,但有全市场熔断和个股的"涨跌停式"临时停牌机制(LULD);加密货币交易所7×24小时不眠,大多数没有涨跌停——波动靠市场自己消化,这也是为什么币圈单日-30%不稀奇。
这些护栏怎么实现,是第十二章的整章内容。这里只需要建立观念:它们的差异巨大,但都不碰撮合循环本身——涨跌停的本质就是"拒绝/不撮合超出边界的订单",是收单时的一道校验和簿子的一道闸。
一张对照表
A股 | 美股 | 期货 | 加密货币
时段 4小时+集合竞价 | 6.5小时+盘前盘后 | 日盘+夜盘 | 7×24
T+? 股票T+1 | T+0 | T+0 | T+0
涨跌停 ±10%/±20% | 无(有LULD) | 各品种有 | 多数无
市价单 变体有保护 | 有 | 有(带保护) | 有
费率 固定佣金+印花税 | maker/taker返佣 | 固定/按额 | maker/taker明显
看懂这张表,你就明白了为什么成熟的撮合引擎都把规则做成配置:内核不变,换一套参数就是另一个市场。下一章我们跟一笔成交走完全程:从撮合成的那一刻起,交易所还要往外发哪些消息、怎么保证谁都不丢。