3、大单识别算法:单笔大单阈值法、累计大单统计法、时间窗口大单检测
好,咱们进入正题。大单识别,说白了就是要把那些「不寻常」的交易给揪出来。什么叫不寻常?就是单子大得离谱,明显不是散户能干的活。我做了这么多年量化,见过太多人盯着K线瞎猜,其实真正的主力痕迹,都藏在成交明细里。
今天聊三种最实用的方法。这三种方法我都在实盘里跑过,各有各的脾气。你想想看,如果连大单都识别不准,后面的跟风分析全是白搭。
3.1 单笔大单阈值法
这是最直接的方法。设定一个金额阈值,超过就算大单。比如单笔成交超过50万,我就认为这是大单。
但阈值怎么定?我个人的习惯是,别拍脑袋。你得看这只股票的日常成交分布。举个例子,一只10块钱的股票,平时每笔成交也就几千块,突然来了一笔100万的单子,这肯定有问题。但如果是茅台,单笔100万可能只是毛毛雨。
我在项目中遇到过一个问题:有些股票流动性差,偶尔一笔中等规模的单子就能把价格打飞。这时候阈值设低了,容易误判。所以我建议,最好结合个股的日均成交额来动态调整。
# 单笔大单阈值法示例(Python伪代码)
def detect_large_trade(trade_data, threshold_multiplier=4):
avg_trade_size = trade_data['amount'].mean()
threshold = avg_trade_size * threshold_multiplier
large_trades = trade_data[trade_data['amount'] > threshold]
return large_trades
3.2 累计大单统计法
单笔大单阈值法有个硬伤:主力如果拆单呢?把一笔1000万的单子拆成20笔50万的,单笔看都不算大单,但累计起来就是个大动作。
累计大单统计法就是干这个用的。它把一段时间内(比如1分钟、5分钟)的所有成交汇总,看累计金额是否超过阈值。
嗯,这里要注意:时间窗口不能太长,否则会把不同方向的单子混在一起。我个人习惯用1分钟窗口,对于高频交易来说,1分钟已经能看出很多信息了。
# 累计大单统计法示例
def cumulative_large_trade(trade_data, window='1min', threshold=2000000):
# 按时间窗口聚合
grouped = trade_data.resample(window).agg({'amount': 'sum', 'side': 'first'})
# 筛选累计金额超过阈值的窗口
large_windows = grouped[grouped['amount'] > threshold]
return large_windows
3.3 时间窗口大单检测
这个方法更精细。它不光看金额,还看成交频率和价格变化。说白了,就是检测「异常活跃期」。
怎么理解?正常交易时,每分钟可能成交10笔,每笔几万块。突然有一分钟,成交了50笔,每笔都十几万,价格还往上窜——这大概率是主力在干活。
我常用的指标有三个:
- 成交笔数异常比: 当前窗口笔数 / 过去N个窗口平均笔数
- 金额异常比: 当前窗口金额 / 过去N个窗口平均金额
- 价格冲击系数: 价格变动幅度 / 成交金额
这三个指标结合起来,能有效过滤掉「量大但价格不动」的垃圾单(比如对倒盘)。
# 时间窗口大单检测
def time_window_detection(trade_data, window='1min', lookback=20):
# 计算滚动均值
rolling_volume = trade_data['amount'].rolling(lookback).mean()
rolling_count = trade_data['count'].rolling(lookback).mean()
# 当前窗口数据
current = trade_data.resample(window).last()
# 异常判定
current['volume_ratio'] = current['amount'] / rolling_volume
current['count_ratio'] = current['count'] / rolling_count
# 两个比值都超过2倍,才认为是异常窗口
anomaly = current[(current['volume_ratio'] > 2) & (current['count_ratio'] > 2)]
return anomaly
三种方法对比
| 方法 | 优点 | 缺点 | 适用场景 |
|---|---|---|---|
| 单笔大单阈值法 | 简单直观,计算快 | 无法识别拆单 | 流动性差的股票 |
| 累计大单统计法 | 能捕捉拆单行为 | 时间窗口选择敏感 | 主力吸筹/出货 |
| 时间窗口大单检测 | 综合判断,准确率高 | 参数多,调优复杂 | 高频交易、盘口分析 |
说实话,这三种方法没有绝对的好坏。我自己的策略里,通常是把它们结合起来用:先用单笔阈值法快速过滤,再用累计统计法确认,最后用时间窗口检测做精细判断。三层过滤下来,误报率能降到很低。
你想想看,主力再狡猾,也逃不过这三层网。关键是参数要调得合适,别太松也别太紧。这个度,就得靠历史数据回测来找了。
最后说一句:别迷信任何一种方法。市场在变,主力的手法也在变。我每三个月会重新回测一次参数,看看阈值是不是还合适。这个习惯,救过我不少次。