量化研究尤其是进行基于价值投资的量化研究,需要上市公司的历史估值数据,如市盈率PE,市净率PB,或者市销率PS,市现率PCF。而有的人喜欢用exce或者csv文件的格式存放数据并且分析。我这里介绍一个网站,BaoStock,既支持直接下载历史数据为csv,也支持用程序下载数据并生成csv格式。
网站地址是www.baostock.com,如果要下载历史估值数据,进入首页后,选择“沪深A股估值指标(日频)数据”,就进入了历史估值数据的页面。然后点击下载,就可以下载csv文件,下载的是浦发银行的历史估值数据,如果要下载其他股票的历史估值数据,就需要使用python代码了。
首先默认已经安装python,且版本是3.5或者以上。
安装pandas: pip insall pandas
安装numpy: pip install numpy
安装baostock数据接口包:pip installbaostock。
baostock提供免费历史k线的下载,包括前后复权的数据,而且还提供股票实时数据
如果有问题,请去官网下载再安装:http://www.baostock.com,不需要注册。
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)
#### 获取沪深A股估值指标(日频)数据 ####
# peTTM 动态市盈率
# psTTM 市销率
# pcfNcfTTM 市现率
# pbMRQ 市净率
rs = bs.query_history_k_data("sh.600000",
"date,code,close,peTTM,pbMRQ,psTTM,pcfNcfTTM",
start_date='2015-01-01',end_date='2017-12-31',
frequency="d",adjustflag="3")
print('query_history_k_data respond error_code:'+rs.error_code)
print('query_history_k_data respond error_msg:'+rs.error_msg)
#### 打印结果集 ####
result_list = []
while (rs.error_code == '0') & rs.next():
# 获取一条记录,将记录合并在一起
result_list.append(rs.get_row_data())
result = pd.DataFrame(result_list, columns=rs.fields)
#### 结果集输出到csv文件 ####
result.to_csv("D:\\history_A_stock_valuation_indicator_data.csv",encoding="gbk", index=False)
print(result)
#### 登出系统 ####
bs.logout()
返回数据说明 | ||
参数名称 | 参数描述 | 说明 |
date | 交易所行情日期 | 格式:YYYY-MM-DD |
code | 证券代码 | 格式:sh.600000。sh:上海,sz:深圳 |
close | 今收盘价 | 精度:小数点后4位;单位:人民币元 |
peTTM | 动态市盈率 | 精度:小数点后4位 |
psTTM | 市销率 | 精度:小数点后4位 |
pcfNcfTTM | 市现率 | 精度:小数点后4位 |
pbMRQ | 市净率 | 精度:小数点后4位 |
以上代码来自官网,www.baostock.com.