GPTs(カスタムGPT)でYahoo Finance APIを利用して、株式の過去データを取得する方法について、詳しく解説します。このAPIを活用することで、投資家やデータアナリストは、過去の株価データを分析し、より賢明な投資判断を行うことができます。この記事では、APIの機能、利用方法、取得できるデータの詳細、およびエラーハンドリングの方法について、包括的に説明します。
Contents
Yahoo Finance APIとは?
Yahoo Finance APIは、Yahooが提供する株式市場データにアクセスできるプラットフォームです。これを利用することで、ユーザーはリアルタイムや過去の株価、企業の財務データ、配当情報などを取得することができます。このAPIは、特定の株式に関する詳細な情報を提供し、投資判断のサポートを行うために設計されています。動作はしますが、現在APIのサポートは終了してるのでデータの欠損等にはご注意ください。
基本情報
- APIバージョン: 0.0.12
- ベースURL:
https://query2.finance.yahoo.com/v8/finance/chart/
- 主な機能: 指定した株式シンボルの過去の価格データや取引量を取得
利用可能なデータ
このAPIを使うと、特定の株式に関して以下のような詳細な過去データを取得することができます。
- Open(始値): 取引開始時の価格。株式市場の開始時点での価格を示します。
- High(高値): その日の取引中での最高価格。投資家がその株式に支払う最高額を示します。
- Low(安値): その日の取引中での最低価格。投資家がその株式に支払う最低額を示します。
- Close(終値): 取引終了時の価格。市場が閉じたときの価格を示し、株価の最終的な評価となります。
- Adj Close(調整後終値): 配当や株式分割を考慮した終値。このデータは、投資家が総合的な株価パフォーマンスを評価するのに役立ちます。
- Volume(取引量): その日に取引された株式の総数。取引の活発さや流動性を示す重要な指標です。
APIの利用方法
リクエスト構造
Yahoo Finance APIは、指定されたエンドポイントにGETリクエストを送信することでデータを取得します。リクエストにはいくつかのパラメータを指定する必要があり、それぞれのパラメータが取得するデータの範囲や内容を決定します。
必須パラメータ
- symbol(必須): 取得したい株式のティッカーシンボル。例:
AAPL
(Apple)、TM
(トヨタ)。 - interval(必須): データを取得する間隔を指定します。例:
1m
(1分ごと)、1d
(1日ごと)。
任意パラメータ
- range: 取得したいデータの期間を指定します。例:
1d
(1日)、1mo
(1か月)、1y
(1年)。 - period1: データ取得の開始日時をUNIXタイムスタンプ形式で指定します。
- period2: データ取得の終了日時をUNIXタイムスタンプ形式で指定します。
- events: 特定のイベント(配当や株式分割)を含めるかどうかを指定します。
例
例えば、トヨタ(シンボル: TM
)の過去1か月分のデータを1日ごとに取得したい場合、以下のようなリクエストを送信します:
https://query2.finance.yahoo.com/v8/finance/chart/TM?range=1mo&interval=1d
このリクエストによって、トヨタの過去1か月間の日次の始値、終値、高値、安値、取引量などが返されます。
レスポンスの構造
リクエストが成功すると、APIはJSON形式でデータを返します。このデータには、指定した期間内の株式価格情報や取引量が含まれます。
- timestamp: 各データポイントのタイムスタンプ(UNIX形式)
- open: 各日の始値の配列
- high: 各日の高値の配列
- low: 各日の安値の配列
- close: 各日の終値の配列
- adj_close: 各日の調整後終値の配列
- volume: 各日の取引量の配列
エラーハンドリング
API利用時には、リクエストが失敗する場合もあります。これらのエラーは、HTTPステータスコードで示されます。
- 400 Bad Request: リクエストのパラメータが不正な場合
- 401 Unauthorized: 認証に失敗した場合(APIキーが必要な場合)
- 403 Forbidden: アクセス権限が不足している場合
- 404 Not Found: 指定した株式シンボルが見つからない場合
- 500 Internal Server Error: サーバー側の問題が発生した場合
ソースコード
getHistoricalDataのソースコードです。コピペなどでご使用下さい。
openapi: 3.1.0
info: title: Yahoo Finance API version: 0.0.12
servers: - url: https://query2.finance.yahoo.com/v8/finance/chart/ description: Main API server
paths: /historical: get: operationId: getHistoricalData summary: Retrieve historical data for a given stock symbol tags: - Stock Data parameters: - name: symbol in: query required: true schema: type: string description: Stock symbol to retrieve data for - name: range in: query schema: type: string description: Range from the current time (e.g., 1d, 5d, 1mo) - name: period1 in: query schema: type: integer description: Start time in UNIX timestamp - name: period2 in: query schema: type: integer description: End time in UNIX timestamp - name: interval in: query required: true schema: type: string description: Interval for the data (e.g., 1m, 1d) - name: events in: query schema: type: string description: Events to include (e.g., div, split) responses: '200': description: Successful response with historical data content: application/json: schema: type: object properties: timestamp: type: array items: type: integer open: type: array items: type: number high: type: array items: type: number low: type: array items: type: number close: type: array items: type: number adj_close: type: array items: type: number volume: type: array items: type: integer '400': description: Bad request (e.g., missing or invalid parameters) '401': description: Unauthorized (e.g., invalid API key) '403': description: Forbidden (e.g., insufficient permissions) '404': description: Not found (e.g., invalid stock symbol) '500': description: Internal server error
まとめ
Yahoo Finance APIは、過去の株価データを取得するのに非常に便利なツールです。これを活用することで、投資家やデータアナリストは、株式市場の過去の動向を分析し、将来の投資戦略を立てるのに必要な洞察を得ることができます。このAPIの使い方や取得できるデータについて理解を深め、実際にデータを取得して分析に役立ててください。