如何下载股票历史数据?

论坛 期权论坛 期权     
张子赫   2018-10-13 14:56   134580   15
做论文需要数据,求大神指点!!!!!!!!!!!!!!!!!!!!
分享到 :
0 人收藏

15 个回复

倒序浏览
2#
like  4级常客 | 2018-10-13 14:56:09
第一名和第二名的答案都很赞,分别发现了可以分别容易获得和使用A股、美股数据的地方,而我们Ricequant - Beta上面提供的集齐了A股以及美股的数据,除此之外还有丰富的股票分类,400+财务指标的数据,只需要使用同一套非常易用的API就可以读取到这些数据了,而美股数据我们看到了市面上的一些数据以后依然不满意,我们就丧心病狂的直接从Nasdaq和SEC拿数据了,后面美股的分红、拆分以及美股的财务数据(官方标准)我们也会陆续开放!

点击这里就可以进入我们提供的IPython Notebook云服务了:


接着可以创建自己的IPython Notebook来做类似matlab的互动式数据研究:


也感谢IPython团队做出来如此强大的Open Source工具,而我们Ricequant提供了服务器和数据接口来方便大家做研究,所有API的设计也是围绕着强大的pandas库,由美国著名对冲基金AQR开源出来的,正因为这个库可以基于matrix类似excel的方式处理数据,才会让Python对数据的处理能力更上一个台阶,造成了现在非常流行。

专门的调用数据做研究的文档:Ricequant - Beta , 以及我会一直跟进维护的文档:

OK,让我们看一个实例,比如我想调用某几个股票来做研究,首先我可能想知道Ricequant上有哪些证券可以用?(股票、ETF、LOF亦或是分级基金,这些都有!):




现在我想查询一下超图软件的16年的一个月的股价:


可以看到还对停牌现象做了处理,即股价连续,但是交易量为0,并且知道下一个交易日是什么时候,复牌以后交易量继续:


一次获取多个股票也是没问题的:


数据调用出来以后使用pandas的to_csv变成文件格式:



数据你想落地我们也是不会阻止的...

用同一个接口还可以访问到8000+的美股数据:



接着我们还支持了400+的整理过的高质量财务数据,他们还被按照时间序列保存了10年的,文档是我们花了几个月的时间一个一个指标整理的:Ricequant - Beta



你都可以在你自己得notebook里面调用快速分析出来你需要的符合某些财务指标的股票,整个过程都是秒级相应(所有数据丢进去了内存..):


更丧心病狂的是还有大量的舆情数据:


如何上手呢?可以跟随我们不断推出的notebook教学:Notebook
量化交易板块教学:Tutorial

除了拿数据还可以做什么呢?比如云端的画图分 用Ricequant 做主成分分析法(PCA) 建立统计因子模型的一些分享

比如写一个策略调用已有的数据试试是否能赚钱:


部署到实盘模拟交易中看实时模拟的情况:


还有参加比赛试试自己的Quant能力Ricequant - Beta , 强悍的选手们在1月份的大跌情况下依然二月初获得了不错的正收益



数据是美妙的,数据也应该是开放的,基于数据而产生更多有价值的事情和想法。

祝新年快乐
3#
放开那个猕猴桃  1级新秀 | 2018-10-13 14:56:10
1楼给出了一个很好的A股例子,受到LS古月同学的启发,我在雪球上下载了所有美股股票的历史数据。

接下来我会举个栗子,就简单3步,让你在3分钟内准备好,并开始下载所有美股历史交易数据(daily).
Talk is cheap, I'll show you the code.

第一步:
下载美股公司列表,分别是纳斯达克,纽交所,美国证券交易所,三个CSV文件
下载地址,纳斯达克官网:Company List: NASDAQ, NYSE, & AMEX Companies

第二步:
建立三个交易所同名文件夹,用来方便放置股票历史交易数据。
目录结构是这样的:


第三步:
把如下Python小代码(放心!!很简单,不到30行,不会代码你都能看懂,不懂也没关系,直接运行)COPY到你本地,运行。
  1. import urllib2,csv,cookielib#site = "http://xueqiu.com/S/AAPL/historical.csv"#site= "http://www.nseindia.com/live_market/dynaContent/live_watch/get_quote/getHistoricalData.jsp?symbol=JPASSOCIAT&fromDate=1-JAN-2012&toDate=1-AUG-2012&datePeriod=unselected&hiddDwnld=true"hdr = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',       'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',       'Accept-Charset': 'ISO-8859-1,utf-8;q=0.7,*;q=0.3',       'Accept-Encoding': 'none',       'Accept-Language': 'en-US,en;q=0.8',       'Connection': 'keep-alive'}#req = urllib2.Request(site, headers=hdr)symbolTest = 'APPL'Exchange = 'NASDAQ'try:    with open(Exchange +'.csv') as csvfile:        reader = csv.DictReader(csvfile)        for row in reader:            print(row['Symbol'], row['Name'])            symbol = row['Symbol'].strip()            if '^' not in symbol:                site = "http://xueqiu.com/S/" + symbol + "/historical.csv"                req = urllib2.Request(site, headers=hdr)                page = urllib2.urlopen(req)                #content = page.read()                with open(Exchange + '/'+symbol+'.csv','w') as symbolCSV:                    symbolCSV.write(page.read())            else:             print 'symbol contains ^, not valid, passed...'except urllib2.HTTPError, e:    print e.fp.read()
复制代码
代码将就看哈。
下载完成后,结果是这样的,纳斯达克和纽交所分别有大概三千家公司,AMEX有不到400家。
平均每个文件大概200K,所有总计1G左右。



完。

需要补充的:
1. 美股股票代码列表里有些包含字符 ^, 这个我不是很明白,可能是已经退市的股票或者转移到其他交易所上市的股票,这样的股票代码被忽略了,而且雪球也查询不到。
2. 今天早上刚下载的,虽然对雪球的数据比较信任,但还是会抽样检查数据的准确性。
Yahoo和GOOGLE的Finance API是不是都关闭或者开始收费了?有知道的朋友请告知,谢谢。
3. 接下来就看各位各显神通了,把数据输入到大家喜欢的数据库,开始折腾吧。

我个人的计划是将数据插入到MongoDB,然后开始个简单粗暴的研究:购买不同股价组合的收益表现会有差别吗?比如在不同年份购买1刀以下的股票,以及其他某价格区间的股票,哪个收益会更高?
4#
郅知之  2级吧友 | 2018-10-13 14:56:11
如果是写程序下载,个人比较喜欢和常用的是以下几个:
一、新浪实时股票数据:
1、数据链接
http://vip.stock.finance.sina.com.cn/quotes_service/api/json_v2.php/Market_Center.getHQNodeData?page=1&num=100&sort=symbol&asc=1&node=hs_a&symbol=&_s_r_a=init
2、数据格式
  1. [{symbol:"sh600000",code:"600000",name:"浦发银行",trade:"18.49",pricechange:"0.310",changepercent:"1.705",buy:"18.49",sell:"18.50",settlement:"18.18",open:"18.26",high:"18.61",low:"18.20",volume:53304071,amount:983362559,ticktime:"15:04:02",per:7.334,pb:1.276,mktcap:34490268.646335,nmc:34490268.646335,turnoverratio:0.28576},…]
复制代码
注:新浪的PE为静态PE,PB数据也不是很准确,在股票发生除权时未能进行修正。

二、雪球实时股票数据:
1、数据链接
http://xueqiu.com/stock/quote.json?code=SH000001%2CSZ399001&_=1441781801093
注:
(1)可以以“%2C”为分隔,一次性获取多只股票的实时交易数据。
(2)需要先执行雪球******(此处隐去关键字,原因你懂的)以获取雪球的Cookie,否则雪球会返回“遇到错误,请刷新页面或者重新登录帐号后再试”的错误信息。
2、数据格式
{"quotes":[{"symbol":"SH000001","exchange":"SH","code":"000001","name":"上证指数","current":"3580.00","percentage":"1.81","change":"63.81","open":"3533.63","high":"3583.41","low":"3533.63","close":"3580.0","last_close":"3516.19","high52week":"5178.19","low52week":"2850.71","volume":"2.83856476E10","volumeAverage":"33269612703","marketCapital":"2.675083799528E13","eps":"0.0","pe_ttm":"","pe_lyr":"","beta":"0.0","totalShares":"7472301116","time":"ThuDec 17 15:03:53 +08002015","afterHours":"0.0","afterHoursPct":"0.0","afterHoursChg":"0.0","afterHoursTime":"WedOct 19 21:59:01 -04002011","updateAt":"1450258212131","dividend":"","yield":"0.0","turnover_rate":"0.0","instOwn":"0.0","rise_stop":"0.0","fall_stop":"0.0","currency_unit":"CNY","amount":"3.814396132856E11","net_assets":"0.0","hasexist":"false","has_warrant":"0","type":"12","flag":"1","rest_day":"","amplitude":"1.42","lot_size":"0","tick_size":"0.0","kzz_stock_symbol":"","kzz_stock_name":"","kzz_stock_current":"0.0","kzz_convert_price":"0.0","kzz_covert_value":"0.0","kzz_cpr":"0.0","kzz_putback_price":"0.0","kzz_convert_time":"","kzz_redempt_price":"0.0","kzz_straight_price":"0.0","kzz_stock_percent":"","pb":"0.0","benefit_before_tax":"0.0","benefit_after_tax":"0.0","convert_bond_ratio":"","totalissuescale":"","outstandingamt":"","maturitydate":"","remain_year":"","convertrate":"","interestrtmemo":"","release_date":"","circulation":"0.0","par_value":"0.0","due_time":"0.0","value_date":"","due_date":"","publisher":"","redeem_type":"","issue_type":"","bond_type":"","warrant":"","sale_rrg":"","rate":"","after_hour_vol":"0","float_shares":"2568300000000","float_market_capital":"9.194514E15","disnext_pay_date":"","convert_rate":"","psr":""},…]}


三、获取指数及个股的历史数据
1、指数数据链接
http://q.stock.sohu.com/hisHq?code=zs_000001&start=20000504&end=20151215&stat=1&order=D&period=d&callback=historySearchHandler&rt=jsonp&r=0.8391495715053367&0.9677250558488026
2、个股数据链接

http://q.stock.sohu.com/hisHq?code=cn_000001&start=20000504&end=20151215&stat=1&order=D&period=d&callback=historySearchHandler&rt=jsonp&r=0.8391495715053367&0.9677250558488026


3、数据格式
  1. historySearchHandler([{"status":0,"hq":[["2015-12-15","3518.13","3510.35","-10.31","-0.29%","3496.85","3529.96","200471344","27627494.00","-"],…],"code":"zs_000001","stat":["累计:","2000-05-08至2015-12-15","1674.03","91.16%",998.23,6124.04,333257871767,35829038015.97,"-"]}])
复制代码
这几个链接返回的都是json格式的数据,简单易懂,容易解析。
希望对题主有所帮助。

---------------------------------------------------------------------------------------------------------------------------------
雪球2016年4月修改了数据读取的链接如下:
http://xueqiu.com/v4/stock/quote.json?code=SZ399001&_=1460380110118
2016.4.12更新。
5#
旺仔君  4级常客 | 2018-10-13 14:56:12
雅虎财经.  哪要那么麻烦


评论里有大神说复权有问题,我没确认过,可能是有问题的.如果对此在意的同学请选用其它大神的数据下载方法或者自己核实以后再用!


深交所:
  1. http://table.finance.yahoo.com/table.csv?s=000001.sz
复制代码
上交所:
  1. http://table.finance.yahoo.com/table.csv?s=600000.ss
复制代码
对应股票代码改了就可以了,直接复制到浏览器下载. 格式是csv,可以直接用excel打开.
6#
BigQuant  2级吧友 | 2018-10-13 14:56:14
前面的回答都很棒,但能否有“种”简洁明了的方法就可解决所有问题呢?答:一套好的数据API(你不需要懂,去做就好!可以帮你省去东拼西凑的烦恼),BigQuant数据API在设计之初就秉持对用户友好的理念,同时BigQuant有丰富并且高质量的金融数据,包括基础数据、历史数据财报数据特色因子数据等,接下来为大家介绍一些常用的数据API,只需简单的粘贴替换,就可以得到你想要的数据,欢迎大家拿去使用 。
获取历史数据——以贵州茅台举例
获取贵州茅台代码、证券名称、上市日期、上市板、公司名称、公司成立日期、公司省份

获取财报数据——以贵州茅台举例
获取财报发布时间信息数据,比如发布日期、财报类型、财报对应的年份、财报对应的季度
注:财报类型如果为20131231表示13年年报,20140331表示14年一季报

获取特色因子数据——以贵州茅台举例
获取量价因子
注:open_$i中的$符号表示该因子可以回溯,没有$符号表示该因子不能回溯。比如open_$iopen_$i中指明了i取值范围是[0 .. 20],i为0表示当天的因子值,i=1表示前1天的因子值,以此类推。

只需前往平台将代码进行复制,替换你想要的数据敲击回车,你就可以轻松获得你想要的全部数据。
更多详细内容可前往原帖寻找研究:[量化学堂-新手专区]BigQuant数据API详解
7#
魏小韭  3级会员 | 2018-10-13 14:56:16
根本不用那么麻烦。随便找个券商的通达信版本的交易软件,都不用交易账号登陆,直接打开独立行情进去。选菜单“系统”—“盘后数据下载”,然后下载你需要的类型就好了。下载好了之后,选择菜单“系统”—“数据导出”—“沪深高级导出”,再选择你想导出的类型和方式就好了。我之前做了个个股票穿越机:输入代码,就会从过去15年的交易数据中,搜索出历史上走势相近的个股,基础数据就是用的这个。
8#
Jingchi Wang  2级吧友 | 2018-10-13 14:56:17
3积极回答问题,这个我会,我有5种途径。
最简单最经济的,下载一个免费的股票终端,比方说同花顺通达信大智慧东方财富网之类的。我用的都是东方财富(我不是做广告,有很多类似的软件,有免费的有收费的),其他几个肯定也可以。在行情界面,调整到技术分析,这时候显示的应该是K线图,调整到你要的周期,在界面里找导出数据这个选项,通常在K线图上面有这个按钮。一键导出,生成excel,又快又简单,还免费。

其他的方法比这个繁琐,比方说去新浪网抓数据,起码得会编程语言,我以前就用这种方法,用matlab抓。好处是直接用matlab分析了,不过我后来发现excel有很多强大的功能(需要加载宏),可以替代matlab一些,至少针对我的需求可以替代,就渐渐主要用excel了,不要看不起excel喔~
9#
赵小寒  3级会员 | 2018-10-13 14:56:18
上面都提到了各类历史数据的来源,主要是以交易日为单位,如果你想要分钟数据或者秒数据,或者tick 数据,就必须得花大价钱了
10#
丹妮  2级吧友 | 2018-10-13 14:56:19
WIND,同花顺,choice都可以实现。目前万德和同花顺应该个人拿不到免费试用账号,可以去东方财富网下载一个choice终端,申请一个免费试用账号,15天免费试用。安装之后,打开excel找到choice插件,就可以导出数据了,包括历史数据,多维数据等等,有代码前提下也可以用插件里的函数导出股票所有的数据信息。
如果公司很多个,可以先建立自选股list,然后excel选中自选股中一揽子股票,选取所需指标,时间段,确定,就ok啦!
11#
任逍遥  4级常客 | 2018-10-13 14:56:20
wind里面有的,可以直接导出
12#
牛叫化  2级吧友 | 2018-10-13 14:56:23
方法:浏览器直接下载
举例:002566益盛药业,起始2015年1月4日,终止2016年1月8日,在地址栏直接输入如下网址
http://quotes.money.163.com/service/chddata.html?code=1002566&start=20150104&end=20160108


字段组成分析:(固定不变的部分就略过了)
1)'code='之后的七位数字决定了下载哪只股票的数据,沪市在股票代码前加0,深市在代码前加1。貌似是为了与各种指数做区分。上证综指code=0000001,沪深300指数code=0000300。代码都是七位!
2)'start=','end=',决定了下载数据的日期区间。格式:年+月+日。可以省略&及之后的部分,此时下载全部历史数据。

如果需要批量下载多只股票数据,本人有现成的R代码,私戳我。

都是公开数据,应该没什么侵权问题吧→_→
13#
小快侠  2级吧友 | 2018-10-13 14:56:25

论文写作要数据怎么办,股票历史数据下载方法如下:

下载所有股票的历史数据,以同花顺股票软件为例:

1、首先切换到要下载数据的股票K线形态,按“F1”进入“日线某某股票历史成交”;

2、点击鼠标右键->数据导出->导出所有数据->在“请选择导出的类型”中选择excel或txt,,只有这二种格式可以选择;


3、选取好后点击下一步,在“导入导出对话框模板”中选择要的项目(如最高价、最低价,开盘价等,默认是全选);


4、点下一步,完成。默认保存路径在桌面上。
14#
kiki  5级知名 | 2018-10-13 14:56:27
这上面都是代码大神~对于我这种不会代码的人来说完全不懂
我通常会用锐思数据库里面的数据特别说明的是 一般财经类学校都会购买 如果你们学校没买的话也可以试用的,不过就是下载的条数少了点
使用方法超级小白,只要选好你要的数据点击下载就可以生成excel表格

如果题主需要我再给出详细步骤。。。
就酱。


今天就贴步骤。。。
15#
特斯丁  1级新秀 | 2019-6-23 18:36:07
旺仔君 发表于 2018-10-13 14:56
雅虎财经.  哪要那么麻烦

无法访问啊。哥哥。http的网址是不是要翻墙才能上?
16#
zdnyp  1级新秀 | 2019-12-30 13:57:56
股票数据下载-A 股、港股、美股所有个股股票历史行情数据下载
献给炒股喜欢研究数据的~对于会写代码的来说这些数据很简单,但是事实上很大一部分人并不会写
提供 A 股、港股、美股所有个股的行情数据下载。免费自助下载,数据自动发送至邮箱。
股票数据是研究和分析行情的基础,不管是量化分析还是数据对比,股票数据都是最基础的部分。提供行情数据的意义在于方便大家获取到个股的行情数据,之前各个炒股软件基本都有下载股票数据的功能,但是后来就取消或者加了限制了。
大概是这样的:
没做成可以直接在网站下载形式的,众所周知的原因(容易被搞挂)。所以需要三步:1.关注公众号 2.提交你需要数据的股票代码和你的邮箱 3.在邮箱下载数据。
也可以直接扫码,提交股票代码和邮箱,等着收数据~


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP