web-dev-qa-db-ja.com

yahoofinanceからISINで過去の価格を取得する

私は次の問題を抱えています:

私は約1000の固有のISIN番号の証券取引所上場企業を持っています。

  • これらの会社の過去の価格は、最初のリストから今日まで毎日必要です。

しかし、私の研究によると、yahooは私が持っていない株式ティッカーシンボルの価格しか提供できません。

たとえば、会社のPorrであるISIN: AT0000609664を、APIを介してyahooから自動的に取得する方法はありますか?

返信ありがとうございます!

15
Anna.Klee

答え:

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が機能しないのではないかと思いますが、これはYahoo側のエラーです( 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();
}
_

ここで、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
_

ここで、任意の日付と任意のティッカーシンボルのリストを渡すことができます。コードでクエリを作成し、取得した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 -->
_

これにより、独自のコードを記述できるようになります。クエリの最後に_&e=.csv_が付いた.csv形式でデータを取得する可能性があることに注意してください。ただし、それについて、または上記のクエリで機能するかどうかはよくわかりません。 を参照してください。ここ 参照用。

7
GPMueller

日付範囲に基づいて履歴データを提供するWebサービスを見つけました。ご覧ください

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

2
Abhijeet Kale