ゆとり世代の自由研究

勉強が一生終わりません

J-Quantsからデータを取得

上場銘柄一覧と4本値、財務情報と決算発表日の取得

#%%
#@title 上場銘柄一覧(/listed/info)

#@markdown - 過去時点での銘柄情報、当日の銘柄情報および翌営業日時点の銘柄情報が取得可能です。
#@markdown - データの取得では、銘柄コード(code)または日付(date)の指定が可能です。

#@markdown (データ更新時刻)
#@markdown - 毎営業日の24:00頃


code = ""   #銘柄コードを指定 空欄だと全銘柄
date = "" #日付を指定YYYYMMDD、12週間前 空欄だと最新値12週前
query = ""
if code != "":
  query += f'code={code}'
if date != "":
  if code !="":
    query += "&"
  query += f'date={date}'
if query != "":
  query = "?"+query
res = requests.get(f"{API_URL}/v1/listed/info{query}", headers=headers)
if res.status_code == 200:
  data = res.json()["info"]
  df = pd.DataFrame(data)
  display(df)
else:
  print(res.json())
# %%
#@title 株価四本値(/prices/daily_quotes)

#@markdown - 株価は分割・併合を考慮した調整済み株価(小数点第2位四捨五入)と
調整前の株価を取得することができます。
#@markdown - データの取得では、銘柄コード(code)または日付(date)の指定が必須となります。

#@markdown (データ更新時刻)
#@markdown - 毎営業日の17:00頃

#@markdown - Premiumプランの方には、日通しに加え、前場(Morning)及び後場(Afternoon)の
四本値及び取引高(調整前・後両方)・取引代金が取得可能です。


code = "6758" #銘柄コード 空欄だと全銘柄、ただしdate必須
date = "" #指定日YYYYMMDD
from_ = "" #開始日 YYYYMMDD
to = "" #終了日 YYYYMMDD
query = ""
if code != "":
  query += f'code={code}'
if date != "":
  if code !="":
    query += "&"
  query += f'date={date}'
if from_ != "":
  if query !="":
    query += "&"
  query += f'from={from_}'
if to != "":
  if query !="":
    query += "&"
  query += f'to={to}'
if query != "":
  query = "?"+query
res = requests.get(f"{API_URL}/v1/prices/daily_quotes{query}", headers=headers)

if res.status_code == 200:
  data = res.json()["daily_quotes"]
  df = pd.DataFrame(data)
  display(df)
else:
  print(res.json())
# %%
#@title 財務情報(/fins/statements)

#@markdown - 財務情報APIでは、上場企業がTDnetへ提出する決算短信Summary等を基に作成された、
四半期毎の財務情報を取得することができます。
#@markdown - データの取得では、銘柄コード(code)または日付(date)の指定が必須となります。

#@markdown (データ更新時刻)
#@markdown - 速報18:00頃、確報24:30頃


code = "6758" #銘柄コード
date = "" #開示日YYYYMMDD
query = ""
if code != "":
  query += f'code={code}'
if date != "":
  if code !="":
    query += "&"
  query += f'date={date}'
if query != "":
  query = "?"+query
res = requests.get(f"{API_URL}/v1/fins/statements{query}", headers=headers)

if res.status_code == 200:
  data = res.json()["statements"]
  df = pd.DataFrame(data)
  display(df)
else:
  print(res.json())
# %%
#@title 決算発表予定日(/fins/announcemnet)

#@markdown (データ更新時刻)
#@markdown - 不定期(更新がある日は)19:00頃

で、3月期・9月期決算会社分に更新があった場合のみ19時ごろに更新されます。


res = requests.get(f"{API_URL}/v1/fins/announcement", headers=headers)

if res.status_code == 200:
  data = res.json()["announcement"]
  df = pd.DataFrame(data)
  display(df)
else:
  print(res.json())
 
  1. 上場銘柄一覧の取得:

    • /listed/info エンドポイントを使用して、過去時点の銘柄情報、当日の銘柄情報、翌営業日時点の銘柄情報を取得します。
    • code 変数に銘柄コードを指定することで、特定の銘柄の情報を取得できます。空欄の場合は全銘柄の情報を取得します。
    • date 変数に日付を指定することで、指定日時点の銘柄情報を取得できます。空欄の場合は最新値の12週間前の情報を取得します。
    • 取得したデータをDataFrameに格納し、表示します。
  2. 株価四本値の取得:

    • /prices/daily_quotes エンドポイントを使用して、株価の四本値(調整済み株価、調整前の株価など)を取得します。
    • code 変数に銘柄コードを指定することで、特定の銘柄の株価情報を取得できます。空欄の場合は全銘柄の株価情報を取得します。
    • date 変数に日付を指定することで、指定日の株価情報を取得できます。必須です。
    • from_ 変数と to 変数を使用することで、指定期間内の株価情報を取得できます。空欄の場合は特定日の情報を取得します。
    • 取得したデータをDataFrameに格納し、表示します。
  3. 財務情報の取得:

    • /fins/statements エンドポイントを使用して、四半期ごとの財務情報を取得します。
    • code 変数に銘柄コードを指定することで、特定の銘柄の財務情報を取得できます。
    • date 変数に開示日を指定することで、指定日の財務情報を取得できます。必須です。
    • 取得したデータをDataFrameに格納し、表示します。
  4. 決算発表予定日の取得:

    • /fins/announcement エンドポイントを使用して、決算発表予定日を取得します。