博弈基础:主动买盘与主动卖盘的定义、市场微观结构、Tick级数据解读
各位同学,咱们今天聊点实在的。
做量化交易,尤其是高频或者日内策略,你绕不开一个核心问题:谁在主动买?谁在主动卖?
这听起来像废话,但很多人做了几年交易,连这个都没搞明白。我刚开始接触Tick级数据时,也踩过不少坑。今天这一章,咱们就把地基打牢。
一、主动买盘 vs 主动卖盘:到底怎么区分?
先给个最直白的定义。
主动买盘:买方不挂单等待,直接以卖一价、卖二价甚至更高的价格成交。说白了,就是「我就要现在买,贵点无所谓」。
主动卖盘:卖方不挂单等待,直接以买一价、买二价甚至更低的价格砸出去。就是「我就要现在卖,便宜点也行」。
你想想看,如果一笔成交发生在卖一价上,那这笔单子是谁发起的?是买方。因为他主动去吃了卖方的挂单。反过来,成交在买一价上,是卖方主动砸的。
核心判断标准:看成交价相对于买卖盘口的位置。
- 成交价 ≥ 卖一价 → 主动买盘(买方吃单)
- 成交价 ≤ 买一价 → 主动卖盘(卖方砸单)
嗯,这里要注意:有些交易所的撮合规则会有细微差别,比如集合竞价阶段或者有市价单参与时,判断逻辑要更复杂。但日常的连续竞价中,这个规则基本通用。
二、市场微观结构:你看到的盘口,其实是个「谎言」
很多新手喜欢盯着买卖十档看,觉得买一有1000手托着,跌不下去。我告诉你,这想法很危险。
市场微观结构,说白了就是订单簿(Order Book)的动态变化。它由三部分组成:
- 限价单(Limit Order):挂在那里等人来吃,提供流动性。
- 市价单(Market Order):直接吃掉对手方的挂单,消耗流动性。
- 撤单(Cancellation):挂上去又撤掉,这是最迷惑人的地方。
我曾经在实盘中遇到过一种情况:某只股票买一挂了5000手大单,看着很稳。结果下一秒,这5000手瞬间撤单,价格直接跳水。你以为的「支撑」,其实是别人设的陷阱。
避坑指南:不要只看盘口的静态挂单量。要结合Tick数据看挂单的「存活时间」和「撤单率」。如果一个价位频繁出现大单挂上又撤掉,大概率是诱多或诱空。
三、Tick级数据解读:每一笔成交都在说话
Tick数据,就是逐笔成交数据。它记录了每一笔交易的:
- 成交时间(精确到毫秒甚至微秒)
- 成交价格
- 成交量
- 成交方向(主动买/主动卖)
我个人习惯把Tick数据比作「心电图」。每一笔成交都是一个心跳,连续的心跳构成了市场的脉搏。
举个例子,下面是一段真实的Tick数据(简化版):
时间戳 价格 成交量 方向
09:30:01.123 10.01 200 Buy
09:30:01.456 10.00 150 Sell
09:30:01.789 10.02 300 Buy
09:30:02.001 10.01 100 Sell
你看,第一笔是主动买盘,价格从10.00推到了10.01。第二笔是主动卖盘,又砸回10.00。第三笔又是主动买盘,直接干到10.02。这说明什么?多空在激烈博弈,但买方稍微强势一点。
如果只看每分钟的K线,你根本看不到这些细节。这就是Tick数据的价值。
四、核心逻辑:主动买卖盘的博弈模型
咱们把上面的知识串起来,画一张图。这张图我建议你保存下来,后面所有策略都基于这个逻辑。
这张图的核心就一句话:价格是主动买卖盘博弈的结果,不是原因。
很多人看到价格涨了才追进去,其实已经晚了。真正有效的信号,是主动买卖盘的「量」和「速度」的变化。
五、实战中怎么用?一个简单的Python示例
咱们用Python写个最简单的函数,从Tick数据里提取主动买卖盘信息。代码不长,但很实用。
import pandas as pd
def classify_tick(df):
"""
对Tick数据进行主动买卖盘分类
df需包含列:price, bid1, ask1, volume
"""
buy_volume = 0
sell_volume = 0
for _, row in df.iterrows():
if row['price'] >= row['ask1']:
buy_volume += row['volume']
elif row['price'] <= row['bid1']:
sell_volume += row['volume']
# 中间价成交(极少见,可忽略或按规则分配)
return buy_volume, sell_volume
# 使用示例
# buy, sell = classify_tick(tick_data)
# print(f"主动买盘: {buy}, 主动卖盘: {sell}")
这个函数虽然简单,但它是很多高级策略的基础。比如你可以计算「主动买卖盘净额 = 主动买盘 - 主动卖盘」,然后看这个净额的变化趋势。
一个小技巧:我习惯把主动买卖盘净额除以总成交量,得到「主动买卖盘占比」。这个指标比单纯的成交量更有参考价值。比如某根K线成交量很大,但主动买盘占比只有40%,那这根阳线就有点虚。
六、避坑指南:Tick数据常见的几个坑
最后,分享几个我踩过的坑,你们注意避开。
- 数据延迟问题:有些数据商提供的Tick数据是「快照」而非「逐笔」,两者差别很大。快照数据会丢失中间成交信息,导致方向判断错误。
- 盘口价差变化:当买卖价差很大时,成交在中间价的情况会增多。这时候不能简单用≥卖一或≤买一来判断,需要结合盘口深度。
- 大单拆分:机构经常把大单拆成小单,用算法交易执行。你看到的100笔主动买盘,可能只是同一笔大单。这时候要看「累计主动买卖盘」而非单笔。
- 交易所规则差异:A股、美股、期货的撮合规则不完全一样。比如A股有涨跌停板,涨停时主动买盘会消失(因为没人卖),但你不能说买方意愿不强。
嗯,今天就先聊到这儿。这一章的内容虽然基础,但它是后面所有策略的根基。你想想看,如果连「谁在主动买」都搞不清楚,后面那些复杂的模型又有什么意义呢?
记住:Tick数据是市场的「第一手情报」,盘口是「第二手」,K线是「第三手」。离源头越近,信息越真实。
公众号:蓝海资料掘金营,微信deep3321