用Python如何获取所有股票的历史数据并保存到Excel文件?

发布于: 雪球转发:2回复:0喜欢:6

从我们进入股市开始,相信有相当多的打算从股市赚钱的人会开始关注股票的历史价格,并且根据每一年的实际情况尝试分析这些历史的股票价格走势。有些人会说:“你分析这种马后炮有什么用呢?走势已经出来了,我又赚不到钱!”先不论其它,且说一下我对复盘的定位:认识、回顾、熟悉主力操作模式的最有效的途径。还有一种途径是你拿着真金白银,跟着主力资金操作完一只标的。对走势确认的标的进行复盘,目的不是为了赚钱,而是为了完善你的交易体系,以后赚更多的钱。在对股市的各种分析中,历史规律的分析与总结最为重要,因为它对我们看懂股市现状和预判未来走势具有重要的指导意义。我们说,对客观事物运行的规律性认识,是需要在不断总结的基础上不断重新认识的,甚至是需要在不断否定中进一步认识的。这就比如人类对宇宙的认识,最早是天神论,之后是地心说,再之后是日心说,再后来是目前的宇宙大爆炸......。任何一次的重新再认识,都使我们对宇宙运行规律的认识得到进一步升华。

对股市运行规律的认识和总结也是一样,它同样是一个逐渐认识和逐渐升华的过程。而投资者对股市运行规律认识的越深,越能够更准确的把握股市的未来走势,从而越能够提高自己在股市中的投资水平。获取股票价格的历史数据是如此的重要,给大家推荐一个可以轻松获取股票历史价格数据的网站:证券宝网页链接是一个免费、开源的证券数据平台。有很多好用的数据获取接口:

获取历史A股K线数据:query_history_k_data_plus()

方法说明:通过API接口获取A股历史交易数据(包括均线数据),可以通过参数设置获取日k线、周k线、月k线,以及5分钟、15分钟、30分钟和60分钟k线数据,适合搭配均线数据进行选股和分析。

返回类型:pandas的DataFrame类型。

能获取2006-01-01至当前时间的数据;

可查询不复权、前复权、后复权数据。

使用示例:

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股历史K线数据 ####

# 详细指标参数,参见“历史行情指标参数”章节;“分钟线”参数与“日线”参数不同。

# 分钟线指标:date,time,code,open,high,low,close,volume,amount,adjustflag

rs = bs.query_history_k_data_plus("sh.600000",

"date,code,open,high,low,close,preclose,volume,amount,adjustflag,turn,tradestatus,pctChg,isST",

start_date='2017-07-01', end_date='2017-12-31',

frequency="d", 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_A_stock_k_data.csv", index=False)

print(result)

#### 登出系统 ####

bs.logout()

执行该段代码可以将获取到的历史数据保存为一个csv格式的文件,示例中,将该文件保存至D:\\history_A_stock_k_data.csv,D盘根目录下,读者可以自行更改代码,将文件保存至其他路径。该csv格式文件可以使用excel表格工具打开,查看具体历史数据,相当方便好用,推荐读者可以手动尝试一下。