从雅虎财务获得ISIN的历史价格

Ann*_*lee 14 java yahoo stockquotes yahoo-finance

我有以下问题:

我有大约1000个独特的ISIN数量的证券交易所上市公司.

  • 我需要从最早上市开始直到今天这些公司的历史价格.

然而,就我的研究而言,雅虎只能提供我没有的股票代码符号的价格.

有没有办法得到例如ISIN: AT0000609664,这是公司Porr从雅虎自动通过他们的api的历史价格?

感谢您的回复!

GPM*_*ler 7

答案:

要从ISIN获取Yahoo股票代码,请查看该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
Run Code Online (Sandbox Code Playgroud)

这将返回ADS.DEXML中的代码:

<query yahoo:count="1" yahoo:created="2015-09-21T12:18:01Z" yahoo:lang="en-US">
    <results>
        <stock symbol="DE000A1EWWW0">
            <Isin>ADS.DE</Isin>
        </stock>
    </results>
</query>
<!-- total: 223 -->
<!-- pprd1-node600-lh3.manhattan.bf1.yahoo.com -->
Run Code Online (Sandbox Code Playgroud)

我担心您的示例ISIN将无法正常工作,但这是Yahoos方面的错误(请参阅Yahoo Symbol Lookup,在那里键入您的ISIN以检查Yahoo上是否存在股票代码).

实施:

对不起,我不再精通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();
}
Run Code Online (Sandbox Code Playgroud)

其中GetQuery(string isin)将查询的URI返回到yahoo(请参阅我的示例URI)并GetHttpResult(string URI)从Web获取XML.然后你必须提取Isin节点的内容,你就完成了.

我假设您已经使用股票代码符号实现了实际数据提取.另请参阅此问题的逆问题(符号 - > 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
Run Code Online (Sandbox Code Playgroud)

您可以在其中传递任意日期和任意的股票代码列表.您可以在代码中构建查询并从您获得的XML中提取结果.回应将是一致的

<query xmlns:yahoo="http://www.yahooapis.com/v1/base.rng" yahoo:count="71" yahoo:created="2015-09-22T20:00:39Z" yahoo:lang="en-US">
  <results>
    <quote Symbol="ADS.DE">
      <Date>2015-09-21</Date>
      <Open>69.94</Open>
      <High>71.21</High>
      <Low>69.65</Low>
      <Close>70.79</Close>
      <Volume>973600</Volume>
      <Adj_Close>70.79</Adj_Close>
    </quote>
    <quote Symbol="ADS.DE">
      <Date>2015-09-18</Date>
      <Open>70.00</Open>
      <High>71.43</High>
      <Low>69.62</Low>
      <Close>70.17</Close>
      <Volume>3300200</Volume>
      <Adj_Close>70.17</Adj_Close>
    </quote>
    ......
  </results>
</query>
<!-- total: 621 -->
<!-- pprd1-node591-lh3.manhattan.bf1.yahoo.com -->
Run Code Online (Sandbox Code Playgroud)

这应该让你足够自己编写自己的代码.请注意,有可能&e=.csv在查询结束时将数据作为.csv格式获取,但我对此知之甚少,或者它是否适用于上述查询,请参阅此处以供参考.

  • 我担心它不起作用.如果我运行你提供的网址,则不再有答案 (4认同)