入社して3ヶ月が経ちました🌼
2024.10.5
目次
株式会社オークンのNobuです!
これまでトレードシステム開発で様々な米国株ヒストリカルデータAPIを触ってきたので、各APIをご紹介をできればと思います。
米国株のAPIは契約して使ってみないと分からないものが多いです。
特に日本語記事はほとんどなく、どんなAPIがあるのか、どんなデータが取れるか等、全く分からず調査に大変苦労しました。
是非、この知見を活用頂ければと思います、、!
以下、我々の取得の要件です。
では早速、APIを紹介していければと思います!
ヒストリカルデータ取得でよく使われるAPIといえばこちらかと思います!
無料で、そこそこデータも取れるので、個人用検証用の最初には十分かと思います。
取得可能期間 | 全期間※1 |
上場廃止銘柄 | 取得不可※1 |
料金 | 無料 |
API ドキュメントURL | https://pandas-datareader.readthedocs.io/en/latest/ |
※1 Yahoo Finance!から取得した場合
日時のヒストリカルデータは以下のように簡単に取得できます。
import pandas_datareader.data as web import pandas as pd df = web.DataReader('GE', 'yahoo', start='2019-09-10', end='2019-10-09') df.head() High Low Open Close Volume Adj Close Date 2019-09-10 9.27 8.90 8.91 9.14 62617200.0 9.062220 2019-09-11 9.36 9.06 9.15 9.36 57094900.0 9.280347 2019-09-12 9.52 9.22 9.40 9.26 68115100.0 9.181198 2019-09-13 9.45 9.14 9.31 9.34 45589400.0 9.270529 2019-09-16 9.42 9.17 9.30 9.38 45748400.0 9.310231
また、上場銘柄一覧は、以下のように取得できます。
from pandas_datareader.nasdaq_trader import get_nasdaq_symbols df = get_nasdaq_symbols() pd.set_option('display.max_columns', None) print(df.head()) Listing Exchange Market Category ETF Round Lot Size Test Issue Symbol A N False 100.0 False AA N False 100.0 False AAA P True 100.0 False AAAU Z True 100.0 False AAC N False 100.0 False Financial Status CQS Symbol NASDAQ Symbol NextShares Symbol A NaN A A False AA NaN AA AA False AAA NaN AAA AAA False AAAU NaN AAAU AAAU False AAC NaN AAC AAC False
以上のように、簡単にデータ取得できるので、初めにはお勧めです!
また良く使われるAPIであるため、日本語記事が豊富なのも良いポイントです。
取得可能期間 | 全期間 |
上場廃止銘柄 | 取得可能 |
料金 | $0 ~ $79.99 (https://eodhistoricaldata.com/pricing) |
API ドキュメント | https://eodhistoricaldata.com/financial-apis/ |
備考 | 価格データは必ずしも正確ではないと注釈あり。(後述) |
こちらも良く使われているAPIです。
EOD以外にもリアルタイムデータ、ファンダメンタルデータ、為替、暗号通貨等、豊富なデータにアクセスできます。
無料プランがありますが、APIリクエスト数制限が20回/日なので、私はEOD Historical Data - All World ($19.99)を契約しました。
株価のヒストリカルデータは以下のリクエストで取得できます。
https://eodhistoricaldata.com/api/eod/MCD.US?api_token=demo
※デモ用で、MCD(=McDonald's)は上記URLで取得できます
リクエストを送ると、以下のようなCSVが返ってきます。
また、銘柄一覧は、以下のリクエストで取得できます。EXCHANGE_CODE=USを指定すると、殆どの米国株銘柄を取得可能です。
https://eodhistoricaldata.com/api/exchange-symbol-list/{EXCHANGE_CODE}?api_token={YOUR_API_KEY}
クエリパラメータで、delisted=1を追加すると、上場廃止銘柄も取得できます。
安価でとても使いやすいAPIですが、トップページ下部に「データは必ずしも正確ではない」と注釈がありました。
EOD Historical Data would like to remind you that the data contained in this website and via API is not necessarily real-time nor accurate
私はシミュレーション用途なので問題ないですが、実取引で使われる際は注意が必要です!
取得可能期間 | 最大直近15年 (Advanced プランの場合) |
上場廃止銘柄 | 取得可能 |
料金 | $0 ~ $200 (Stockのみの場合。 https://polygon.io/pricing) |
API ドキュメント | https://polygon.io/docs/stocks/getting-started |
米国で人気のあるAPIです。
料金プランは対象データ毎で契約が可能で、私はStocksのStarterプラン($29/月)のみを契約しました。
ヒストリカルデータは、Aggregates APIで取得できます。
レスポンスは以下の通りです。なんとOHLCVに加え、VWAP(vw)も取得できました!
取引日(t)は、UNIXマイクロ秒で返されています。
銘柄一覧は、Tickers APIで取得できます。
そして、レスポンスは以下の通り。
active=falseを指定することで、上場廃止銘柄も取得可能です。
また、今回は type=CS(普通株)、exchange=XNYSとしましたが、
他にもtype=ETFや、主要な取引所としてexchangeにXNAS, ARCX, XASEを指定して取得できました!
少しマニアックな注意点です。
各APIとも、調整後終値が取得出来ますが、4本値の仕様がAPI毎で異なるので、調整後終値 / 終値で調整係数を算出する場合は少々注意が必要です。
Yahoo FinanceではAdj Close(調整後終値)には全てのコーポレートアクションが反映されていますが、
OHLCについても、分割・併合に関してだけ調整がされているようです。
しかしながら、配当に関しては未調整なので、ご注意を。
EODHD APIsでは、先程とは異なり、OHLCは全く調整されない状態で返ってきます。(※ Adjusted_closeはちゃんと調整されています)
Polygon.ioについては、調整後終値の取得項目はなく、パラメータ"adjusted"で4本値全てに対して調整後の値を取得するか選択できるので、特に注意不要です。
他にも商用限定のXigniteも扱かった経験もあります。
米国株APIの調査は、とにかく英語のドキュメントが基本で、普通に知らないこともあったりするので、かなり苦労しました。
(コーポレートアクションの件では、調整係数の計算を間違え、データの取り直しが発生しました)
今回の記事が皆様のお役に立てば幸いです!最後まで読んでいただき、ありがとうございました。
入社して3ヶ月が経ちました🌼
2024.10.5
東京オフィスに入社して2ヶ月が経ちました!
2024.10.1
オークンの成長を支える新たな仲間たちが来てくれました!
2024.8.30
Apple Vision Proを購入して40時間くらい使いまくった結果
2024.7.12
人間学を学ぶ!オークンの社内木鶏会の魅力について
2024.6.29