J-Quants APIを使って、株価を取得して、mplfinanceでローソク足チャートを表示する方法

この記事を書いたチーム:tenko

概要

【エンジニア募集中】フルリモート可◎、売上/従業員数9年連続UP、平均残業8時間、有給取得率90%、年休124日以上 etc.  詳細はこちらから>

株価や財務などの金融データを取得するためのAPIであるJ-Quants APIと金融データをグラフで描画できるPythonのライブラリであるmplfinanceを使って、ある銘柄に対するローソク足チャートを表示する方法を紹介します。
J-Quants API(https://jpx-jquants.com/)
mplfinance(https://github.com/matplotlib/mplfinance)
①株価を取得する
②ローソク足チャートを表示する
2段階に分けて、説明していきます。

 

①株価を取得する

J-Quants APIを使って、株価を取得します。
以下の手順で行います。
  1.J-Quants APIに登録する
  2.トークンを取得する
  3.株価を取得する

 1. J-Quants APIに登録する
APIを利用するにはJ-Quants APIに登録する必要があります。プランが色々とありますが、今回は検証のため無料プランを利用しています。実用として、当日のデータが必要な場合などは有料プランの登録が必要になります。

登録ページ
https://jpx-jquants.com/auth/signup/?lang=ja

 2. トークンを取得する
J-Quants APIにはリフレッシュトークンをIDトークンの2種類のトークンがあります。実際に株価取得などのAPIを利用するときに必要になるのはIDトークンですが、そのIDトークンを取得するためにはリフレッシュトークンが必要になります。またリフレッシュトークンを取得するには、J-Quants APIに登録するときに利用したメールアドレスとパスワードを用います。リフレッシュトークンの有効期限が1週間、IDトークンの有効期限が24時間です。リフレッシュトークンとIDトークンを取得するAPIの仕様についてはこちらのページを確認してください。

リフレッシュトークン
https://jpx.gitbook.io/j-quants-ja/api-reference/refreshtoken

IDトークン
https://jpx.gitbook.io/j-quants-ja/api-reference/idtoken

  3. 株価を取得する
J-Quants APIには株価四本値(/prices/daily_quotes)という、日足の株価情報を取得するAPIがあります。銘柄コードや期間を指定して、取得します。注意点として、多くのデータを取得する場合、ページングされてデータが返されるので、次のページの情報を取得するためにクエリにpagination_keyを追加して、再度リクエストする必要があります。株価を取得するAPIの仕様についてはこちらのページを確認してください。
株価四本値(/prices/daily_quotes) https://jpx.gitbook.io/j-quants-ja/api-reference/daily_quotes 

出力結果(一部省略)

[{'Date': '2023-01-04', 'Code': '72030', 'Open': 1798.0, 'High': 1804.0, 'Low': 1787.5, 'Close': 1799.0, 'UpperLimit': '0', 'LowerLimit': '0', 'Volume': 25995600.0, 'TurnoverValue': 46736810100.0, 'AdjustmentFactor': 1.0, 'AdjustmentOpen': 1798.0, 'AdjustmentHigh': 1804.0, 'AdjustmentLow': 1787.5, 'AdjustmentClose': 1799.0, 'AdjustmentVolume': 25995600.0},]

②ローソク足チャートを表示する

mplfinanceを使って、ローソク足チャートを表示します。mplfinanceはグラフを描画できるPythonのライブラリであるmatplotlibのユーティリティであり、簡単な設定で金融データを描画できます。今回は、始値、安値、高値、終値、出来高を表示しています。indexがDatetimeIndex、カラムが[‘Open’, ‘High’, ‘Low’, ‘Close’, ‘Volume’]DataFrameを用意することで、簡単にローソク足チャートを描画できます。

出力結果

【エンジニア募集中】フルリモートも◎(リモート率85.7%)、平均残業8時間、年休124日以上、有給取得率90% etc. 詳細はこちらから>

Smallitのサービス