从Yahoo Finance获取1分钟K线数据

14

我正在尝试从Yahoo Finance下载1分钟的历史股票价格,包括当天和之前几天的。

与Google一样,Yahoo支持最多15天的数据,使用以下API查询:

http://chartapi.finance.yahoo.com/instrument/1.0/AAPL/chartdata;type=quote;range=1d/csv

然而数据即使在交易市场关闭时仍会发生变化!每分钟左右刷新一次,有些钟数的条形图会改变,甚至是从开盘开始的那些。

另一个有趣的事实是,对于相同的条形图,所有这些查询都会返回略微不同的数据:

http://chartapi.finance.yahoo.com/instrument/2.0/AAPL/chartdata;type=quote;range=1d/csv

将粗体数字替换为100000仍然可以工作,但会返回略微不同的数据。

有人懂这个吗?

是否有现代的YQL查询可以获取历史分钟数据而不是使用这个API?

谢谢!


这个API在几年前就已经关闭了。 - CodingMatters
2个回答

15

历史分钟数据并不像我们期望的那样容易获得。我发现收集股票盘中价格数据的最经济实惠方法是开发自动化脚本,记录每当市场开放时的价格信息。

类似于您分享的Yahoo数据URL,彭博公司以JSON格式维护1天盘中价格信息,如下所示:https://www.bloomberg.com/markets/api/bulk-time-series/price/AAPL%3AUS?timeFrame=1_DAY

一旦您有股票代码列表和对一致语法的理解,这种URL约定似乎很容易自己输入。

不过,要想最初找到该URL而没有任何猜测或反向工程的想法,我仅仅在此处https://www.bloomberg.com/quote/AAPL:US使用了我的浏览器上的开发者工具,并跟踪了一个后台GET请求,从而找到了该URL。我不会惊讶于您可以在其他与价格数据相关的网站上采用类似的方法。

您还可以编写脚本以与您的互联网速度一样快地跟踪价格数据。我发现其中一个相当方便的Python包是ystockquote

您可以让它每隔几秒钟请求价格数据并将其记录到每日时间序列数据库中。


你能推荐一些学习逆向工程这些请求的好资源吗?我想获取某个动态网页的请求,但是在所有带有无意义名称的.js文件中迷失了。 - harcipulyka

2

是的,还有其他API可用。如果需要实时数据,可以在rapidapi上找到一个名为(Quotient)的API,它允许拉取实时数据(每分钟级别),包括EOD市场(外汇、加密货币、股票(美国、加拿大、英国、澳大利亚、欧洲)、ETF和期货等)。它还提供收益、分红、拆股和其他许多信息。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接