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

【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 财经数据分析等相关内容,欢迎大家点赞 + 收藏 + 关注,避免后续找不到。

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

Read more

Python 数据科学秘籍(五)

原文:annas-archive.org/md5/a4f348a4e11e27ea41410c793e63daff 译者:飞龙 协议:CC BY-NC-SA 4.0 第九章:生长树 本章我们将涵盖以下食谱: * 从树到森林——随机森林 * 生长极度随机化的树 * 生长旋转森林 介绍 在本章中,我们将看到更多基于树的算法的袋装方法。由于它们对噪声的鲁棒性以及对各种问题的普适性,它们在数据科学社区中非常受欢迎。 大多数这些方法的名声在于它们相比其他方法能够在没有任何数据准备的情况下获得非常好的结果,而且它们可以作为黑盒工具交给软件工程师使用。 除了前文提到的过高的要求外,还有一些其他优点。 从设计上看,袋装法非常适合并行化。因此,这些方法可以轻松应用于集群环境中的大规模数据集。 决策树算法在树的每一层将输入数据划分为不同的区域。因此,它们执行了隐式的特征选择。特征选择是构建良好模型中的一个重要任务。通过提供隐式特征选择,决策树相较于其他技术处于有利位置。因此,带有决策树的袋装法具备这一优势。 决策树几乎不需要数据准备。例如,考虑属性的缩放。属性的缩放对决策

By Ne0inhk
Python 日志(logging)全解析

Python 日志(logging)全解析

文章目录 * 一、核心概念(四大组件) * 二、日志级别 * 三、基础使用 * 3.1 最简用法(默认配置) * 3.2 基本配置(logging.basicConfig) * 四、进阶配置(手动构建组件) * 4.1 手动配置流程 * 4.2 示例:多输出目标(控制台 + 文件) * 4.3 过滤器(Filter) * 五、日志轮转(解决日志文件过大问题) * 5.1 按大小轮转(RotatingFileHandler) * 5.2 按时间轮转(TimedRotatingFileHandler) * 六、异常日志记录 * 6.1 logging.exception

By Ne0inhk

重新创建python3.10环境,与先创建python3.8环境然后conda install python=3.10,二者不同

重新创建python3.10环境,与先创建python3.8环境然后conda install python=3.10,二者不同 今天安装mem0ai: pip install mem0ai 安装前没有查看要求的python版本,装了3.8,然后运行如下指令报错: from mem0 import MemoryClient 然后发现mem0ai要求python版本3.10以上,于是通过conda install python=3.10升级,出现了新的报错。 删除当前环境后重新创建python3.10环境,就可以正常运行了。 问了AI原来二者是有区别的: “在已有 Conda 环境中通过 conda install python=3.10 升级 Python 版本,会导致依赖包(尤其是含 C 扩展的包)与新 Python

By Ne0inhk
Python-flask的企业合同管理系统-Pycharm django

Python-flask的企业合同管理系统-Pycharm django

目录 * Python Flask 企业合同管理系统技术要点 * Django 企业合同管理系统技术对比 * Pycharm 开发优化技巧 * 技术选型建议 * 开发技术路线 * 源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式! Python Flask 企业合同管理系统技术要点 Flask 框架核心模块 * 使用 Flask-SQLAlchemy 进行数据库模型设计,定义合同、客户、用户等数据表。 * 通过 Flask-WTF 实现表单验证,确保合同录入数据的合法性。 * 采用 Flask-Login 管理用户认证和权限控制,区分管理员与普通用户角色。 关键功能实现 * 合同增删改查(CRUD)功能,结合分页插件(Flask-Paginate)优化数据展示。 * 文件上传模块,支持 PDF/Word 格式合同附件存储,使用 Flask-Uploads 扩展。 * 合同状态跟踪(如待签署、

By Ne0inhk