一、 AKShare 简介

定位:AKShare 是一个开源的 Python 库,专注于提供股票、基金、期货、期权、外汇等金融数据接口。

akshare官网:Welcome to AKShare's Online Documentation! — AKShare 1.16.62 文档

特点:数据源丰富、接口简洁、支持主流数据格式(如 Pandas DataFrame)。

适用场景:量化交易、数据分析、学术研究等。

二、安装与配置

安装 AKShare

pip install akshare --upgrade

依赖库安装

AKShare 依赖 pandas, requests 等库,若未自动安装,可手动安装。

三、股票数据复权

  1. 为何要复权:由于股票存在配股、分拆、合并和发放股息等事件,会导致股价出现较大的缺口。 若使用不复权的价格处理数据、计算各种指标,将会导致它们失去连续性,且使用不复权价格计算收益也会出现错误。 为了保证数据连贯性,常通过前复权和后复权对价格序列进行调整。

  2. 前复权:保持当前价格不变,将历史价格进行增减,从而使股价连续。 前复权用来看盘非常方便,能一眼看出股价的历史走势,叠加各种技术指标也比较顺畅,是各种行情软件默认的复权方式。 这种方法虽然很常见,但也有两个缺陷需要注意。

    2.1 为了保证当前价格不变,每次股票除权除息,均需要重新调整历史价格,因此其历史价格是时变的。 这会导致在不同时点看到的历史前复权价可能出现差异。(所谓除权,就是公司在送股、转股、配股后,由于总股数增加,但公司内在价值并无变化,因此需要将每股股价下调来保持总市值不变。)

    2.2 对于有持续分红的公司来说,前复权价可能出现负值。

  3. 后复权:保证历史价格不变,在每次股票权益事件发生后,调整当前的股票价格。 后复权价格和真实股票价格可能差别较大,不适合用来看盘。 其优点在于,可以被看作投资者的长期财富增长曲线,反映投资者的真实收益率情况。

  4. 在量化投资研究中普遍采用后复权数据。

四、A股-历史行情数据 

1、历史行情数据-东财

接口:stock_zh_a_hist

目标:单次返回指定沪深京 A 股上市公司、指定周期和指定日期间的历史行情日频率数据

输入参数:

名称 类型 描述
symbol str symbol='603777'; 股票代码可以在 ak.stock_zh_a_spot_em() 中获取
period str period='daily'; choice of {'daily', 'weekly', 'monthly'}
start_date str start_date='20210301'; 开始查询的日期
end_date str end_date='20210616'; 结束查询的日期
adjust str 默认返回不复权的数据; qfq: 返回前复权后的数据; hfq: 返回后复权后的数据
timeout float timeout=None; 默认不设置超时参数

输出参数

名称 类型 描述
日期 object 交易日
股票代码 object 不带市场标识的股票代码
开盘 float64 开盘价
收盘 float64 收盘价
最高 float64 最高价
最低 float64 最低价
成交量 int64 注意单位: 手
成交额 float64 注意单位: 元
振幅 float64 注意单位: %
涨跌幅 float64 注意单位: %
涨跌额 float64 注意单位: 元
换手率 float64 注意单位: %

 2、历史行情数据-新浪

接口:stock_zh_a_daily(访问有限制)stock_zh_a_hist (数据质量高, 访问无限制)

目标:单次返回指定沪深京 A 股上市公司指定日期间的历史行情日频率数据

输入参数:

名称 类型 描述
symbol str symbol='sh600000'; 股票代码可以在 ak.stock_zh_a_spot() 中获取
start_date str start_date='20201103'; 开始查询的日期
end_date str end_date='20201116'; 结束查询的日期
adjust str 默认返回不复权的数据; qfq: 返回前复权后的数据; hfq: 返回后复权后的数据; hfq-factor: 返回后复权因子; qfq-factor: 返回前复权因子

输出参数:

名称 类型 描述
date object 交易日
open float64 开盘价
high float64 最高价
low float64 最低价
close float64 收盘价
volume float64 成交量; 注意单位: 股
amount float64 成交额; 注意单位: 元
outstanding_share float64 流动股本; 注意单位: 股
turnover float64 换手率=成交量/流动股本

3、历史行情数据-腾讯

接口:stock_zh_a_hist_tx

目标:单次返回指定沪深京 A 股上市公司、指定周期和指定日期间的历史行情日频率数据

输入参数:

名称 类型 描述
symbol str symbol='sz000001'; 带市场标识
start_date str start_date='19000101'; 开始查询的日期
end_date str end_date='20500101'; 结束查询的日期
adjust str 默认返回不复权的数据; qfq: 返回前复权后的数据; hfq: 返回后复权后的数据
timeout float timeout=None; 默认不设置超时参数

输出参数:

名称 类型 描述
date object 交易日
open float64 开盘价
close float64 收盘价
high float64 最高价
low float64 最低价
amount int64 注意单位: 手

4、 分时数据-新浪

接口:stock_zh_a_minute

目标:单次返回指定股票或指数的指定频率的最近交易日的历史分时行情数据; 注意调用频率

输入参数:

名称 类型 描述
symbol str symbol='sh000300'; 同日频率数据接口
period str period='1'; 获取 1, 5, 15, 30, 60 分钟的数据频率
adjust str adjust=""; 默认为空: 返回不复权的数据; qfq: 返回前复权后的数据; hfq: 返回后复权后的数据;

输出参数:

名称 类型 描述
day object 交易日
open float64 开盘价
high float64 最高价
low float64 最低价
close float64 收盘价
volume float64 成交量

5、分时数据-东财

接口:stock_zh_a_hist_min_em

目标:单次返回指定股票、频率、复权调整和时间区间的分时数据, 其中 1 分钟数据只返回近 5 个交易日数据且不复权

输入参数:

名称 类型 描述
symbol str symbol='000300'; 股票代码
start_date str start_date="1979-09-01 09:32:00"; 日期时间; 默认返回所有数据
end_date str end_date="2222-01-01 09:32:00"; 日期时间; 默认返回所有数据
period str period='5'; choice of {'1', '5', '15', '30', '60'}; 其中 1 分钟数据返回近 5 个交易日数据且不复权
adjust str adjust=''; choice of {'', 'qfq', 'hfq'}; '': 不复权, 'qfq': 前复权, 'hfq': 后复权, 其中 1 分钟数据返回近 5 个交易日数据且不复权

输入参数:

1分钟:

名称 类型 描述
时间 object -
开盘 float64 -
收盘 float64 -
最高 float64 -
最低 float64 -
成交量 float64 注意单位: 手
成交额 float64 -
均价 float64 -

其他: 

名称 类型 描述
时间 object -
开盘 float64 -
收盘 float64 -
最高 float64 -
最低 float64 -
涨跌幅 float64 注意单位: %
涨跌额 float64 -
成交量 float64 注意单位: 手
成交额 float64 -
振幅 float64 注意单位: %
换手率 float64 注意单位: %

6、日内分时数据-东财 

接口:stock_intraday_em

目标:单次返回指定股票最近一个交易日的分时数据, 包含盘前数据

输入参数:

名称 类型 描述
symbol str symbol="000001"; 股票代码

输出参数:

名称 类型 描述
时间 object -
成交价 float64 -
手数 int64 -
买卖盘性质 object -

7、日内分时数据-新浪 

接口:stock_intraday_sina

目标:单次返回指定交易日的分时数据;只能获取近期的数据

输入参数:

名称 类型 描述
symbol str symbol="sz000001"; 带市场标识的股票代码
date str date="20240321"; 交易日

输出参数:

名称 类型 描述
symbol object -
name object -
ticktime object -
price float64 -
volume int64 注意单位: 股
prev_price float64 -
kind object D 表示卖盘,表示 是买盘

8、盘前数据 

接口:stock_zh_a_hist_pre_min_em

目标:单次返回指定 symbol 的最近一个交易日的股票分钟数据, 包含盘前分钟数据

输入参数:

名称 类型 描述
symbol str symbol="000001"; 股票代码
start_time str start_time="09:00:00"; 时间; 默认返回所有数据
end_time str end_time="15:40:00"; 时间; 默认返回所有数据

输出参数:

名称 类型 描述
时间 object -
开盘 float64 -
收盘 float64 -
最高 float64 -
最低 float64 -
成交量 float64 注意单位: 手
成交额 float64 -
最新价 float64 -
Logo

加入社区!打开量化的大门,首批课程上线啦!

更多推荐