在上一篇文章中我们已经介绍了量化交易主要有四个关键部分,其中一个部分就是回测验证,然而要进行回测验证,需要历史数据做支撑,巧妇难为无米之炊嘛,那怎么获取历史数据呢?市面上有很多公司会提供一些数据调用接口,供我们调用,但是大部分都是收费的,我们这个系列文章主要是引领大家入门,所以不会讲太多金融上概念性的东西,我尽量从实操入手,带领大大一步步向前迈进。所以,刚开始,接口当然是免费万岁,即使这个接口不是很完美,但是用于学习和模型验证已经够用了。这个接口就是证券宝(www.baostock.com),这个接口现在是完全免费、开源的,而且不需要注册,非常方便。
安装baostock
baostock是基于python开发的,所以要先安装python,然后通过以下命令安装baostock即可,具体请参考baostock官网
# baostock依赖pandas
pip install pandas
# 安装baostock
pip install baostock -i https://pypi.org/simple读取历史K线数据并保存到csv文件中
下面这个示例来源于官网
import baostock as bs
import pandas as pd
#### 登陆系统 ####
lg = bs.login()
# 显示登陆返回信息
print('login respond error_code:'+lg.error_code)
print('login respond error_msg:'+lg.error_msg)
#### 获取历史K线数据 ####
# 详细指标参数,参见“历史行情指标参数”章节
rs = bs.query_history_k_data_plus("sh.600000",
"date,code,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus,pctChg,peTTM,pbMRQ,psTTM,pcfNcfTTM,isST",
start_date='2024-01-01', end_date='2024-12-31',
frequency="d", adjustflag="3") #frequency="d"取日k线,adjustflag="3"默认不复权
print('query_history_k_data_plus respond error_code:'+rs.error_code)
print('query_history_k_data_plus respond error_msg:'+rs.error_msg)
#### 打印结果集 ####
data_list = []
while (rs.error_code == '0') & rs.next():
# 获取一条记录,将记录合并在一起
data_list.append(rs.get_row_data())
result = pd.DataFrame(data_list, columns=rs.fields)
#### 结果集输出到csv文件 ####
result.to_csv("D:/history_k_data.csv", encoding="gbk", index=False)
print(result)
#### 登出系统 ####
bs.logout()下载完成后,就可以用excel打开下载的文件了。

评论区