3、大单成交识别:基于成交明细数据的大单判定标准
做量化交易的朋友都知道,主力资金动向是市场的风向标。但怎么从海量的成交数据里,把主力的「大单」给揪出来?
这其实是个老话题了。我刚开始做这个的时候,也踩过不少坑。今天咱们就聊聊两种最基础、也最实用的方法——金额阈值法和成交量阈值法。
3.1 为什么需要识别大单?
先想一个问题:散户和主力的交易行为,最大的区别在哪?
说白了,散户买卖是零散的,几手、几十手。主力不一样,他们一出手就是几百手、几千手,甚至上万手。这种大单,往往意味着「有大事要发生」。
我个人习惯把大单成交看作是「主力留下的脚印」。你想想看,如果一只股票平时成交清淡,突然连续出现几笔百万级别的大单,那大概率是有人在吸筹或者出货。
所以,识别大单的核心目的就一个:从噪音中提取信号。
3.2 方法一:金额阈值法
这个方法最直观。我直接设定一个金额门槛,比如单笔成交金额超过 50 万元,我就认为这是一笔「大单」。
为什么用金额?因为不同股票的价格不一样。贵州茅台一手就要 20 多万,而工商银行一手才 2000 块。如果用成交量来判定,茅台一手就算大单,工行一手就是小单,这显然不合理。
3.2.1 阈值怎么定?
这里没有标准答案。我一般会参考以下几个维度:
- 股票的平均成交金额:如果一只股票日均成交额只有 5000 万,那 50 万就算大单了。如果日均成交额 50 亿,那 50 万可能只是毛毛雨。
- 市场环境:牛市里大单频出,阈值可以适当调高。熊市里成交清淡,阈值就要降低。
- 个人经验:我习惯用「日均成交额的千分之一」作为基准线。比如日均成交额 1 亿,那阈值就是 10 万。这个比例我用了好几年,效果还不错。
3.2.2 代码实现
下面是一个简单的 Python 示例,我用的是 pandas 来处理数据。嗯,这里要注意,实际生产环境里数据量会很大,建议用向量化操作,别用 for 循环。
import pandas as pd
# 假设 df 是成交明细数据,包含 'price' 和 'volume' 两列
df['amount'] = df['price'] * df['volume'] # 计算单笔成交金额
# 设定阈值,比如 50 万元
threshold_amount = 500000
# 标记大单
df['is_big_order_amount'] = df['amount'] >= threshold_amount
# 统计大单数量
big_order_count = df['is_big_order_amount'].sum()
print(f"大单数量: {big_order_count}")
我在项目中遇到过一个问题:有些股票价格很高,比如 1000 块的股票,一手就是 10 万。这时候 50 万的阈值可能太低了,导致「大单」泛滥。所以,我建议你根据股票价格区间做分层处理。
3.3 方法二:成交量阈值法
这个方法更直接——我不管价格,只看手数。比如单笔成交超过 500 手,我就认为是大单。
什么时候用成交量法?当股票价格相对稳定,或者你更关注「数量」而非「金额」的时候。比如期货市场,合约价格波动不大,用成交量阈值就更合适。
3.3.1 阈值怎么定?
同样,没有固定值。我一般会参考:
- 流通股本:小盘股 100 手就算大单,大盘股可能 1000 手才算。
- 历史分布:取过去一段时间所有单笔成交量的 90% 分位数。
- 行业惯例:有些量化团队把「超过 1000 手」统一视为大单。我个人觉得这太粗糙了,容易误判。
3.3.2 代码实现
# 设定成交量阈值,比如 500 手
threshold_volume = 500
# 标记大单
df['is_big_order_volume'] = df['volume'] >= threshold_volume
# 统计
big_order_vol_count = df['is_big_order_volume'].sum()
print(f"成交量大单数量: {big_order_vol_count}")
3.4 两种方法的对比
你可能会问:到底用哪个好?
我的建议是:两者结合使用。金额阈值法更合理,因为它考虑了价格因素。成交量阈值法更直观,适合快速筛选。
| 对比维度 | 金额阈值法 | 成交量阈值法 |
|---|---|---|
| 核心逻辑 | 单笔成交金额超过阈值 | 单笔成交量超过阈值 |
| 适用场景 | 股票价格差异大的市场 | 价格稳定或期货市场 |
| 优点 | 更合理,能反映资金规模 | 计算简单,直观 |
| 缺点 | 高价股容易误判 | 低价股容易误判 |
| 推荐指数 | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
3.5 实战中的组合策略
我个人在实际项目中,用的是「双重过滤」策略:
- 第一层过滤:用金额阈值法,筛选出单笔成交金额超过 30 万(动态调整)的订单。
- 第二层过滤:在第一步的基础上,再要求成交量超过 200 手。
这样做的好处是:既排除了高价股的小单(比如茅台一手 20 万,但只有 1 手),也排除了低价股的大单(比如 1 块钱的股票 1000 手才 1000 块)。
3.6 知识体系图
下面我用一张 SVG 图来总结本章的核心逻辑。你一看就明白了。
这张图把本章的知识点串起来了。从成交明细数据出发,两条路——金额法和成交量法,各有各的适用场景。最后,我建议你把两者结合起来用,效果最好。
好了,关于大单识别的两种方法,就聊到这儿。记住,工具是死的,人是活的。阈值怎么调、怎么组合,最终还是要靠你对市场的理解。
公众号:蓝海资料掘金营,微信deep3321