第四章:时间与销售(T&S)数据:逐笔成交数据解析、Tick数据、交易量标记与方向判断
各位同学,今天我们来聊聊交易数据里最原始、最真实的一层——时间与销售数据,也就是我们常说的 T&S。说白了,它就是每一笔成交的流水账。很多做量化的人喜欢盯着 K 线看,但我个人习惯,在分析短线流动性时,一定会先拉出 T&S 数据扫一遍。为什么?因为 K 线是加工过的,而 T&S 才是原汁原味的市场博弈记录。
4.1 逐笔成交数据:市场的“原始录音带”
逐笔成交数据,就是交易所按时间顺序记录下来的每一笔交易。它包含什么?成交时间、成交价格、成交数量,以及最重要的——成交方向(买方主动还是卖方主动)。
我刚开始做高频策略时,犯过一个低级错误:直接用交易所的“成交明细”里的价格做计算。后来发现,有些交易所会把多笔小单合并成一条记录输出。嗯,这里要注意,不同交易所的逐笔数据格式差异很大,千万别想当然。
- 时间戳:精确到毫秒甚至微秒
- 成交价格:该笔交易的最终撮合价
- 成交量:该笔交易的股数或合约数
- 成交额:价格 × 数量
- 买卖方向:主动买(Buy)或主动卖(Sell)
- 成交编号:交易所生成的唯一流水号
你想想看,如果只看 1 分钟 K 线,你只能知道这一分钟里价格从 A 到了 B,但中间经历了多少次多空交锋?完全不知道。而逐笔数据能告诉你,每一笔是谁在主动进攻。
4.2 Tick 数据:不只是“一跳”那么简单
很多人把 Tick 和逐笔成交混为一谈。其实 Tick 数据更宽泛,它包含了逐笔成交,也包含了订单簿的每一次变动(挂单、撤单、成交)。
我记得有一次做股指期货的流动性分析,发现某个 Tick 序列里连续出现了 10 笔相同的价格和数量。一开始以为是数据重复,后来仔细一查,是交易所的撮合引擎把一个大单拆成了多个小单成交。这个坑,我踩过。
Tick 数据的核心价值在于:它能让你看到市场微观结构的“呼吸”。比如,一个 Tick 里出现了大额主动买单,紧接着下一个 Tick 价格跳涨,这就是典型的流动性冲击。
4.3 交易量标记:谁在主动?谁在被动?
交易量标记,英文叫 Volume Signature。它解决的核心问题是:这笔成交量是买方推动的,还是卖方推动的?
怎么判断?很简单。看这笔成交的触发方是谁。如果买方挂单在卖一价等着,卖方主动卖出,那就是卖方主动成交。反过来,如果卖方挂单在买一价,买方主动买入,那就是买方主动成交。
但现实比这复杂。我遇到过一种情况:某个股票在盘口上同时有大量买单和卖单,价格几乎不动,但成交量巨大。这种时候,单纯看买卖方向已经不够了,需要结合订单簿的深度变化来判断。
4.4 方向判断:从原始数据到交易信号
方向判断是 T&S 数据应用的核心。我们通常用两种方法:
- 报价驱动法:比较成交价与当前买卖盘口。成交价等于卖一价且大于买一价,标记为主动买;等于买一价且小于卖一价,标记为主动卖。
- Tick 测试法:比较当前成交价与上一笔成交价。价格上涨为主动买,下跌为主动卖,不变则沿用上一笔的方向。
我个人更推荐第一种,因为它利用了订单簿的实时信息,更准确。但代价是需要同时维护订单簿数据,计算量更大。
下面是一个简单的 Python 实现,用于从逐笔成交数据中标记买卖方向:
def mark_trade_direction(trades, orderbook):
"""
trades: DataFrame, 包含 time, price, volume
orderbook: dict, 包含 bid_prices, ask_prices
返回: 标记方向的 trades
"""
directions = []
for i, row in trades.iterrows():
price = row['price']
best_bid = orderbook['bid_prices'][0]
best_ask = orderbook['ask_prices'][0]
if price >= best_ask:
directions.append('BUY')
elif price <= best_bid:
directions.append('SELL')
else:
# 价格在盘口中间,用上一笔方向
if i > 0:
directions.append(directions[-1])
else:
directions.append('NEUTRAL')
trades['direction'] = directions
return trades
这段代码虽然简单,但在实盘里够用。不过要注意,当价格正好等于买卖盘口时,需要额外判断——有些交易所会同时有多个价格相同的挂单,这时候要看成交量是否超过了盘口挂单量。
4.5 知识体系总览
为了让你更直观地理解这一章的知识结构,我画了一张图:
这张图把整个流程串起来了:从交易所的原始数据流出发,经过逐笔成交、Tick 数据、交易量标记三个维度的解析,最终输出流动性预判信号。每个环节都有自己独特的处理方法和注意事项。
4.6 实战中的几个关键点
最后,分享几个我在实战中总结的经验:
- 数据清洗是第一关:T&S 数据里经常有重复记录、错误时间戳、异常价格。我一般会先做一次“价格在合理范围内”的过滤,比如剔除价格偏离前一笔超过 10% 的记录。
- 方向判断要结合盘口:单纯靠价格变化判断方向,在盘口价差大的时候容易出错。我建议至少同时维护 5 档买卖盘口。
- 注意交易所的规则差异:A 股、期货、数字货币的 T&S 数据格式完全不同。比如 A 股的逐笔成交数据里没有买卖方向标记,需要自己算;而币安等交易所会直接给出“isBuyerMaker”字段。
好了,这一章的内容就到这里。T&S 数据是理解市场微观结构的钥匙,掌握了它,你就能看到 K 线背后那些看不见的博弈。下一章我们会深入讨论如何用这些数据构建具体的流动性指标,到时候见。
公众号:蓝海资料掘金营,微信deep3321