来自雅虎财经(或谷歌财经)更精确的价格数据,不止每天一个点

4 投票
3 回答
4822 浏览
提问于 2025-04-17 23:39

在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数据:

http://www.bloomberg.com/markets/chart/data/1D/AAPL:US

http://www.bloomberg.com/markets/chart/data/1M/AAPL:US

撰写回答