股票day级历史数据的下载方法
一、国内股票历史数据
1. Python中tushare包
-
get_hist_data:此接口仅能获取最近三年的未复权数据,数据源来自新浪财经,但其获取速度不受限制
-
get_h_data:此接口可以获取历史全部数据,但获取速度受限,请求过快会封IP,不报错上限应该在一分钟五条
-
参数autype:可设置数据形式是前复权、后复权、不复权
-
参数pause : 可设置重复请求数据过程中暂停的秒数,设置在4秒一次时不会请求出错,下载速度在一分钟五只股票
-
股票停牌与退市都无那天信息
-
股票退市时获取该股票会报错,循环获取需跳过
-
获取时还可能出现time out 信息,暂时不能确定原因
-
ts.get_stock_basics():获取当日所有股票代码
-
其他函数及参数参考其说明文档:http://tushare.org/index.html
2.R中WindR
-
安装wind软件http://www.wind.com.cn/
-
注册wind个人账户,wind针对财经院校有“财经学子阳光计划”,可免费注册。学校图书馆可能也有购买wind数据库
-
下载WindR包,打开软件“量化”——>“修复插件”——>“修复R插件”,进入R界面,输入命令w.start()开始
-
w.menu()打开导航界面,利用其产生命令获取参数形式很方便
-
w.wsd()可获得股票历史数据,前复权参数为"PriceAdj=F",其他说明文档中未说明参数可用导航界面产生命令猜出
-
w.wsd()获得数据存于list下data数据框,停牌数据用上一交易日收盘价补全,退市股票数据是NA
-
其他函数及参数命令参考wind客户端中“量化”——>“开放接口”——>“R插件”查看说明文档
-
http://www.dajiangzhang.com/q?529d26bf-7b34-46b1-bc92-ff9a2494b0a6
-
wind也有针对Python、MATLAB等的API接口,具体查看wind客户端中“量化”——>“开放接口”
-
其大盘指数较少,仅有中证与沪深300,大盘指数获取建议tushare获取
3.R中quantmod包
-
曾经此包盛极一时,但是自2016年由于数据源雅虎财经的问题,这个包似乎已有半年没人维护不建议使用
-
其在GitHub上https://github.com/joshuaulrich/quantmod
-
quantmod包有三个数据源:雅虎财经、谷歌财经、FRED(这个不清楚)
-
雅虎财经与国内大部分数据源的复权方式不同,导致数据与差异,并且其数据似乎有问题
-
google与FRED需要科学上网,并且似乎需要改变的是R获取数据时的IP(暂时没解决)
-
getSymbols("NKE", src = "yahoo")从雅虎财经获取NKE耐克的股票信息,其他参数参考说明文档
-
上述函数获取到的数据存在NKE变量中,数据时间信息需用index(NKE)调取
二、美股股票获取
1.R中quantmod包
-
从雅虎财经获取的数据质量出现严重问题,以道琼斯指数2010至2017数据为例,中间出现连续多个NA数据,并且某些天本应是正常交易日但无数据
2.windR
-
根据menu提示获取道琼斯某些股票数据,但是经查验数据缺失部分,暂不确定原因
3.雅虎财经网站直接下载
-
适用于仅需部分美股数据
-
https://finance.yahoo.com/quote/%5EDJI/history?p=%5EDJI
三、其他可能数据获取方式
1.通联数据
2.雪球
3.聚合数据
4.其他想起来时再补充
四、数据补全
-
数据补全时需下载今天与昨天两天的新数据,昨天数据用来与原数据比较是否发生股权变更
-
windR中可以获得上一交易日信息,tushare暂时没有找到相关信息。可以寻找某股票上一交易日时间后循环获取
-
补全时需要考虑该股票是否退市,是否停牌,是否停牌后复牌,是否退市又复市,停牌复牌是否股权发生变更