跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像AI 生图工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python算法

基于 AKShare 获取 A 股历史行情数据实战

AKShare 是 Python 开源金融数据接口库,支持 A 股、期货等市场数据获取。演示如何在 Jupyter 环境中安装并调用 stock_zh_a_hist 接口,通过封装重试机制与列名映射函数,实现贵州茅台(600519)历史行情的稳定抓取与清洗。重点涵盖日期格式处理、复权参数选择及异常捕获策略,为量化分析提供基础数据支撑。

人间失格发布于 2026/1/21更新于 2026/7/2539 浏览
基于 AKShare 获取 A 股历史行情数据实战

在 Jupyter Notebook 环境下,使用 Python 3.12.7 配合 AKShare 库可以高效获取金融数据。首先确保环境已安装最新版 AKShare。

安装与验证

在终端或 Notebook 单元格中执行以下命令:

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

安装完成后,导入库并检查版本,确认无报错:

import akshare as ak
print("AKShare 版本:", ak.__version__)

基础数据获取

以贵州茅台(600519)为例,直接调用接口获取日线数据。注意日期格式需为 YYYYMMDD,且代码块需处理可能的网络异常。

try:
    import akshare as ak
    print("\n尝试使用 AKShare 获取 A 股数据示例:")
    a_stock = ak.stock_zh_a_hist(
        symbol="600519", 
        period="daily", 
        start_date="20250101", 
        end_date="20250507"
    )
    print(a_stock.head())
except ImportError:
    print("\n提示:安装 AKShare 可获得中国证券市场数据 -> pip install akshare")
except Exception as e:
    print(f"AKShare 获取失败:{str(e)}")

运行后应能看到包含开盘、收盘等字段的 DataFrame。若遇到网络波动,建议增加重试机制。

封装稳健的数据获取函数

实际开发中,我们通常需要更健壮的处理逻辑,包括自动重试、列名标准化及复权处理。下面是一个生产级封装示例:

import akshare as ak
import pandas as pd

# 设置显示参数,避免输出被截断
pd.set_option('display.max_columns', None)
pd.set_option('display.width', 1000)

 ():
    
     _  ():
        :
            df = ak.stock_zh_a_hist(
                symbol=symbol, 
                period=, 
                start_date=start_date, 
                end_date=end_date, 
                adjust= 
            )
            
            df[] = pd.to_datetime(df[])
            df.set_index(, inplace=)
            
            df = df.rename(columns={
                : , 
                : , 
                : , 
                : , 
                : , 
                : , 
                : , 
                : , 
                : , 
                : 
            })
             df.sort_index()
         Exception  e:
            ()
            
     ConnectionError()


:
    data = get_a_stock_data(, , )
    ()
    (data.head())
    ()
    (data.describe())
 Exception  e:
    (, (e))
    ()
    ()
    ()
    ()
def
get_a_stock_data
symbol, start_date, end_date
"""获取 A 股历史行情数据(自动重试版)"""
for
in
range
3
try
"daily"
"hfq"
# hfq 后复权,qfq 前复权,空为不复权
# 转换日期格式
'日期'
'日期'
'日期'
True
# 重命名列(英文列名更方便后续处理)
'开盘'
'open'
'收盘'
'close'
'最高'
'high'
'最低'
'low'
'成交量'
'volume'
'成交额'
'amount'
'振幅'
'amplitude'
'涨跌幅'
'pct_chg'
'涨跌额'
'change'
'换手率'
'turnover'
return
except
as
print
f"获取数据失败,正在重试... ({str(e)})"
continue
raise
"数据获取失败,请检查网络或代码"
# 执行数据获取
try
"600519"
"20250101"
"20250507"
print
"\n数据获取成功!前 5 行数据:"
print
print
"\n基础统计信息:"
print
except
as
print
"发生错误:"
str
print
"建议解决方案:"
print
"1. 检查股票代码格式(需纯数字,不带市场后缀)"
print
"2. 尝试调整日期格式为 YYYYMMDD"
print
"3. 访问 AKShare 官网查看最新接口文档:https://www.akshare.xyz/"

关键点说明

  1. 复权参数:adjust 参数默认为空(不复权),量化回测通常建议使用 hfq(后复权)或 qfq(前复权)以消除分红拆股影响。
  2. 列名映射:原始接口返回中文列名,转换为英文更符合 Pandas 数据处理习惯。
  3. 异常处理:网络请求不稳定时,循环重试能显著提高成功率。
  4. 日期格式:务必统一为字符串形式的 YYYYMMDD,否则可能触发类型错误。

通过上述封装,即可将数据获取逻辑复用至更多策略分析场景中。

目录

  1. 安装与验证
  2. 基础数据获取
  3. 封装稳健的数据获取函数
  4. 设置显示参数,避免输出被截断
  5. 执行数据获取
  6. 关键点说明
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • MySQL 9.6.0 Windows 版安装与配置指南
  • Anaconda 环境变量配置意义及捆绑 Python 路径说明
  • openclaw新手入门指南:一文看懂环境搭建、模型配置与 WebUI 远程访问
  • 用 Python 处理番茄小说的字体加密内容
  • Python、NumPy、Pandas 及 Matplotlib 版本兼容指南
  • 网页抓取(Web Scraping)技术指南:从原理到实战
  • STM32F407 CubeMX HAL 库三环串级 PID FOC 电控算法实现总结
  • Dify 平台 Webhook 机制配置与使用场景
  • 基于 Milvus 与混合检索的云厂商文档智能问答系统:Java SpringBoot 实践
  • Python 调用同花顺问财 API 获取金融数据实战指南
  • Zotero 本地 AI 文献助手:RAG 检索增强与 MCP 协议集成实战
  • Claude Code 在 Linux(Ubuntu) 上的完整安装部署指南
  • Python 布尔类型(bool)核心用法与特性
  • OpenCode:开源 AI 编程智能体,支持多模型与远程协作
  • 基于 FPGA 的日志及参数文件存储设计
  • Kimi K2.5 实测:多模态与编程能力的融合实践
  • Home Assistant 美的设备本地控制配置指南
  • ROS2 + Gazebo + PX4 环境搭建与仿真飞行实战
  • Ubuntu 24.04 GPU 服务器测试系统盘制作指南
  • C++ 实现 AVL 树:从原理到代码实战

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online