量化投资python课程 (量化投资零基础入门)

【量化投资学习专栏】利用python获取A股的实时和历史行情数据

欢迎来到python量化投资从零开始学习专栏,在这里,你将看到一名投资小白如何从零开始学习量化知识。

这是专栏的第一篇文章,主要内容是 python 如何利用 akshare 获取股票数据

量化工具获取股票板块信息,量化投资python课程

akshare 简介

akshare 是一个 Python 数据分析领域非常实用的金融数据接口库,提供了丰富的金融市场数据, 我们可以使用它获取丰富的数据,例如:

  1. 获取实时行情数据: stock_zh_a_minutestock_zh_a_hourly 等;
  2. 获取宏观经济数据:如通货膨胀率、GDP、CPI 等;
  3. 获取行业数据:如各行业指数、成分股等;
  4. 获取港股、美股等海外市场数据;
  5. 获取各类新闻资讯、公告等信息。

akshare 安装与使用

安装步骤 首先,可以通过 pip 工具安装 akshare 包:

pip install akshare

akshare 数据接口 安装完成后,我们就可以开始使用 akshare 了,常用的 akshare 获取A股数据的接口有以下这些:

 # A股实时行情数据和历史行情数据
 "stock_zh_a_spot"  # 新浪 A 股实时行情数据
 "stock_zh_a_spot_em"  # 东财 A 股实时行情数据
 "stock_sh_a_spot_em"  # 东财沪 A 股实时行情数据
 "stock_sz_a_spot_em"  # 东财深 A 股实时行情数据
 "stock_bj_a_spot_em"  # 东财京 A 股实时行情数据
 "stock_new_a_spot_em"  # 东财新股实时行情数据
 "stock_kc_a_spot_em"  # 东财科创板实时行情数据
 "stock_zh_b_spot_em"  # 东财 B 股实时行情数据
 "stock_zh_a_daily"  # 获取 A 股历史行情数据(日频)
 "stock_zh_a_minute"  # 获取 A 股分时历史行情数据(分钟)
 "stock_zh_a_cdr_daily"  # 获取 A 股 CDR 历史行情数据(日频)

接下来,我们使用 akshare接口获取东财 A 股行情数据,并保存为csv文件。

使用python获取所有股票的实时行情数据

tock_zh_a_spot_em实时数据接口

描述: 东方财富网-沪深京 A 股-实时行情

输入参数:函数没有入参

输出参数:pandas的dataFrame格式的股票数据,包含股票代码、名称、最新价、涨跌幅、涨跌额、成交量、成交额、振幅等20多项指标:

python代码:

import akshare as ak
# 获取东方财富网-沪深京 A 股-实时行情
df = ak.stock_zh_a_spot_em()
# 保存为csv文件,encoding="utf_8_sig"确保csv文件可以正常显示中文
spath = r"./data.csv"
df.to_csv(spath, encoding="utf_8_sig", index=False)

获取的CSV数据可以通过excel打开:

量化工具获取股票板块信息,量化投资python课程

使用python获取历史股票数据

stock_zh_a_hist历史数据接口 描述: 东方财富-沪深京 A 股日频率数据输入参数:

量化工具获取股票板块信息,量化投资python课程

输出参数-历史行情数据

量化工具获取股票板块信息,量化投资python课程

python代码获取某只股票近期天粒度的行情数据:

import akshare as ak

# 获取A股 600519 今年1月至今的行情数据
df = ak.stock_zh_a_hist(symbol="600519", period='daily', start_date='20230101', end_date='20230918')
# 保存为csv文件,encoding="utf_8_sig"确保csv文件可以正常显示中文
spath = r"../data/600519_20230101_20230918_daily.csv"
df.to_csv(spath, encoding="utf_8_sig", index=False)

文件中每一行是一天的数据,通过这些数据,我们可以对该股票近期的走势进行相应的分析。

量化工具获取股票板块信息,量化投资python课程

总结

本文主要介绍了python如何利用akshare库获取股票数据,并通过代码示例讲解了如何使用tock_zh_a_spot_em接口获取 A股所有股票的实时数据 ,stock_zh_a_hist接口获取 某只具体股票的历史数据