Skip to content

资金流向

A 股资金流向数据获取指南。

个股资金流向

历史资金流向

import finvista as fv

# 获取近 30 天资金流向
df = fv.get_cn_stock_moneyflow("000001", days=30)

# 获取近 60 天
df = fv.get_cn_stock_moneyflow("000001", days=60)

参数说明

参数 类型 必需 说明
symbol str 股票代码
days int 获取天数,默认 30

返回字段

字段 说明
date 交易日期
main_net_inflow 主力净流入
main_net_inflow_pct 主力净流入占比
super_large_net_inflow 超大单净流入
large_net_inflow 大单净流入
medium_net_inflow 中单净流入
small_net_inflow 小单净流入

实时资金流向

df = fv.get_cn_stock_moneyflow_realtime("000001")

行业资金流向

# 获取最新行业资金流向
df = fv.get_cn_industry_moneyflow()

# 获取指定日期
df = fv.get_cn_industry_moneyflow(date="2024-01-15")

返回字段

字段 说明
industry 行业名称
main_net_inflow 主力净流入
change_pct 涨跌幅
leading_stock 领涨股

使用示例

分析主力动向

df = fv.get_cn_stock_moneyflow("000001", days=30)

# 统计主力净流入天数
inflow_days = (df['main_net_inflow'] > 0).sum()
print(f"近 30 天主力净流入天数: {inflow_days}")

# 计算累计净流入
total_inflow = df['main_net_inflow'].sum()
print(f"累计主力净流入: {total_inflow/1e8:.2f} 亿元")

判断资金趋势

df = fv.get_cn_stock_moneyflow("000001", days=30)

# 计算 5 日移动平均
df['ma5'] = df['main_net_inflow'].rolling(5).mean()

# 判断趋势
if df['ma5'].iloc[0] > df['ma5'].iloc[4]:
    print("主力资金呈流入趋势")
else:
    print("主力资金呈流出趋势")

筛选行业资金流入

df = fv.get_cn_industry_moneyflow()

# 筛选主力净流入前 10 的行业
top_inflow = df.nlargest(10, 'main_net_inflow')
print(top_inflow[['industry', 'main_net_inflow', 'change_pct']])

资金与价格关系

# 获取股价和资金流向
price = fv.get_cn_stock_daily("000001", start_date="2024-01-01")
flow = fv.get_cn_stock_moneyflow("000001", days=30)

# 合并数据
import pandas as pd
merged = pd.merge(price, flow, on='date')

# 计算相关性
corr = merged['close'].corr(merged['main_net_inflow'])
print(f"股价与主力资金相关性: {corr:.2f}")

批量获取资金数据

symbols = ["000001", "600519", "000858"]
flows = {}

for symbol in symbols:
    flows[symbol] = fv.get_cn_stock_moneyflow(symbol, days=5)

# 比较主力资金
for symbol, df in flows.items():
    total = df['main_net_inflow'].sum()
    print(f"{symbol}: {total/1e8:.2f} 亿元")