東京証券取引所が提供しているAPI(J-Quants)を利用して、株価データを取得します。
のちのち、AWSのLambda関数を用いてハンズオンもしていきたいと思いますので、まずはローカルでお試しです。
目次
J-Quants API とは?
日本取引所グループ(JPX)が提供する、APIです。
株価情報や銘柄情報が提供されています。Freeプランだと12週間の遅延がありますが、過去2年間の銘柄ごとの株価情報などを取得することができます。
なんといっても公式のデータなので、どこか別のサービスを利用するよりも信頼できます。
日本ではまだ個人投資家が利用しやすい・データにアクセスしやすい環境が少ない。という問題意識から始まったプロジェクトだということでした。
ご担当の方も「情報の民主化」を目指して、利用者層を広げたい。という考えがあるようです。
確かに、従来専門家や投資会社しか利用できなかった情報が一般の人にも手軽に利用できるようになれば、こういったデータに興味を持つ人も出てくるかもしれませんね。
詳細は、以下のHPリンクに記載されています。
これを機に、データ分析を専攻している学生が投資に興味を持って金融や証券の業界が盛り上がると思うと、こういったサービスへの期待も高まります。
実際に登録して使ってみる
さて、他力本願な私の願いは置いておいて、早速ローカル環境で使ってみました。
まずは、ユーザ登録
サインアップページから、手続きを完了します。
プランを選ぶ画面が表示されるので、利用するプランを選びます。
特に私は、投資に活かしたい!という思いはないので、Freeプランを利用させていただきました。
しかし、ここでは一旦このボタンを押さず、Pythonコードから取得するコードを作ってみました。
Pythonを利用して、APIをコールして株価情報を取得する
コードを作ってみました!といったのですが、実はAPI仕様書の中にPythonのサンプルコードが掲載されています。
こちらを参考にさせていただきながら、実際に記述してみました。
import requests
import json
import pandas as pd
#リフレッシュトークンの取得
data={"mailaddress":"登録したメールアドレス", "password":"登録したパスワード"}
r_post = requests.post("https://api.jquants.com/v1/token/auth_user", data=json.dumps(data))
r_post.json()
#IDトークンの取得
REFRESH_TOKEN = r_post.json()["refreshToken"]
idtoken = requests.post(f"https://api.jquants.com/v1/token/auth_refresh?refreshtoken={REFRESH_TOKEN}")
idtoken.json()
#株価四本値情報の取得
idToken = idtoken.json()["idToken"]
headers = {'Authorization': 'Bearer {}'.format(idToken)}
r = requests.get("https://api.jquants.com/v1/prices/daily_quotes?code=66320&from=20210913&to=20230913", headers=headers)
ohlc = r.json()
#四本値情報から、データを抽出
df_ohlc = pd.DataFrame(ohlc["daily_quotes"])
df_ohlc.to_csv("./csv_test.csv", index=False)
実際にこれでAPIを利用してみると、特定の銘柄の株価情報を取得することができます。
このまま利用していただくと、JVCケンウッド(66320)の四本値情報がCSVとして取得できると思います。
EOF
以上、Pythonを利用して株価情報の取得までやってみました!
参考になれば幸甚です。
追伸:これからPythonを学ぶなら
これからPythonを学びたい!業務に活かせるように学習したい!という方ならば、まずはUdemyで学習を始めることをお勧めします。
Udemyでは、数多くの講師陣がITの知識やスキルアップのための解説動画を提供していて、現場でも役立つ知識が多数存在します。
特に、流行りもあるのだと思いますがPythonやAWSの講座は数が多く品質が高いものが多いです。
手前味噌ながら以下の記事で、主に初学者の方向けのお勧め講座のレビューをしていますので、ご参考にしていただけますと幸甚です。
参考(API仕様書)
①リフレッシュトークン取得(/token/auth_user)
https://jpx.gitbook.io/j-quants-ja/api-reference/refreshtoken
②IDトークン取得(/token/auth_refresh)
https://jpx.gitbook.io/j-quants-ja/api-reference/idtoken
③株価四本値(/prices/daily_quotes)
https://jpx.gitbook.io/j-quants-ja/api-reference/daily_quotes