第1章:价格发现机制:从零到精通
1.1 订单簿:市场的骨架
做量化这些年,我见过不少新手一上来就盯着K线图猛看。说实话,K线只是结果,订单簿才是过程。你想想看,每一笔成交背后,都是买卖双方的博弈。订单簿,就是这场博弈的实时记分牌。
订单簿由两部分组成:买单队列和卖单队列。买单按价格从高到低排列,卖单按价格从低到高排列。每个价位上,都挂着对应的委托数量。
举个例子,假设某股票当前订单簿长这样:
| 卖单(Ask) | 价格 | 数量 |
|---|---|---|
| 卖5 | 10.06 | 200 |
| 卖4 | 10.05 | 500 |
| 卖3 | 10.04 | 300 |
| 卖2 | 10.03 | 1000 |
| 卖1 | 10.02 | 800 |
| —— 当前价差 —— | ||
| 买1 | 10.01 | 600 |
| 买2 | 10.00 | 1200 |
| 买3 | 9.99 | 400 |
| 买4 | 9.98 | 700 |
| 买5 | 9.97 | 300 |
这里卖1价10.02,买1价10.01。中间那0.01的差距,就是买卖价差。我刚开始做高频交易时,就靠这0.01的价差吃饭——当然,那是另一个故事了。
1.2 买卖价差:流动性的温度计
买卖价差,说白了就是你想立刻成交需要付出的成本。你想买,就得按卖1价成交;你想卖,就得按买1价成交。这一来一回,价差就是你的交易成本。
价差越小,说明市场流动性越好。比如苹果、微软这种大盘股,价差经常只有1分钱甚至更小。但一些小盘股,价差可能达到几毛钱甚至几块钱。
核心公式:
相对价差 = (卖1价 - 买1价) / 中间价 × 100%
中间价 = (卖1价 + 买1价) / 2
我个人习惯用相对价差来判断交易成本。比如上面那个例子:
中间价 = (10.02 + 10.01) / 2 = 10.015
相对价差 = (10.02 - 10.01) / 10.015 × 100% ≈ 0.1%
0.1%的价差,对于日内交易来说已经算不错了。我记得有一次做某个加密货币的做市,价差一度扩大到0.5%,那段时间简直是在刀尖上跳舞。
1.3 市场深度:你能吃下多少单
价差告诉你成本,市场深度告诉你容量。市场深度,指的是在某个价格水平上,你能成交多少数量而不引起价格明显变动。
回到上面的例子。如果你想买入1000股,按卖1价10.02只能买到800股。剩下的200股,就得吃卖2的10.03价。你的买入行为,直接把价格推高了1分钱。
这就是市场深度的意义——它告诉你市场的承载能力。
实战技巧:
我一般会看「深度5档」的总量。如果前5档买单总量远大于卖单总量,说明买方力量强,价格有支撑。反之亦然。
你想想看,如果卖1到卖5总共只有2000股,而你想买5000股。那你的订单一进去,价格可能直接被打飞。这就是为什么大资金交易时,会拆成小单慢慢吃——避免冲击成本。
1.4 订单簿的动态博弈
订单簿不是静止的。每一秒,都有新的限价单进来,也有旧的订单被撤掉。做市商、套利者、散户,各路人马在这里博弈。
我见过最夸张的一次,某只股票在财报公布前10分钟,订单簿上的挂单量突然暴增10倍。卖单和买单都在加码,但价格纹丝不动。这就是典型的「暴风雨前的宁静」。
避坑指南:
我曾经犯过一个错误——只看价差不看深度。有一次我看到某只股票的价差只有0.01,觉得流动性很好,直接下了个大单。结果发现深度极浅,我的单子直接把价格打穿了3个档位。从那以后,我养成了「先看深度,再看价差」的习惯。
订单簿的另一个重要特征是订单簿斜率。斜率越陡,说明价格稍微一动,就会有大量订单涌出。斜率越平,说明市场对价格变动不敏感。
1.5 知识体系总览
下面这张图,是我自己总结的订单簿知识体系。你可以把它当作本章的思维导图:
1.6 实战中的订单簿分析
光说不练假把式。我分享一个自己常用的分析框架:
- 看价差:先看买卖价差是否在合理范围内。对于流动性好的品种,价差超过0.2%就要警惕。
- 看深度分布:买单和卖单的分布是否均匀?如果某一侧明显薄弱,说明市场有偏向。
- 看订单簿斜率:用前5档的总量除以价格跨度,算出每分钱对应的订单量。斜率越大,市场越「厚实」。
- 看挂单变化:大单是挂在那里不动,还是频繁撤单?频繁撤单往往意味着有人在「钓鱼」。
一个简单的深度计算示例:
# 假设前5档卖单数据
ask_prices = [10.02, 10.03, 10.04, 10.05, 10.06]
ask_volumes = [800, 1000, 300, 500, 200]
# 计算总深度
total_depth = sum(ask_volumes) # 2800股
# 计算加权平均价格
weighted_price = sum(p * v for p, v in zip(ask_prices, ask_volumes)) / total_depth
# 约等于 10.034
# 计算深度斜率(每分钱的订单量)
price_span = ask_prices[-1] - ask_prices[0] # 0.04
slope = total_depth / price_span # 70000股/元
这个斜率70000股/元是什么意思?就是说,如果你想买入,每推高1分钱价格,大约能吃掉700股。嗯,这个深度还算可以。
我记得有一次做期权做市,某个合约的深度只有200张/分钱。我稍微一动手,价格就飞了。那种品种,说实话,不适合大资金玩。
1.7 小结
订单簿是市场的微观结构。它不像K线那样直观,但信息量更大。价差告诉你交易成本,深度告诉你市场容量。两者结合,你就能判断这个市场是否适合你的交易策略。
我个人建议,每个做量化的人,都应该花时间盯着订单簿看。不是看几秒钟,而是连续看几个小时。你会发现很多K线上看不到的规律——比如大单的挂撤模式、价差的日内变化规律、深度在关键价位的突变等等。
这些东西,书本上教不了,只有自己盯盘才能体会。