前面我们都是以美股的苹果股票为例进行策略和技术指标的回测,量化交易对中国A股是否适用呢?我们怎么样免费获取A股的股票数据呢?我给你们介绍三个免费的数据平台Tushare 、AkShare和Baostock。
1、Tushare
Tushare是一个免费、开源的Python财经数据接口包。它主要用于提供股票、期货、基金、数字货币等金融数据的查询,是中国金融数据分析的常用工具之一。使用Tushare,用户可以非常方便地获取到从基本面数据到交易数据,再到金融衍生品数据等多方面的金融信息。它原来是免费的,后来做了升级,提供一部分免费的接口,更高级一点的数据要收费,不过对于我们目前学习的日线级别的数据来说是免费的。
主要特点
- 丰富的数据类型:包括股票价格、交易数据、财务数据、行业数据、宏观经济数据等。
- 高效的数据访问:大多数数据接口响应速度快,方便进行高频数据分析。
- 易于使用:Python接口简单明了,容易上手,对于有Python基础的用户来说非常友好。
- 社区支持:拥有活跃的社区,遇到问题时可以方便地寻求帮助。
使用前提
使用Tushare之前,需要在Tushare官网(http://tushare.pro)注册账号,并获取API Token。注册后,将Token设置到脚本中,即可开始数据查询。
数据使用例子
假设您已经注册了Tushare并获取了Token,下面是一个简单的使用例子:
import tushare as tsts.set_token('你的Token')
pro = ts.pro_api()# 获取茅台股票的日线数据
df = pro.daily(ts_code='600519.SH', start_date='20200101', end_date='20201231')
print(df.head())
这段代码将输出指定日期范围内的贵州茅台(股票代码:600519.SH)的日线数据。
2、AkShare
AkShare是一个开源的金融数据接口库,致力于提供财经数据的Python解决方案,支持股票、期货、外汇、基金、数字货币等多种金融数据的获取。
- 安装AkShare:通过pip安装AkShare库(
pip install akshare
)。 - 使用AkShare获取数据:直接调用AkShare提供的接口获取数据。
import akshare as ak# 获取上证指数的历史行情数据
stock_zh_index_daily_df = ak.stock_zh_index_daily(symbol="sh000001")
print(stock_zh_index_daily_df)
3 、Baostock
Baostock是一个免费的金融数据API,提供包括股票、基金、期货、指数等多种金融数据。
- 安装Baostock:通过pip安装(
pip install baostock
)。 - 使用Baostock获取数据:
import baostock as bs
import pandas as pd# 登录系统
lg = bs.login()# 获取沪深A股历史K线数据
fields = "date,code,open,high,low,close,preclose,volume,amount,adjustflag"
df = bs.query_history_k_data("sh.600519",fields,start_date='2020-01-01', end_date='2020-12-31',frequency="d", adjustflag="3")data_list = []
while (df.error_code == '0') & df.next():data_list.append(df.get_row_data())result = pd.DataFrame(data_list, columns=df.fields)
bs.logout()
print(result)
注意事项
- 数据质量:虽然上述资源都能提供免费的数据,但数据质量、更新频率和历史数据的完整性可能有所不同,使用时需要注意核对。
- 使用限制:免费资源可能有使用次数或频率的限制,适合个人投资者或研究者使用。对于更高频率或更专业的数据需求,可能需要考虑付费服务。
通过上述方法,可以方便地获取A股市场的数据,进行投资分析或研究工作。