本メディアにはプロモーション広告が含む場合があります。但し、掲載内容は事実に反して優遇されることはありません。

【Python】yahooAPIを使用して株価取得(Python)

Python・Twitter連携

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です。

以上で米国株の前日終値を取得可能です。是非使用してみてください。

コメント