第四节:北向资金核心指标——净买入额、成交额、持仓市值、资金流向的日频与周频计算

做北向资金分析,说白了就是跟四个数字打交道:净买入额、成交额、持仓市值、资金流向。这四个指标就像汽车的四个轮子,少一个都跑不稳。我刚开始研究北向资金时,就只盯着净买入额看,结果吃了不少亏。后来才明白,每个指标都有自己的脾气。

4.1 净买入额:最直观的“风向标”

净买入额,就是外资当天买了多少钱的股票,减去卖了多少钱的股票。正数代表净流入,负数代表净流出。这个指标最直接,也最容易理解。

但这里有个坑——净买入额 ≠ 实际流入资金。为什么?因为成交数据里包含了“被动成交”。比如某只股票被纳入MSCI指数,指数基金必须被动买入,这部分钱跟主动判断无关。我见过不少新手看到净买入额暴增就冲进去,结果第二天就被套了。

日频计算逻辑:

净买入额 = 当日买入成交额 - 当日卖出成交额

数据来源:沪深港通每日公布的十大活跃成交股数据

周频计算就更简单了,把一周五天的净买入额加起来就行。我个人习惯用周频数据做趋势判断,因为日频太容易受短期情绪干扰。你想想看,某天外资突然大买100亿,可能只是因为某个大机构调仓,不代表趋势变了。

# 日频净买入额计算示例
import pandas as pd

# 假设已有日频成交数据
df_daily = pd.DataFrame({
    'date': ['2024-01-02', '2024-01-03', '2024-01-04'],
    'buy_amount': [120.5, 98.3, 145.2],  # 亿元
    'sell_amount': [85.2, 102.1, 78.6]
})

df_daily['net_buy'] = df_daily['buy_amount'] - df_daily['sell_amount']
print(df_daily[['date', 'net_buy']])

# 周频汇总
df_daily['week'] = pd.to_datetime(df_daily['date']).dt.isocalendar().week
weekly_net = df_daily.groupby('week')['net_buy'].sum()
print(weekly_net)

4.2 成交额:判断“热度”的关键

成交额反映的是外资参与A股的活跃程度。净买入额可能很小,但成交额很大,说明外资在频繁交易、换手。这种情况往往意味着市场分歧较大。

我记得有一次,北向资金净买入额只有5个亿,但成交额却突破了800亿。我当时就觉得不对劲——外资在偷偷调仓。果然,第二天消费板块就大跌,科技股大涨。成交额这个指标,能帮你识别“假动作”。

指标 日频计算 周频计算 典型应用场景
成交额 买入额 + 卖出额 周内每日成交额求和 判断外资参与热度
净买入额 买入额 - 卖出额 周内每日净买入求和 判断外资方向性态度

我的经验:当成交额突然放大到前5日均值的1.5倍以上,同时净买入额为正,往往是短期行情的启动信号。但如果是成交额放大、净买入额为负,那就要小心了——外资可能在边打边撤。

4.3 持仓市值:看“底牌”

持仓市值是外资持有A股的总价值。这个指标最能反映外资的“底仓”情况。净买入额可能每天变,但持仓市值的变化趋势,才是真正的长期信号。

持仓市值的计算其实不复杂:

# 持仓市值计算逻辑
# 假设已有每日持仓明细
holdings = pd.DataFrame({
    'stock': ['贵州茅台', '宁德时代', '招商银行'],
    'shares': [1000000, 800000, 1200000],  # 持股数量
    'close_price': [1800, 220, 35]  # 当日收盘价
})

holdings['market_value'] = holdings['shares'] * holdings['close_price']
total_market_value = holdings['market_value'].sum()
print(f"当日持仓市值: {total_market_value/1e8:.2f} 亿元")

周频的持仓市值,我一般取周五收盘后的数据。为什么?因为周五的数据最能反映外资对下周的态度。如果周五持仓市值大幅增加,说明外资看好下周行情,愿意持仓过周末。

避坑指南:我曾经犯过一个错误——直接用持仓市值的变化来判断资金流向。其实持仓市值的变化包含两部分:一是净买入带来的增量,二是股价涨跌带来的浮盈浮亏。要拆开看,才能看到真实意图。

4.4 资金流向:拆解“真假外资”

资金流向这个指标,很多人把它跟净买入额混为一谈。其实不一样。资金流向更细,它把成交单拆成了“主动买入”和“主动卖出”。主动买入算流入,主动卖出算流出。

为什么要区分这个?因为被动成交(比如指数调仓)不反映真实意愿。主动成交才是外资真金白银的态度。我一般用这个公式:

资金流向 = 主动买入额 - 主动卖出额

其中:主动买入 = 以卖一价及以上成交的买单

主动卖出 = 以买一价及以下成交的卖单

日频计算时,我习惯把全天分成早盘(9:30-11:30)和午盘(13:00-15:00)两个时段分别算。为什么?因为早盘的资金流向往往反映隔夜消息的影响,午盘则反映当日情绪的变化。

# 资金流向的日频计算
def calculate_flow(buy_trades, sell_trades):
    """
    buy_trades: 主动买入成交明细
    sell_trades: 主动卖出成交明细
    """
    inflow = buy_trades['amount'].sum()
    outflow = sell_trades['amount'].sum()
    net_flow = inflow - outflow
    return net_flow

# 周频汇总
# 把一周五天的净流向加起来
weekly_flow = daily_flow.rolling(window=5).sum()

4.5 四个指标的综合运用框架

单独看任何一个指标都有局限性。我总结了一个四维框架,你可以参考:

  • 净买入额 + 成交额:判断外资的“态度”和“力度”。净买入额大、成交额大,是真干;净买入额小、成交额大,是调仓。
  • 持仓市值 + 资金流向:判断外资的“底牌”和“意图”。持仓市值增加、资金流向为正,是加仓;持仓市值增加、资金流向为负,是浮盈。
  • 日频 + 周频:日频看短期情绪,周频看中期趋势。两者方向一致时,信号最可靠。

一个小技巧:我每天收盘后会把四个指标画在一张图上。如果四个指标同时向上,那就是最强的共振信号。如果出现背离(比如净买入额向上但资金流向向下),就要警惕了。

4.6 知识体系框架图

下面这张图是我自己画的,把四个指标的关系理清楚了。你保存下来,做分析时对照着看:

北向资金核心指标四维框架 净买入额 成交额 持仓市值 资金流向 日频计算 周频计算 四维共振判断框架 买入信号 / 卖出信号 / 观望信号

这张图的核心逻辑是:四个指标各自独立,但最终要汇总到“四维共振”这个判断框架里。日频和周频是时间维度上的两个观察窗口。我个人习惯是:先用周频定方向,再用日频找买点。

最后提醒一句:这四个指标都是公开数据,但不同数据源的计算口径可能不一样。比如有些平台把大宗交易也算进去,有些不算。我建议你固定用一个数据源,保持一致性。我自己一直用Wind的数据,习惯了就不换了。

好了,这一节的内容就这些。四个指标,日频周频,说复杂也复杂,说简单也简单。关键是要在实践中反复验证,找到适合自己的组合方式。

蓝海数据掘金营,专注资料整理