yahooAPIを使用して米国株の情報を取得する方法をご紹介します。 前提として使用言語はPythonになりますのでご留意ください。
事前準備
yahooAPIを使用するために、コマンドプロンプトから下記コードを入力しライブラリをインストールしてください。既に下記ライブラリをインストール済の方は不要です。
・yahoo-finance-api2のインストール
pip install yahoo-finance-api2
・pandas-datareaderのインストール
pip install pandas-datareader
そもそもPythonの開発環境を持っていないという方はこちらを参考に無料構築してみてください。
サンプルコード
では実装するにあたりサンプルコードを載せておきます。そのまま使用できると思いますがティッカーなどは自由に変えてもらってもかまいません。
実装サンプル
基本的に以下の内容をコピペで使用可能です。
from yahoo_finance_api2 import share from yahoo_finance_api2.exceptions import YahooFinanceError import pandas as pd # ティッカーコード格納 my_share = share.Share('ZM') # yahooAPIの使用 symbol_data = my_share.get_historical(share.PERIOD_TYPE_WEEK, 1, share.FREQUENCY_TYPE_DAY, 1) # レスポンスの成型 df = pd.DataFrame(symbol_data.values(), index=symbol_data.keys()).T # 出力 print(df.close[int(len(df))-1])
補足説明
実装サンプルではどのようなことをしていたか、少し分解して補足していきます。
yahooAPIの使用
# yahooAPIの使用 symbol_data = my_share.get_historical(share.PERIOD_TYPE_WEEK, 1, share.FREQUENCY_TYPE_DAY, 1)
「get_historical」の引数で取得期間などを選択可能です。
レスポンスの成形
# レスポンスの成型
df = pd.DataFrame(symbol_data.values(), index=symbol_data.keys()).T
レスポンスの値はそのままだと数字の羅列のため成形します。
ちなみにレスポンス値をそのまま出力すると以下のようになります。
{'timestamp': [1603114200000, 1603200600000, 1603287000000, 1603373400000, 1603459800000], 'open': [572.5, 572.3300170898438, 535.8800048828125, 521.780029296875, 522.3300170898438], 'high': [588.8400268554688, 575.6900024414062, 551.6599731445312, 530.4299926757812, 527.0], 'low': [562.5499877929688, 534.5900268554688, 511.7799987792969, 503.4700012207031, 505.4100036621094], 'close': [568.3400268554688, 537.02001953125, 513.1900024414062, 520.5399780273438, 511.5199890136719], 'volume': [15193200, 12098200, 9215400, 8100900, 5333400]}
そして成型後は以下になります。
timestamp open high low close volume 0 1.603114e+12 572.500000 588.840027 562.549988 568.340027 15193200.0 1 1.603201e+12 572.330017 575.690002 534.590027 537.020020 12098200.0 2 1.603287e+12 535.880005 551.659973 511.779999 513.190002 9215400.0 3 1.603373e+12 521.780029 530.429993 503.470001 520.539978 8100900.0 4 1.603460e+12 522.330017 527.000000 505.410004 511.519989 5333400.0
任意の値の取り出し
今回は前日の終値(close)をを取得してます。
# 出力 print(df.close[int(len(df))-1])
配列なので「df.close[4]」で前日の終値(close)を取得可能ですが、上記のように配列のサイズ-1でもOKです。
以上で米国株の前日終値を取得可能です。是非使用してみてください。
コメント