大单统计:单笔大单金额计算、区间大单净流入/流出、大单成交占比分析
做盘口分析,绕不开一个核心问题:谁在买,谁在卖?
散户的零散单子,说实话,对股价的短期冲击有限。真正能撬动行情的,是那些动辄几十万、上百万的大单。我个人习惯把大单看作是「聪明钱」的脚印。今天这一章,我们就来聊聊怎么把这些脚印找出来,并且量化它。
一、单笔大单金额计算:门槛怎么定?
首先得定义什么叫「大单」。不同股票,盘子大小不一样,门槛自然也不同。
我见过有人直接用固定金额,比如50万以上就算大单。这方法简单,但不够灵活。你想想看,贵州茅台的一笔50万单子,和工商银行的一笔50万单子,意义能一样吗?
我个人推荐用动态阈值。具体做法是:
- 统计过去N笔成交的金额分布
- 取90%或95%分位数作为大单门槛
- 超过这个值的,就算大单
单笔大单金额 = 成交价格 × 成交数量
大单阈值 = percentile(过去N笔成交金额, 95)
举个例子。某股票过去1000笔成交,金额从几千到几十万不等。我算了一下,95%分位数是38万。那么今天任何一笔超过38万的成交,我都会标记为大单。
二、区间大单净流入/流出:谁在主导方向?
单笔大单看完了,我们得看一段时间内的合力。这就引出了净流入/流出的概念。
说白了,就是把一段时间内的大单买入金额,减去大单卖出金额。
def calculate_net_flow(df, threshold):
"""
df: 包含成交数据的DataFrame
threshold: 大单阈值
"""
# 筛选大单
large_orders = df[df['amount'] >= threshold]
# 区分买入和卖出
buy = large_orders[large_orders['side'] == 'buy']['amount'].sum()
sell = large_orders[large_orders['side'] == 'sell']['amount'].sum()
net_flow = buy - sell
return net_flow
净流入为正,说明大资金在主动买入;净流出为负,说明大资金在撤退。
我习惯把净流入/流出做成累积曲线。这样能直观看到资金进出的节奏。比如下图展示的就是某股票一天内的大单净流入累积情况:
三、大单成交占比分析:市场参与度有多深?
净流入/流出告诉我们方向,但没告诉我们力度。这时候就需要看大单成交占比了。
大单成交占比 = 大单成交总金额 / 总成交金额 × 100%
这个指标越高,说明市场越被大资金主导。我一般会分几个区间来判断:
| 占比范围 | 市场状态 | 我的操作建议 |
|---|---|---|
| < 20% | 散户主导 | 观望为主,趋势不明朗 |
| 20% - 40% | 机构参与 | 可跟随大单方向操作 |
| 40% - 60% | 主力控盘 | 重点关注,趋势性强 |
| > 60% | 极端行情 | 警惕主力出货或对倒 |
代码实现也很简单:
def large_order_ratio(df, threshold):
"""
计算大单成交占比
"""
total_amount = df['amount'].sum()
large_amount = df[df['amount'] >= threshold]['amount'].sum()
ratio = large_amount / total_amount * 100
return round(ratio, 2)
四、综合应用:一个完整的分析框架
把上面三个指标结合起来,就能形成一个完整的分析框架。我个人习惯这样用:
- 第一步: 计算动态大单阈值,标记每一笔大单
- 第二步: 按分钟或5分钟区间,计算净流入/流出
- 第三步: 计算每个区间的大单成交占比
- 第四步: 综合判断资金意图
嗯,这里还要注意一点。大单统计不是万能的。有些主力会拆单,把大单拆成几十笔小单来隐藏意图。所以大单统计只能作为参考,不能完全依赖。
我个人习惯是:大单统计给出方向,盘口挂单给出力度,K线形态给出趋势。三者结合,胜率会高很多。
• 单笔大单:用动态阈值,别用固定值
• 净流入/流出:看累积曲线,别只看单点
• 成交占比:结合净流入一起看,别单独使用
好了,这一章的内容就到这里。大单统计是盘口分析的基础,也是后续策略开发的重要输入。下一章我们会聊到如何把这些指标用到实战策略中,敬请期待。
公众号:蓝海资料掘金营,微信deep3321