找回密码
 注册
搜索
查看: 7292|回复: 21

[原创] 从yahoo下载股票数据并保存成metastock格式

[复制链接]
发表于 2008-7-28 12:11 AM | 显示全部楼层 |阅读模式


这个是个python程序,自己把股票代码放到源文件里面,定义好起始时间,就可以从yahoo finance下载股票数据,并保存成metastock格式,用metastock里面的The Downloader的convert可以倒进程序去。运行完会在当前目录生成quotes.txt,这个就是metastock要读的文本格式的数据文件。

 

这个程序是之前试metastock时编的。网上的下载yahoo数据的都要钱,我很生气,就自己编了一个。现在不用metastock了,所以也不用这个了。

 

对了,要是amibroker的话就不用自己编程序了,本身有连接yahoo的功能。

msquote.zip

1.55 KB, 下载次数: 224

发表于 2008-7-28 12:18 AM | 显示全部楼层
是下载Daily data么?不是Intraday的吧?
如果是Daily的,我给大家一个Matlab的程序。
回复 鲜花 鸡蛋

使用道具 举报

 楼主| 发表于 2008-7-28 12:21 AM | 显示全部楼层

回复 2# EarthJade 的帖子

是EOD的。你把matlab的也贴出来吧。不定谁有matlab没有python的。现在MSN money central和google都已经提供realtime quotes了,实际搞一个intraday的也很有意义。不过我不用metastock了,不会去折腾了。
回复 鲜花 鸡蛋

使用道具 举报

发表于 2008-7-28 12:32 AM | 显示全部楼层

你是说用程序抓google等的页面,来得到realtime quotes?如果他们有接口,或者是文件下载的(就象yahoo的current quote cvs文件)就好了。

另外,好像yahoo提供实时数据的股票更多?

 

 

原帖由 yager 于 2008-7-28 01:21 发表 是EOD的。你把matlab的也贴出来吧。不定谁有matlab没有python的。现在MSN money central和google都已经提供realtime quotes了,实际搞一个intraday的也很有意义。不过我不用metastock了,不会去折腾了。

回复 鲜花 鸡蛋

使用道具 举报

发表于 2008-7-28 12:34 AM | 显示全部楼层

回复 3# yager 的帖子

here you go:
a matlab script for downloading daily data from yahoo. the program will save the data into excel file. Yes, if you change the code slight, you can save it into txt file, for example.
a mat file storing all the ticks of SP500. Of course you know how to save tick names in a cell array.

StockDL.zip

4.74 KB, 下载次数: 134

回复 鲜花 鸡蛋

使用道具 举报

发表于 2008-7-28 05:15 AM | 显示全部楼层
这种程序用http协议然后GET。我用C写了个,速度还可以。

若想通过抓整个html页面来得到数据也是可以的。但若股票数目一多,则速度还是太慢。有的时候YAHOO更新得比较慢,得等到晚上8、9点才行,有点讨厌。这是我的经验之谈。

最省事的方法还是掏钱去网站上去下。

回复 鲜花 鸡蛋

使用道具 举报

发表于 2008-7-28 05:26 AM | 显示全部楼层

回复 1# yager 的帖子

谢了,可别生气哟!
回复 鲜花 鸡蛋

使用道具 举报

发表于 2008-7-28 04:05 PM | 显示全部楼层

请问一下,在matlab里面怎么用?

我在matlab里面,直接运行,出来这个

>> getstockdata
??? Undefined function or variable 'snames'.

Error in ==> D:\MATLAB\work\download\StockDL\getStockData.m
On line 12  ==> for i=1:size(snames,1)

 

而我直接点击mat文件,出来这个

>> load('D:\MATLAB\work\download\StockDL\SP500_symbols.mat')
??? Error using ==> load
Unable to read MAT file D:\MATLAB\work\download\StockDL\SP500_symbols.mat

File may be corrupt.

 

对不起,我只有matlab运行程序的体验,只懂皮毛,也不会编程,所以,问题会比较低级。

 

谢谢!

 

原帖由 EarthJade 于 2008-7-28 01:34 发表 here you go: a matlab script for downloading daily data from yahoo. the program will save the data into excel file. Yes, if you change the code slight, you can save it into txt file, for example. a ...

 

回复 鲜花 鸡蛋

使用道具 举报

发表于 2008-7-28 05:03 PM | 显示全部楼层

回复 8# farmoment 的帖子

你需要先load .mat文件,然后运行程序。

无法load .mat文件可能是因为版本问题。

你需要手工改程序中的URL来下载直到当天的数据。
回复 鲜花 鸡蛋

使用道具 举报

发表于 2008-7-28 05:12 PM | 显示全部楼层
原帖由 yager 于 2008-7-28 01:11 发表 这个是个python程序,自己把股票代码放到源文件里面,定义好起始时间,就可以从yahoo finance下载股票数据,并保存成metastock格式,用metastock里面的The Downloader的convert可以倒进程序去。运行完会在当前目录生 ...


回复 鲜花 鸡蛋

使用道具 举报

发表于 2008-7-28 05:19 PM | 显示全部楼层

here , convert amibroker's data into TXT file, for Metastock convertion

 

BTW, where to get FREE intraday day(1min or 5 min) for DOW or spy ,qqqq?

 

thanks!

export_intraday2.rar

699 Bytes, 下载次数: 48

回复 鲜花 鸡蛋

使用道具 举报

发表于 2008-7-28 05:35 PM | 显示全部楼层
原帖由 yager 于 2008-7-28 01:11 发表 这个是个python程序,自己把股票代码放到源文件里面,定义好起始时间,就可以从yahoo finance下载股票数据,并保存成metastock格式,用metastock里面的The Downloader的convert可以倒进程序去。运行完会在当前目录生 ...


谈谈MetaStock好吗,现在在选trading system,你对MetaStock评价怎么样?用的是EOD的,还是real time的?

难道MetaStock不提供数据吗?我看online Demo,好像有数据的
[ 本帖最后由 coffee 于 2008-7-28 18:37 编辑 ]
回复 鲜花 鸡蛋

使用道具 举报

发表于 2008-7-28 05:39 PM | 显示全部楼层
好家伙,这么多技术高手。
回复 鲜花 鸡蛋

使用道具 举报

发表于 2008-7-28 08:48 PM | 显示全部楼层

你用http协议的get方法获得的就是html文件啊。然后需要解析文件来挑出你要的那个数据吧。如果弄很多股票还是挺麻烦的。

yahoo的current quotes提供的是一个cvs文件就包括200个股票。可惜不是实时的。

 

原帖由 吴水深万丈 于 2008-7-28 06:15 发表 这种程序用http协议然后GET。我用C写了个,速度还可以。若想通过抓整个html页面来得到数据也是可以的。但若股票数目一多,则速度还是太慢。有的时候YAHOO更新得比较慢,得等到晚上8、9点才行,有点讨厌。这是我的经验 ...

回复 鲜花 鸡蛋

使用道具 举报

发表于 2008-7-28 09:08 PM | 显示全部楼层

回复 9# Quantum 的帖子

谢谢你替我解释了,看来大家都用Matlab
回复 鲜花 鸡蛋

使用道具 举报

发表于 2008-7-28 10:13 PM | 显示全部楼层
For daily stock analysis software(free), you can download AptiStock 1.13 from www.aptistock.com. For real time(not fast, no bid and ask price) stock quote from yahoo.com, you can use the following URL http://download.finance.yahoo.com/d/quotes.csv?f=sl1&e=.csv&s=IBM to get during the martket opening, where IBM can be other symbol like INTC and so on. Recent days, I am trying to write a real time stock portfolio monitor using database and C#.
回复 鲜花 鸡蛋

使用道具 举报

发表于 2008-7-28 10:29 PM | 显示全部楼层

你说的这个就是得到cvs文件。其实你可以一次获得最多200个股票的quotes。如下:

http://download.finance.yahoo.com/d/quotes.csv?f=sl1&e=.csv&s=IBM,intc,c

但是这个不是实时的,delay 20分钟。

yahoo网页上提供实时的ecn,不过不知道为啥这个cvs文件不提供实时的。

 

原帖由 dxzhu 于 2008-7-28 23:13 发表 For daily stock analysis software(free), you can download AptiStock 1.13 from www.aptistock.com. For real time(not fast, no bid and ask price) stock quote from yahoo.com, you can use the following ...

回复 鲜花 鸡蛋

使用道具 举报

发表于 2008-7-28 10:38 PM | 显示全部楼层
原帖由 lami 于 2008-7-28 21:48 发表 你用http协议的get方法获得的就是html文件啊。然后需要解析文件来挑出你要的那个数据吧。如果弄很多股票还是挺麻烦的。 yahoo的current quotes提供的是一个cvs文件就包括200个股票。可惜不是实时的。

谢谢你的信息。可惜我有份工作,时间不是非常多,不然我们可以好好交流一下。Yahoo的Server用的是cgi。另外yahoo的Server支持gzip格式传输html源代码。你用Ethereal Sniff一下你IE跟yahoo的传输就知道了。gzip传输应该会快很多。

我是搞bootloader, linux kernel, device driver的。GUI一般般,就会OpenGL, Matlab做academic research用过一点点。我C极强,靠它吃饭的。

回复 鲜花 鸡蛋

使用道具 举报

发表于 2008-7-29 09:54 AM | 显示全部楼层

原来是c高手啊,可惜我很久不用了。以后有编程问题就请教你了。呵呵

抓网页来得到实时数据毕竟不是个好方法,不能每秒抓一次吧,每秒抓上百个也不好吧。时间间隔10秒左右,又不及时。还不如用quotetracker连自己的broker,这个就是不能随处用,要安装软件,还有安全问题。还是要找到数据接口,一次获得批量数据。

 

原帖由 吴水深万丈 于 2008-7-28 23:38 发表 谢谢你的信息。可惜我有份工作,时间不是非常多,不然我们可以好好交流一下。Yahoo的Server用的是cgi。另外yahoo的Server支持gzip格式传输html源代码。你用Ethereal Sniff一下你IE跟yahoo的传输就知道了。gzip传输应 ...

回复 鲜花 鸡蛋

使用道具 举报

发表于 2008-8-1 11:03 AM | 显示全部楼层

回复 9# Quantum 的帖子

谢谢! 看来,应该是版本问题。 顺便问一下,这里用过这个程序的,你们用的什么版本?
回复 鲜花 鸡蛋

使用道具 举报

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

本版积分规则

手机版|小黑屋|www.hutong9.net

GMT-5, 2024-5-5 09:57 PM , Processed in 0.095315 second(s), 17 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表