Pythonで株価を分析したいけど、信頼できる株価データーはどこから入手したら良いのだろう?

このように頭を悩ませているあなた!

 

2024年1月時点で、株価4本値を取得するならJ-QuantsAPIがコスパ最強だと思います。(個人評価)

 

無料プランだって過去2年分の株価データーが取得出来ちゃいます。

※ただし、直近12週間分の株価は取得出来ません。(分析の練習なら十分でしょう)

 

もちろん有料プランなら、長期の株価データーを取得する事が出来ます。

 

お手頃な価格設定

 

お手頃な価格設定です。

 

無料プラン: 無料/月 過去2年分の株価データー取得可能(12週遅延)

ライト:1,650円/月 過去5年分の株価データー取得可能

スタンダード:3,300円/月 過去10年分の株価データー取得可能

プレミアム::16,500円/月 提供期間全ての株価データー取得可能

 

個人使用ならライトプランで十分かも知れません。

私はオプションの価格も欲しいので、スタンダードプランで契約しています。

 

Pythonコード解説

 

初心者向けにPythonコードの解説をします。

 

出来るだけ、公式ページのサンプルコードに変更を加えずに、シンプルで実用的なコードにしました。

 

 

J-Quants APIから株価データーを取得するステップ

 

J-Quants APIから株価データーを取得するステップが次の3っです。

 

  1. J-Quants APIサービスへ登録(はじめの1回のみ)
  2. リフレッシュトークンを取得(1週間有効)
  3. IDトークンを取得(24時間有効)
  4. 取得したIDトークンを利用してデーターを取得

 

J-Quants APIサービスへ登録

 

このページから、J-Quants APIサービスへ登録出来ます。

画像の出所:https://jpx-jquants.com/?lang=ja

 

リフレッシュトークンを取得(1週間有効)

 

公式 J-Quants API解説ページ のサンプルコードを元に解説します。

https://jpx.gitbook.io/j-quants-ja/api-reference

 

リフレッシュトークンを取得するサンプルコードはこちら。

 

まず、J-Quants APIサービスへ登録時に設定したIDとパスワードを変数に代入します。

 

J-Quants APIサービスへ登録時に設定した メールアドレスとパスワードを辞書型で data に代入。

リフレッシュトークンがjson形式で取得されます。

出力値(例)

{‘refreshToken’: ‘eyJjdHki・・・・・・・・}

実際はもっと長い文字列です。

 

出力値からリフレッシュトークンだけどを取り出しましょう。

3行目だけを変更しています。

refresh_token = r_post.json()[‘refreshToken’]

 

リフレッシュトークンは1週間使用できますので、テキストファイルに保存して繰り返し使用します。

もちろん、毎回あたらに取得しても問題ありません。

IDトークンを取得(24時間有効)

 

IDトークンを取得します。

取得したIDトークンは24時間有効です。

出力値(例)

{‘idToken’: ‘eyJraW・・・・・・・}

実際はもっと長い文字列です。

 

出力値からIDトークンだけどを取り出しましょう。

3行目だけを変更しています。

idToken = r_post.json()[“idToken”]

取得したIDトークンを利用してデーターを取得

 

取得したIDトークンを利用して、いよいよ株価データー取得です。

 

株価コードと取得する期日を指定します。

 

書式はこちら。

r = requests.get(“https://株価4本値取得url?code=株価コード(5桁)&date=取得する期日

r = requests.get(“https://api.jquants.com/v1/prices/daily_quotes?code=86970&date=20230324“, headers=headers)

※株価コードは近い将来5桁になるそうです。 4桁の株価コードの最後に”0”を付けてください。

出力値(例)

{‘daily_quotes’: [{‘Date’: ‘2023-03-24’,
‘Code’: ‘86970’,
‘Open’: 2047.0,
‘High’: 2069.0,
‘Low’: 2035.0,
‘Close’: 2045.0,
‘UpperLimit’: ‘0’,
‘LowerLimit’: ‘0’,
‘Volume’: 2202500.0,
‘TurnoverValue’: 4507051850.0,
‘AdjustmentFactor’: 1.0,
‘AdjustmentOpen’: 2047.0,
‘AdjustmentHigh’: 2069.0,
‘AdjustmentLow’: 2035.0,
‘AdjustmentClose’: 2045.0,
‘AdjustmentVolume’: 2202500.0}]}

 

トヨタ自動車の株価を取得する

 

トヨタ自動車の株価をデーターフレーム取得しましょう。

 

書式はこちら。

 r = requests.get(“https://株価4本値取得url?code=株価コード(5桁)&date=取得する期日

 

株価コードと取得する期日をあらかじめ変数に格納しておきます。

 

書式を整えます。

出力値(例)

?code=72030&from=2014-10-29&to=2022-12-31

 

以下のコードで4本値の株価データーがデーターフレーム形式で取得されます。

出力値はデーターフレーム。

※J-Quantsの規約により、取得したデーターそのものを公開する事は禁じられていますので、記載出来ません。

 

もっと学ぶなら

 

もっと学ぶなら、こちらのページがオススメです。

 

●株式分析チュートリアル | 日本取引所グループ

https://japanexchangegroup.github.io/J-Quants-Tutorial/

 

(株)日本取引所グループがデータサイエンスに興味のある個人向けに提供する、ITやデータ分析を活用した取引の学習を目的とした、ハンズオン形式のチュートリアルです。

 

 

●jquants-api-sample

https://github.com/AlpacaDB/jquants-api-sample

サンプルファイルが豊富で,実運用への近道かも知れません。

このページで紹介しているサンプルコードも一部抜粋させていただいています。