美股市场微观结构:交易所类型、订单类型与数据解析

做市商策略设计,说白了就是跟市场微观结构打交道。你想想看,如果连交易所怎么运作、订单怎么匹配、数据怎么来的都不清楚,那策略写得再花哨也是空中楼阁。这一章,我就带你把这些基础打扎实。

一、交易所类型:NYSE、NASDAQ、ATS

美股市场不是只有一个交易所。实际上,它是个多交易所并存的复杂生态。我个人习惯把交易所分成三类:

  • NYSE(纽约证券交易所):老牌交易所,以拍卖市场为主。它有指定的做市商(DMM),负责维持订单簿的流动性。我在项目中遇到过,NYSE的订单执行质量通常更高,但延迟也相对大一些。
  • NASDAQ(纳斯达克):全电子化交易所,以报价驱动为主。它没有DMM,而是靠多个做市商竞争报价。嗯,这里要注意,NASDAQ的订单簿结构更透明,适合高频策略。
  • ATS(另类交易系统):比如Dark Pool(暗池),不公开订单簿。机构投资者喜欢用,因为可以隐藏大单意图。我曾经踩过坑——在暗池里挂单,结果流动性不足,半天没成交。

核心区别:NYSE靠人(DMM)维护秩序,NASDAQ靠机器(电子撮合),ATS靠隐私(不公开订单簿)。

为什么会这样?因为不同交易所的客户群体不同。散户喜欢NYSE的稳定性,机构偏爱ATS的隐蔽性,而高频交易者则扎堆在NASDAQ。

二、订单类型:市价单、限价单、冰山订单

订单类型是策略的“语言”。你用什么订单,就决定了你如何跟市场对话。

订单类型 特点 适用场景
市价单(Market Order) 立即成交,不指定价格 追求速度,不关心滑点
限价单(Limit Order) 指定价格,不保证成交 控制成本,提供流动性
冰山订单(Iceberg Order) 只显示部分数量,隐藏真实意图 大单交易,避免冲击市场

我建议做市商策略优先使用限价单。为什么呢?因为市价单会吃掉流动性,而限价单是提供流动性——交易所会给你返佣。你想想看,做市商赚的就是买卖价差,如果还用市价单,那不是自己打自己脸吗?

冰山订单是个好东西。我记得有一次帮客户设计大宗交易策略,直接挂限价单,结果被其他做市商盯上了,价格瞬间被打穿。后来改用冰山订单,每次只露10%的量,成交效率反而更高。

避坑指南:我曾经在NASDAQ用冰山订单,结果因为订单簿太透明,被算法识别出来了。后来我学会了随机化冰山订单的显示量——比如第一次露100股,第二次露150股,第三次露80股。这样对手很难猜出你的真实意图。

三、订单簿与价格发现机制

订单簿(Order Book)是市场的“心电图”。它记录了所有未成交的限价单。价格发现,说白了就是买卖双方通过订单簿博弈,最终找到一个大家都接受的价格。

我画了一张图,帮你理解这个过程:

订单簿与价格发现机制 卖单(Ask Side) 价格从低到高排列 卖1: 100.05 @ 200股 卖2: 100.10 @ 500股 卖3: 100.15 @ 300股 ... 买单(Bid Side) 价格从高到低排列 买1: 100.00 @ 300股 买2: 99.95 @ 400股 买3: 99.90 @ 200股 ... 价差 100.05 - 100.00 = 0.05 买单和卖单在订单簿中博弈,价差越小,流动性越好 价格发现 = 买卖双方力量平衡的结果

你看,买单从高到低排,卖单从低到高排。中间的价差(Spread)就是做市商的利润空间。我建议你每天开盘前先看订单簿的深度——如果买单厚实,说明市场看涨;如果卖单堆积,说明抛压重。

注意:订单簿是动态变化的。我曾经见过一个策略,只看静态订单簿就下单,结果被高频交易者用“闪电订单”瞬间打穿。记住,订单簿只能反映过去几毫秒的状态,不能预测未来。

四、Level 1/2/3 数据解析

数据是策略的“眼睛”。美股市场的数据分三个层级:

  • Level 1:最优买卖价(Best Bid/Offer)。说白了就是“市场快照”,告诉你当前最好的买价和卖价。适合散户和简单策略。
  • Level 2:完整订单簿。能看到所有价位的挂单量。我建议做市商策略至少用Level 2,因为你能看到对手的“底牌”。
  • Level 3:逐笔成交数据(Tick Data)。能看到每一笔交易的细节——谁买的、谁卖的、在哪个交易所成交的。这是做市商策略的“核武器”。

举个例子,假设你看到Level 2数据里,卖1有1000股挂单,但Level 3显示这1000股其实来自同一个机构。嗯,这时候你就知道——对方可能是在伪装冰山订单。

实战建议:我个人习惯把Level 2和Level 3结合起来用。Level 2告诉你“现在有什么”,Level 3告诉你“刚才发生了什么”。两者结合,才能判断市场情绪。

最后,给你一段简单的Python代码,演示如何解析Level 2数据:

# 模拟Level 2订单簿数据
order_book = {
    'bids': [  # 买单,价格从高到低
        {'price': 100.00, 'size': 300},
        {'price': 99.95, 'size': 400},
        {'price': 99.90, 'size': 200}
    ],
    'asks': [  # 卖单,价格从低到高
        {'price': 100.05, 'size': 200},
        {'price': 100.10, 'size': 500},
        {'price': 100.15, 'size': 300}
    ]
}

# 计算价差
best_bid = order_book['bids'][0]['price']
best_ask = order_book['asks'][0]['price']
spread = best_ask - best_bid

print(f"最优买价: {best_bid}")
print(f"最优卖价: {best_ask}")
print(f"价差: {spread}")

# 计算买卖压力比
bid_volume = sum(item['size'] for item in order_book['bids'])
ask_volume = sum(item['size'] for item in order_book['asks'])
pressure_ratio = bid_volume / ask_volume

print(f"买单总量: {bid_volume}")
print(f"卖单总量: {ask_volume}")
print(f"买卖压力比: {pressure_ratio:.2f}")

这段代码虽然简单,但它是做市商策略的起点。你想想看,如果价差太小(比如0.01),说明流动性好,但利润薄;如果价差太大(比如0.10),说明流动性差,但利润厚。做市商就是在两者之间找平衡。

避坑指南:我曾经在Level 2数据里看到买单很厚,就以为市场要涨。结果发现那些买单是“虚假挂单”——对方在成交前撤单了。后来我学会了用“挂单存活率”指标:如果挂单在1秒内被撤掉,大概率是虚假订单。

好了,这一章的内容就到这里。记住,微观结构是策略的“土壤”。你越了解它,策略就越有根基。

专注资料整理