Pythonで米国株NASDAQ情報を取得
Pythonを使って米国株の情報取得をしていきます。
この記事では pandas-datareader というモジュールを使用します。取得するデータは、NASDAQ銘柄のティッカー(シンボル)等の基本情報、指定した銘柄の指定期間における株価データとなります。
Pandasデータフレームで取得した情報をCSVファイルに出力したり、matplotlibでグラフ出力します。
環境
私は以下の環境で動かしています。
・windows 10(64bit)
・python 3.8.2(32bit版)
・エディタ Visual Studio Code 1.53.1
ライブラリインストール
コマンドプロンプトを起動して以下のコマンドを入力すればpipでライブラリをインストールすることができます。
py -m pip install pandas-datareader
NASDAQ銘柄ティッカー取得
NASDAQ銘柄のティッカー(シンボル)情報を取得してCSVファイルに出力します。ティッカーは各銘柄に付けられた記号で、たとえばテスラの場合は「TSLA」です。このファイルがあれば調べたい銘柄の情報収集が捗るようになると思います。
情報取得には get_nasdaq_symbols を使います。出力は Pandas のデータフレームとなります。よって to_csv でCSVファイルを簡単に作成することができます。
コードは以下となります。
# =================================================
# ライブラリ
# =================================================
import pandas_datareader.data as web
from pandas_datareader.nasdaq_trader import get_nasdaq_symbols
# =================================================
# メイン
# =================================================
# NASDAQ銘柄情報取得 (Pandasデータフレーム)
df_symbols = get_nasdaq_symbols()
# PandasデータフレームをCSVで出力
df_symbols.to_csv("nasdaq_symbols.csv")
実行すると次のようにCSVファイルで出力されます。
株価データを取得
特定の銘柄を指定して株価データを取得してCSVファイルに出力します。今回はテスラ(ティッカー:TSLA)の2021年1月1日から2021年3月5日までの株価データを取得します。株価の取得元はYahooとします。
コードは以下となります。
# =================================================
# ライブラリ
# =================================================
import pandas_datareader.data as web
# =================================================
# メイン
# =================================================
# 株価情報取得
stock_price = web.DataReader("TSLA","yahoo","2021/1/1","2021/3/5")
# PandasデータフレームをCSVで出力
stock_price.to_csv("stock_price.csv")
実行すると次のようにCSVファイルで出力されます。
各項目の意味は以下となります。
Date:日付
High:高値
Low:安値
Open:始値
Close:終値
Volume:出来高
Adj Close:調整後終値
株価グラフを作成
さきほど取得した株価データから matplotlib を用いてグラフを作成します。出力するのは High, Low, Close にします。
# =================================================
# ライブラリ
# =================================================
# データ取得
import pandas_datareader.data as web
from pandas_datareader.nasdaq_trader import get_nasdaq_symbols
# グラフ描画
import matplotlib.pyplot as plt
# =================================================
# メイン
# =================================================
# NASDAQ銘柄情報取得 (Pandasデータフレーム)
df_symbols = get_nasdaq_symbols()
# 株価情報取得
stock_price = web.DataReader("TSLA","yahoo","2021/1/1","2021/3/5")
# 出力パラメータ
stock_price["High"].plot()
stock_price["Low"].plot()
stock_price["Close"].plot()
# グラフ表示設定
plt.rcParams['font.family'] = 'Times New Roman' # 全体のフォント
plt.legend(loc="upper right",fontsize=8) # 凡例の表示(2:位置は第二象限)
plt.title('Stock Price : TSLA', fontsize=10) # グラフタイトル
plt.xlabel('date', fontsize=10) # x軸ラベル
plt.ylabel('Price', fontsize=10) # y軸ラベル
plt.tick_params(labelsize = 10) # 軸ラベルの目盛りサイズ
plt.tight_layout() # ラベルがきれいに収まるよう表示
plt.show() # グラフの表示
実行すると以下のグラフが出力されます。
Google 検索でテスラの株価を検索すると以下のようになっていました。グラフの Close(終値)と比較すると同じようなグラフになっていることが確認できました。
おわりに
本記事では pandas-datareader を使用してNASDAQ銘柄のティッカー(シンボル)等の基本情報、指定した銘柄の指定期間における株価データを取得し、CSVやグラフ出力を行いました。今後は銘柄比較や企業業績情報の取得なども行っていきたいと思います。