0

我想使用 Yahoo! 获得一组股票代码的调整后价格(调整拆分和股息)!金融。看起来历史价格调用一次仅限于一个交易品种。请让我知道是否有办法在一次通话中获得多个符号?

我想得到这些数据,这样我就可以对这些数据进行一些回溯测试。由于我可能需要相当多的符号(例如 500-1000),因此如果我可以对 Yahoo! 的服务器进行几次批量调用而不是每天对每个符号进行一次调用会更容易。

获得调整后价格的另一种方法是使用他们的每日股价api 并使用股息和拆分信息手动调整它(他们允许每日股票报价使用多个符号)。不幸的是,我找不到从 http 调用中获取拆分信息的任何方法(基于 50% 或 200% 的猜测是一种选择,但如果您处理低价股,这可能很危险,并且无法计算出不均匀的拆分)。而且,它返回的分红信息也不容易解码。他们似乎返回了超过 4 个季度的总数,并且股息日期与基于历史价格的实际股息日期并不真正对应。调用的各种选项可以在这里找到:http: //www.gummy-stuff.org/Yahoo-data.htm

关于为多个符号调整价格有什么建议吗?或者我是否不必要地担心向 Yahoo! 拨打 100 次电话!每天?理想情况下,我想在每天几个小时内下载所有需要的数据——即每分钟 10-20 个呼叫。是不是太多了?我找不到任何关于每秒允许请求数的文档。

我对其他可以获得类似数据的地方持开放态度。然而,由于我只是想学习量化交易的基础知识而不是交易,我更喜欢免费下载。

谢谢-e

4

2 回答 2

0

我不确定您使用的是哪种语言,但我有一个 C# 示例。我认为它至少会给你一个想法,或者可能会帮助别人

 private string BASE_URL = "http://query.yahooapis.com/v1/public/yql?q=" + "select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20({0})" + "&env=store%3A%2F%2Fdatatables.org%2Falltableswithkeys";

Collection<Quote> quotes;

string symbolList = String.Join("%2C", quotes.Select(w => "%22" + w.Symbol + "%22").ToArray());
string url = string.Format(BASE_URL,symbolList);

XDocument doc = XDocument.Load(url);
Parse(quotes,doc);   

我们在这里所做的是将“,”附加到每个数组项,然后将该符号列表传递给 yahoo。我在每次调用中成功获取了 700 个符号的价格。为每个股票点击雅虎服务器是一种痛苦。我每天获取所有 6500 多种股票的股票价格。以前需要 3 个小时,现在不到 2 分钟.....甜

该代码的源链接在这里 - http://www.jarloo.com/get-yahoo-finance-api-data-via-yql/

PS请获取api密钥 以顺利工作。上面的 url 是一个公共链接,其中大部分时间表都超时。获得 api 密钥后,您的 url 将是(减去“public”)

http://query.yahooapis.com/v1/yql

于 2012-04-19T21:42:39.580 回答
0

这是一个老问题,但我确实找到了一个可用拆分数据的来源。但不确定这些公告有多全面:

http://biz.yahoo.com/c/09/s1.html

在 url 中,“09”部分是年份(2009),“s1”部分是月份(s1 = 一月,s2 = 二月,s3 = 三月等)

这不是一个干净整洁的 CSV,但页面的格式是一致的并且应该是可解析的。只需每天查询当前月份,解析页面,并处理您前一天没有看到的任何拆分。

ETA:还有另一个来源(可能不如雅虎可靠,但可以通过股票查询):

http://getsplithistory.com/

于 2011-06-10T19:09:18.367 回答