第二章:数据获取实战——用akshare抓取A股实时资金流向

好,咱们直接进入正题。上一章讲了资金流向的基本逻辑,这一章我来手把手带你搞定数据源。说白了,没有数据,再牛的分析思路也是空中楼阁。

我个人习惯用akshare这个库。为什么?因为它免费、开源,而且对A股的支持相当全面。你想想看,要是每次分析都得去券商接口付费,那成本就太高了。

2.1 安装与配置:别在这步翻车

安装其实就一行命令,但我见过太多人在这一步卡住。嗯,这里要注意环境问题。

pip install akshare --upgrade

我个人建议用国内镜像源,速度会快很多:

pip install akshare -i https://pypi.tuna.tsinghua.edu.cn/simple

⚠️ 我曾经遇到过一个问题:如果你同时安装了多个版本的pandas,akshare可能会报错。建议先创建一个干净的虚拟环境。

验证安装是否成功,跑一行代码试试:

import akshare as ak
print(ak.__version__)

如果能正常输出版本号,恭喜你,环境搞定了。

2.2 API调用详解:核心函数拆解

akshare里跟资金流向相关的函数有好几个,但我最常用的是 stock_individual_fund_flowstock_market_fund_flow。前者是个股,后者是大盘。

先看个股资金流向:

import akshare as ak

# 获取贵州茅台当日资金流向
df = ak.stock_individual_fund_flow(stock="600519", market="sh")
print(df.head())

返回的数据长这样:

日期 主力净流入 小单净流入 中单净流入 大单净流入 超大单净流入
2025-01-15 1.23亿 -0.45亿 -0.78亿 0.56亿 0.67亿

关键点:主力净流入 = 超大单净流入 + 大单净流入。这个公式一定要记住,后面实战判断全靠它。

再看大盘资金流向:

# 获取全市场资金流向
df_market = ak.stock_market_fund_flow()
print(df_market)

这个函数返回的是整个市场的资金汇总数据,包括上证、深证、创业板等。我一般用它来判断当天市场的整体情绪。

2.3 参数详解:别被坑了

这里有几个参数我特别想强调一下:

  • stock:股票代码,注意是字符串格式。沪市要加"sh",深市加"sz"?其实不用,akshare会自动识别。
  • market:这个参数在个股函数里其实可以省略,但我习惯写上,避免歧义。
  • start_dateend_date:可以获取历史数据,格式是"YYYY-MM-DD"。

💡 小技巧:如果你想要获取最近5天的资金流向,可以这样写:ak.stock_individual_fund_flow(stock="600519", start_date="2025-01-10", end_date="2025-01-15")

2.4 实战案例:抓取并保存数据

光说不练假把式。我写一个完整的脚本,把数据存到CSV里,方便后续分析。

import akshare as ak
import pandas as pd
from datetime import datetime, timedelta

# 获取最近5个交易日的数据
end_date = datetime.now().strftime("%Y-%m-%d")
start_date = (datetime.now() - timedelta(days=10)).strftime("%Y-%m-%d")

# 个股资金流向
stock_code = "600519"
df_stock = ak.stock_individual_fund_flow(
    stock=stock_code,
    start_date=start_date,
    end_date=end_date
)

# 保存到CSV
df_stock.to_csv(f"{stock_code}_fund_flow.csv", index=False)
print(f"数据已保存,共{len(df_stock)}条记录")

跑完这个脚本,你就能得到一个CSV文件。打开看看,数据是不是很规整?

2.5 常见问题与避坑

我遇到过几个坑,今天一并告诉你:

  1. 数据延迟问题:akshare的数据来源是东方财富,大概有15-30分钟的延迟。做日内交易要注意。
  2. 网络请求失败:有时候会报ConnectionError。我建议加个重试机制。
  3. 字段含义变化:akshare偶尔会更新字段名。我习惯每次运行前先打印列名看看。

⚠️ 我曾经在实盘策略里直接用了akshare的数据,结果某天接口改了字段名,策略直接报错。从那以后,我每次都会加一层数据校验。

2.6 知识体系总览

下面这张图是我自己画的,把本章的核心逻辑串起来了。你看一眼就能明白数据是怎么从接口到分析的。

akshare 接口 个股资金流向 大盘资金流向 主力净流入/流出 市场情绪判断 实战策略应用

这张图其实就说明白了:数据从akshare接口来,分个股和大盘两条线,最终都汇聚到实战策略里。你后面做分析的时候,脑子里要有这个框架。

好了,数据获取这块就讲到这里。代码你都拿到了,回去跑一遍试试。下一章咱们会讲怎么清洗和预处理这些数据——嗯,你会发现原始数据其实挺脏的。


专注资料整理