Why not login to Qiita and try out its useful features?

We'll deliver articles that match you.

You can read useful information later.

0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【AWS】J-Quants API + AWS Athenaを用いた金融データ分析

Last updated at Posted at 2024-10-13

【AWS】J-Quants API + AWS Athenaを用いた金融データ分析

日本取引所グループ(JPX)が提供しているJ-Quants APIというサービスがあります。

このサービスではJPXが公式に提供する金融情報(現物情報、デリバティブ情報、指数情報、企業情報など)をAPIエンドポイント経由で取得することができます。

無料/ライト/スタンダート/プレミアムの4種類の利用枠があり、無料利用枠でも企業の財務データや株価といった種々の情報を取得することができます。

今回はJ-Quants APIで各種金融データを取得してAWS Athenaで分析する、というシナリオを想定してハンズオンを行ってみます。

jquants.drawio.png

J-Quants APIの利用登録

以下のサイトにアクセスして利用登録を行います。

今回は検証目的のため、無料利用枠で登録します。

登録が完了したらサインインし、トップページからリフレッシュトークンを取得します。
リフレッシュトークンはAPIアクセス用のトークン(IDトークン)を発行するためのトークンです。

取得したリフレッシュトークンを用いて、IDトークンを取得します。
各種情報を取得する際はこのIDトークンをAuthorizationヘッダに設定してAPIエンドポイントにリクエストを送る形となります。

各種トークンは

  • リフレッシュトークン: 1週間
  • IDトークン: 24時間

の有効期限があるため、トークン取得の流れは自動化orスクリプト化しておくと良さそうです。

データ取得用のLambda関数の作成

APIエンドポイントにアクセスして金融情報(今回は「上場銘柄一覧」)を取得し、
取得結果をJSON形式でS3に保存します。

以下のpythonスクリプトをLambda関数としてデプロイしました。

Lambda実行ロール(s3:PutObjectが許可されたポリシーをアタッチしておきましょう)
を設定後、関数を実行して以下のようにjson形式でS3にデータが保存されれば成功です。

スクリーンショット 2024-10-13 20.23.51.png

実行するAPIによっては情報の取得にそれなりに時間がかかるため、
Lambda関数のタイムアウト値に留意しましょう。

分析用テーブルの作成

分析用テーブルはAthenaでクエリ実行して作成しても良いのですが、面倒なのでAWS Glueを使用します。

AWSマネジメントコンソールからGlueのコンソールを開き、左ペインからData Catalog > Crawlerを選択します。

スクリーンショット 2024-10-13 20.30.20.png

Create Crawlerから新しいCrawlerを作成します。
Data Sourceには先ほどJSONファイルを保存したS3バケットを選択しましょう

スクリーンショット 2024-10-13 20.32.27.png

Crawlerの作成後、Run CrawlerからCrawlerを実行します。
実行が完了したら、左ペインのData Catalog > Database > Tables
から作成済みのテーブルを確認してみましょう。

以下のようにJSONファイルの内容に基づいてテーブルが作成されていればOKです。

スクリーンショット 2024-10-13 20.33.43.png

Athenaによるクエリ実行

AWSマネジメントコンソールからAthenaのコンソールを開き、クエリエディタを開きます。
先ほど作成したテーブルに対して、以下のようなクエリを実行してみます。

select *
from jquants_knowledge_base_bucket_s3
where sector17code='15';

スクリーンショット 2024-10-13 20.36.47.png

クエリ実行の結果、以下のように17業種コードが15(業種名:銀行)の上場企業の一覧が取得できました。

スクリーンショット 2024-10-13 20.37.58.png

まとめ

J-Quatns APIとAWS Athenaを用いることで、簡単に金融データの取得と分析を行うことができました。

個人的にJ-Quants APIを利用して嬉しいポイントは以下になります。

  • 無料利用枠でもそれなりの情報にアクセスできる
  • JPXが提供しているAPIのため、データの正確性や適時性が一定程度担保されている
  • 日本語のAPI仕様書が充実している

今回は上場企業一覧の情報をサンプルとして用いましたが、企業の財務情報や株価の情報も公開されており、分析用途としては非常に充実している印象です。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up

Qiita Advent Calendar is held!

Qiita Advent Calendar is an article posting event where you post articles by filling a calendar 🎅

Some calendars come with gifts and some gifts are drawn from all calendars 👀

Please tie the article to your calendar and let's enjoy Christmas together!

0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?