答案:
要从ISIN获取雅虎股票代码,请查看yahoo.finance.isin表,这里是一个示例查询:
http://query.yahooapis.com:80/v1/public/yql?q=select * from yahoo.finance.isin where symbol in ("DE000A1EWWW0")&env=store://datatables.org/alltableswithkeys
这将XML中的代码ADS.DE返回:
ADS.DE
我恐怕你的例子是ISIN不会工作,但这是Yahoos方面的一个错误(见Yahoo Symbol Lookup,在那里输入你的ISIN来检查雅虎是否存在该代码).
实施:
对不起,我不熟练Java或R,但这个C#代码应该几乎相当于复制/粘贴:
public String GetYahooSymbol(string isin)
{
string query = GetQuery(isin);
XDocument result = GetHttpResult(query);
XElement stock = result.Root.Element("results").Element("stock");
return stock.Element("Isin").Value.ToString();
}
其中GetQuery(string isin)将查询的URI返回给yahoo(请参阅我的示例URI)和GetHttpResult(string URI)从Web中获取XML.那么你必须提取Isin节点的内容,你完成了.
我假设您已经使用代码符号实现了实际的数据提取.
反问题也可参见this question(符号 – > isin).但为了纪录:
查询以获取符号的历史数据
http://query.yahooapis.com:80/v1/public/yql?q=select * from yahoo.finance.historicaldata where symbol in ("ADS.DE") and startDate = "2015-06-14" and endDate = "2015-09-22"&env=store://datatables.org/alltableswithkeys
在那里你可以传递任意日期和任意的行情符号列表.在你的代码中构建查询,并从你得到的XML中获取结果.答复将是一致的
2015-09-21
69.94
71.21
69.65
70.79
973600
70.79
2015-09-18
70.00
71.43
69.62
70.17
3300200
70.17
......
这应该让你足够多写自己的代码.请注意,有可能在查询结尾使用& e = .csv获取.csv格式的数据,但是我不太了解这些数据,或者对于上述查询可以使用,因此请参阅here作为参考.