大单识别:大单定义与阈值设定、逐笔大单抓取、大单方向判断

做盘口分析,第一步就是搞清楚——什么是大单

很多人以为,大单就是金额大的单子。这话没错,但太笼统。我个人的经验是,大单的定义必须结合具体品种、当前流动性和你的策略目标来定。说白了,没有放之四海而皆准的阈值

一、大单定义与阈值设定

大单的核心特征就两个:单笔金额大对盘口冲击明显

我在项目中遇到过最典型的场景:某只小盘股,平时一笔单子就几万块,突然来了一笔50万的买单,直接把卖一、卖二、卖三全吃了。这种单子,你说是不是大单?肯定是。但同样的50万,放到贵州茅台里,可能连卖一都打不掉一半。所以阈值必须动态调整。

我个人习惯用以下三种方式设定阈值:

方法 说明 适用场景
固定金额法 比如设定单笔成交金额 ≥ 20万元为大单 流动性稳定的蓝筹股
百分比法 单笔成交量占近N日平均每笔成交量的倍数(如3倍) 波动较大的中小盘股
分位数法 取过去一段时间所有成交单金额的90%或95%分位数 需要自适应阈值的量化策略
我的小技巧: 我一般先用分位数法算出基准值,再结合固定金额法做下限保护。比如:取95%分位数,但最低不低于10万元。这样既自适应,又防止垃圾行情里出现太多“伪大单”。

二、逐笔大单抓取

阈值设好了,接下来就是抓数据。逐笔成交数据是识别大单的原材料。国内A股的Level-2行情提供了逐笔成交明细,这是最靠谱的来源。

抓取逻辑其实不复杂,核心就三步:

  1. 订阅逐笔成交流(Tick级数据)
  2. 解析每一笔成交:价格、数量、成交金额、买卖方向
  3. 判断是否超过阈值,超过则标记为大单,存入队列或数据库

嗯,这里要注意:逐笔数据里有些是“拆单”后的结果。什么意思?就是主力把一个大单拆成几十个小单,逐笔看都不大,但短时间内连续出现。我建议你加一个时间窗口聚合的逻辑——比如1秒内同一方向的连续成交,合并计算。

# 伪代码示例:逐笔大单抓取 + 时间窗口聚合
def capture_large_orders(tick_stream, threshold, window_ms=1000):
    buffer = {}  # key: (方向, 时间窗口索引)
    
    for tick in tick_stream:
        amount = tick.price * tick.volume
        if amount < threshold:
            continue  # 小于阈值,跳过
        
        # 判断方向
        direction = 'buy' if tick.is_active_buy else 'sell'
        
        # 时间窗口聚合
        window_key = int(tick.timestamp / window_ms)
        key = (direction, window_key)
        
        if key not in buffer:
            buffer[key] = {'total_vol': 0, 'total_amt': 0, 'start_time': tick.timestamp}
        
        buffer[key]['total_vol'] += tick.volume
        buffer[key]['total_amt'] += amount
        
        # 如果窗口结束,输出聚合后的大单
        if tick.timestamp - buffer[key]['start_time'] >= window_ms:
            yield buffer.pop(key)
避坑指南: 我曾经踩过一个坑——直接用成交金额做阈值,没考虑复权因素。某只股票10送10之后,股价腰斩,原来的阈值全废了。后来我改用“成交金额占日均成交额的比例”来做辅助判断,才稳定下来。

三、大单方向判断:主动买 vs 主动卖

判断大单的方向,是盘口分析的核心。方向错了,后面的跟随策略全白搭。

判断标准其实就一条:看这笔成交是主动吃单,还是被动挂单

  • 主动买:买方直接以卖一价或更高价成交。说明买方着急,愿意多花钱拿货。
  • 主动卖:卖方直接以买一价或更低价成交。说明卖方着急,愿意降价出货。

在Level-2数据里,每一笔成交都会带一个标记:BSFlag(买卖方向标识)。'B'表示主动买,'S'表示主动卖。但要注意,有些行情源会把“中性”成交(比如集合竞价)标记为'0',这些要过滤掉。

你想想看,为什么方向这么重要?因为主动买的大单,代表的是真金白银的买入意愿。被动成交的大单,可能是挂单被吃,不代表主动意愿。我见过不少新手,看到一笔大单成交就兴奋,结果发现是主动卖——那是主力在出货。

核心原则: 大单方向 = 主动方。主动买才是真买,主动卖才是真卖。被动成交的方向没有参考价值。

实际处理时,我还会加一个价格偏移判断:如果成交价等于卖一价,大概率是主动买;等于买一价,大概率是主动卖。如果成交价在中间,那就看BSFlag。两者结合,准确率能到95%以上。

四、知识体系总览

下面这张图,是我自己整理的大单识别知识框架。你可以把它当成一个检查清单,每次做策略时对照着看,不容易漏东西。

大单识别知识体系 阈值设定 逐笔抓取 方向判断 固定金额法 百分比法 分位数法 Level-2逐笔流 解析成交明细 时间窗口聚合 BSFlag标记 价格偏移判断 主动买 vs 主动卖 输出:大单信号

从图上你能看到,三个模块是串联的。阈值设不好,抓出来的大单要么太多噪音,要么漏掉关键信号。方向判断错了,后续的跟随策略就是反向操作。每一步都马虎不得。

一点补充: 我建议你在实盘之前,先用历史数据回测一下你的大单识别逻辑。看看识别出的大单,后续1分钟、5分钟的价格走势是否符合预期。如果主动买大单出现后价格反而跌了,那你的方向判断大概率有问题。

好了,大单识别这块就聊到这儿。记住三个关键词:阈值要动态抓取要聚合方向要分清。把这三点吃透了,盘口分析的第一步就算站稳了。


公众号:蓝海资料掘金营,微信deep3321