【Python 量化入门】AKshare 保姆级使用教程:零成本获取股票 / 基金 / 期货全市场金融数据

做量化交易、财经数据分析、投资复盘的开发者和投资者,经常会遇到核心痛点:付费金融数据接口成本高、免费 API 注册流程繁琐、多市场数据分散难以整合。告别 QMT 回测烦恼!手把手教你搭建 MiniQMT+Backtrader 量化回测框架

本文就给大家详细讲解 Python 量化圈的开源神器AKshare,从安装到核心功能实战全覆盖,代码可直接复制运行,零基础也能一键获取全市场金融行情数据。

一、AKshare 是什么?

AKshare 是一款基于 Python 开发的开源金融数据接口库,专为个人投资者、量化爱好者、财经数据分析人员打造,是目前国内生态最完善、维护最活跃的免费金融数据工具之一。

它支持股票、期货、基金、外汇、债券、指数、加密货币等多种主流金融市场的数据获取,核心优势如下:

  • 免费开源:完全开源免费,无隐藏收费,个人非商用零成本使用,无需开通付费会员
  • 数据覆盖全面:A 股、美股、港股、期货、基金、外汇、宏观经济、行业数据等全覆盖
  • 简单易用:无需复杂的 API 注册、无需申请接口密钥,安装后导入即可调用,一行代码完成数据获取
  • 持续更新迭代:开发团队维护活跃,数据源持续优化拓展,适配国内主流财经平台的接口更新

二、AKshare 环境安装与配置

2.1 环境要求

  • Python 版本:3.8 及以上版本
  • 依赖库:自动安装 pandas 等核心依赖库,无需手动配置

2.2 一键安装命令

为解决国内用户 pip 安装网络超时、下载速度慢的问题,推荐使用清华镜像源安装,复制以下命令到终端 / CMD/PyCharm 终端即可一键安装:

复制代码
pip install akshare -i https://pypi.tuna.tsinghua.edu.cn/simple

2.3 安装验证

安装完成后,在 Python 环境中执行以下代码,无报错且输出版本号,即代表安装成功:

复制代码
import akshare as ak

# 打印AKshare版本号
print("AKshare安装成功,当前版本:", ak.__version__)

三、AKshare 核心功能实战(4 大高频使用场景)

以下为日常投资分析、量化研究中最高频的 4 个使用场景,所有代码均修复了笔误,可直接复制运行。

3.1 A 股全市场实时行情数据获取

3.1.1 功能说明

通过 stock_zh_a_spot() 接口,可一次性获取 A 股全市场所有标的的实时行情数据,无需循环调用,返回结构化的 DataFrame 数据集,适配每日复盘、标的批量筛选等场景。

3.1.2 完整代码示例
复制代码
# 导入AKshare库
import akshare as ak

# 获取A股全市场实时行情数据
stock_zh_a_spot_df = ak.stock_zh_a_spot()

# 打印输出数据
print(stock_zh_a_spot_df)
3.1.3 结果说明

接口返回数据包含股票代码、股票名称、最新价、涨跌额、涨跌幅、买入价、卖出价、昨收价、今开价、最高 / 最低价、成交量、成交额等全维度实时行情指标。

3.2 单只股票历史 K 线数据获取

3.2.1 功能说明

通过 stock_zh_a_hist() 接口,可获取指定股票的历史 K 线数据,支持多周期、多复权方式,是量化策略回测、技术分析的核心基础功能。

3.2.2 完整代码示例
复制代码
# 导入AKshare库
import akshare as ak

# 获取单只股票历史K线数据
stock_zh_a_hist_df = ak.stock_zh_a_hist(
    symbol="000001",  # 目标股票代码,示例为平安银行
    period="daily",    # 数据周期,支持daily(日线)/weekly(周线)/monthly(月线)
    start_date="20230101",  # 数据起始日期,固定8位年月日格式
    end_date="20240301",    # 数据结束日期,固定8位年月日格式
    adjust="qfq"       # 复权方式:qfq=前复权、hfq=后复权,不填默认不复权
)

# 打印输出数据
print(stock_zh_a_hist_df)
3.2.3 核心参数详解
参数名 作用 可选值
symbol 目标股票代码 A 股 6 位数字股票代码
period 数据周期 daily/weekly/monthly
start_date 数据起始时间 8 位数字,格式:YYYYMMDD
end_date 数据结束时间 8 位数字,格式:YYYYMMDD
adjust 复权方式 qfq (前复权)、hfq (后复权)
3.2.4 结果说明

接口返回数据包含交易日期、股票代码、开盘价、收盘价、最高价、最低价、成交量、成交额、振幅、涨跌幅、涨跌额、换手率等核心 K 线指标,可直接用于量化回测、技术指标计算、数据可视化。

3.3 全市场开放式基金最新净值数据获取

3.3.1 功能说明

通过 fund_open_fund_daily_em() 接口,可一键获取当前交易日全市场所有开放式基金的最新净值数据,数据源对接天天基金网,实时同步官方数据。

3.3.2 完整代码示例
复制代码
# 导入AKshare库
import akshare as ak

# 获取全市场开放式基金当日净值数据
fund_open_fund_daily_df = ak.fund_open_fund_daily_em()

# 打印输出数据
print(fund_open_fund_daily_df)
3.3.3 结果说明

接口返回数据包含基金代码、基金简称、单位净值、累计净值、日涨跌幅、净值更新日期等核心信息,适配基金筛选、持仓净值跟踪、全市场基金业绩对比等场景。

3.4 单只基金净值历史走势数据获取

3.4.1 功能说明

通过 fund_open_fund_info_em() 接口,可获取指定基金的历史净值走势数据,支持单位净值、累计净值、累计收益率多维度查询,适配基金业绩深度分析、风险指标计算等场景。

3.4.2 完整代码示例
复制代码
# 导入AKshare库
import akshare as ak

# 获取指定基金的净值历史走势数据
fund_open_fund_info_df = ak.fund_open_fund_info_em(
    symbol="015566",  # 目标基金代码,示例为万家精选混合C
    indicator="单位净值走势"  # 数据类型,可选单位净值走势/累计净值走势/累计收益率走势
)

# 打印输出数据
print(fund_open_fund_info_df)
3.4.3 核心参数详解
  • symbol:目标基金 6 位数字代码
  • indicator:数据查询类型,可选值:单位净值走势累计净值走势累计收益率走势
  • 补充说明:当 indicator 设置为 累计收益率走势 时,可新增 period 参数指定时间周期,可选值:"1月", "3月", "6月", "1年", "3年", "5年", "今年来", "成立来"

四、新手常见问题 FAQ

Q1:安装 AKshare 失败,提示网络超时 / 找不到对应库怎么办?

A:优先使用本文提供的清华镜像源安装命令;若仍失败,先执行 python -m pip install --upgrade pip 升级 pip 工具,再重新执行安装命令;同时检查 Python 版本是否为 3.8 及以上。

Q2:接口返回的行情数据有延迟吗?可以用于实盘交易吗?

A:AKshare 的数据源均来自公开财经平台,免费行情源存在一定的延迟(通常几秒到几十秒不等),仅适合学习研究、复盘分析、策略回测使用,不建议直接用于高频实盘交易

Q3:接口有调用频率限制吗?

A:官方无强制的调用频次限制,但建议控制请求频率,避免短时间内高频并发请求给数据源服务器造成压力,否则可能被临时限制 IP 访问。

Q4:除了股票和基金,AKshare 还支持哪些数据获取?

A:AKshare 提供数百个数据接口,除本文讲解的基础功能外,还支持期货、期权、债券、外汇、美股、港股、宏观经济数据、行业数据、上市公司财务报表、龙虎榜、融资融券等多维度数据,可参考 AKshare 官方文档查看完整接口列表。

五、总结

AKshare 作为开源免费的金融数据工具,完美解决了个人投资者、量化新手的金融数据获取痛点,零成本即可覆盖日常投资复盘、数据分析、策略回测的绝大多数需求。

本文为 AKshare 的入门保姆级教程,后续会持续更新 AKshare 的高阶用法、量化策略实战、Python 财经数据分析等相关内容,欢迎大家点赞 + 收藏 + 关注,避免后续找不到。

免责声明:本文仅为技术工具分享,所有代码均为学习示例,不构成任何投资建议。金融市场有风险,投资需谨慎。

相关推荐
YouGIS顽石工坊1 小时前
坐标转换服务私有化部署指南 - 源码与Docker两种方案
python·restful·docker镜像·python源码·pyproj·坐标转换服务·高斯克吕格投影
谢尔登1 小时前
深入React19任务调度器Scheduler
开发语言·前端·javascript
hoiii1871 小时前
MATLAB中LSSVM工具包及简单例程详解
开发语言·matlab
mingren_13142 小时前
SDL3配置及基本使用(完整demo)
开发语言·c++·音视频
众创岛2 小时前
使用IIS运行php程序,处理put和delete请求出现405错误
开发语言·php
sycmancia2 小时前
C++——完善的复数类
开发语言·c++
金刚狼882 小时前
在qt creator中创建helloworld程序并构建
开发语言·qt
小二·2 小时前
Go 语言系统编程与云原生开发实战(第21篇)
开发语言·云原生·golang
小二·2 小时前
Go 语言系统编程与云原生开发实战(第20篇)
开发语言·云原生·golang