第二章:数据获取实战——用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_flow 和 stock_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_date 和 end_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 常见问题与避坑
我遇到过几个坑,今天一并告诉你:
- 数据延迟问题:akshare的数据来源是东方财富,大概有15-30分钟的延迟。做日内交易要注意。
- 网络请求失败:有时候会报ConnectionError。我建议加个重试机制。
- 字段含义变化:akshare偶尔会更新字段名。我习惯每次运行前先打印列名看看。
⚠️ 我曾经在实盘策略里直接用了akshare的数据,结果某天接口改了字段名,策略直接报错。从那以后,我每次都会加一层数据校验。
2.6 知识体系总览
下面这张图是我自己画的,把本章的核心逻辑串起来了。你看一眼就能明白数据是怎么从接口到分析的。
这张图其实就说明白了:数据从akshare接口来,分个股和大盘两条线,最终都汇聚到实战策略里。你后面做分析的时候,脑子里要有这个框架。
好了,数据获取这块就讲到这里。代码你都拿到了,回去跑一遍试试。下一章咱们会讲怎么清洗和预处理这些数据——嗯,你会发现原始数据其实挺脏的。