从雅虎财经获取ISIN的历史价格

2022-09-03 07:45:25

我有以下问题:

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

  • 我需要这些公司的历史价格,从最早上市到今天,每天都有。

但是,就我的研究而言,雅虎只能提供股票代码的价格,而我没有。

有没有办法获得例如,哪个公司的历史价格从雅虎自动通过他们的api?ISIN: AT0000609664Porr

感谢您的回复!


答案 1

答案:

要从 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

这将返回 XML 中的股票代码:ADS.DE

<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 -->

我担心你的ISIN示例不起作用,但这是雅虎方面的一个错误(请参阅雅虎符号查找,在那里输入你的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();
}

其中将查询的URI返回给yahoo(请参阅我的示例URI),并从Web获取XML。然后,您必须提取节点的内容,然后就完成了。GetQuery(string isin)GetHttpResult(string URI)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

您可以在其中传递任意日期和任意股票代码列表。由您决定在代码中生成查询,并从您返回的 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 -->

这应该让你足够远地编写自己的代码。请注意,有可能在查询结束时以.csv格式获取数据,但我不太了解这一点,或者它是否适用于上述查询,因此请参阅此处以供参考。&e=.csv


答案 2

我发现了一个Web服务,它根据日期范围提供历史数据。请看一看

http://splice.xignite.com/services/Xignite/XigniteHistorical/GetHistoricalQuotesRange.aspx


推荐