来自雅虎财经(或谷歌财经)更精确的价格数据,不止每天一个点
在Python中,能不能用pandas.io.data.yahoo从雅虎(或谷歌)财经获取历史价格数据,精确到每小时或每10分钟,而不是每天只获取一个数据点?如果不行,这个限制是pandas模块的问题,还是雅虎(谷歌)财经的API的问题呢?
3 个回答
0
你可以在Python中使用ystockquote这个包。它可以从雅虎财经的接口获取数据,并且格式非常整洁。
这里有一些使用示例。 https://github.com/cgoldberg/ystockquote
1
我想说不行,使用他们的免费API,你最多只能获取到每天1个数据点。
这是雅虎的限制,不是pandas的问题。如果你查看一下pandas.io.data的代码,你会发现他们是通过设置URL中的参数来获取数据的,比如雅虎的链接是http://ichart.finance.yahoo.com/table.csv?,谷歌的链接是http://www.google.com/finance/historical?。
如果你直接去雅虎财经,你也只能获取到每天1个数据点的数据:这是通用电气历史价格的例子
你还可以通过yql控制台运行SQL查询来访问雅虎的API:
select * from yahoo.finance.stocks where symbol="ge"
如果你在那里的树状视图中查看结果,你会发现每天1个数据点是历史价格的最高分辨率。
不过,你可以获取实时价格,因为雅虎的API中有一些选项。如果你写一个脚本,每10分钟查询一次雅虎API的价格,过一段时间你就能得到更高分辨率的价格历史。例如,下面这个URL可以获取谷歌和苹果的实时价格:
finance.yahoo.com/d/quotes.csv?s=AAPL+GOOG&f=nb2t1
AAPL和GOOG分别是苹果和谷歌的股票代码,b2是实时询价,n是公司的名称,t1是最后交易的时间。
1
我对pandas.io.data.yahoo不太了解,但你可能需要这个:
彭博社的Json数据: