LoginSignup
8
2

Google Apps ScriptでYahoo Finance APIから株価を取得してアレコレしたい!

Last updated at Posted at 2023-11-29

Yahoo Finance APIとは

Yahooが提供していた金融に関するAPI
現状公式にAPIドキュメントがない

Pythonのライブラリはいくつか見つかったが他の言語のものがあまり見当たらない
非公式のアプリがYahooFinanceAPIを使っていると書いているので多分中を見たらわかるはず…と思いきやどれもこれもエラーがあるとかなんとか

エンドポイント

https://query2.finance.yahoo.com/v8/finance/chart/ {symbol}

symbol

要は銘柄コード

日本株探すなら1234.Tのように、(4桁の数字).Tにしておけばよい

その他period,intervalなどのパラメータの情報を得て一旦満足…したかに思えた

決算の情報が出てこない

有名どころのライブラリを見た感じ、
かっては決算情報、配当、株式分割の情報まで得られたらしい
今は決算情報が取れないという話だったので調べてみたところ、以下の記事に当たる

Yahoo Finaceからのデータの取得と分析

これならできるらしい…ということでソースを確認

ソースの一部
base.py
"chart": {
            "path": "https://query2.finance.yahoo.com/v8/finance/chart/{symbol}",
            "response_field": "chart",
            "query": {
                "period1": {"required": False, "default": None},
                "period2": {"required": False, "default": None},
                "interval": {
                    "required": False,
                    "default": None,
                    "options": [
                        "1m",
                        "2m",
                        "5m",
                        "15m",
                        "30m",
                        "60m",
                        "90m",
                        "1h",
                        "1d",
                        "5d",
                        "1wk",
                        "1mo",
                        "3mo",
                    ],
                },
                "range": {
                    "required": False,
                    "default": None,
                    "options": [
                        "1d",
                        "5d",
                        "7d",
                        "60d",
                        "1mo",
                        "3mo",
                        "6mo",
                        "1y",
                        "2y",
                        "5y",
                        "10y",
                        "ytd",
                        "max",
                    ],
                },
                "events": {"required": False, "default": "div,split"},
                "numberOfPoints": {"required": False, "default": None},
                "formatted": {"required": False, "default": False},
            },
        },

財務情報は株価取得とは別のAPIの機能になっているらしい
配当と株式分割の情報は今も取れる

このbase.pyに他のAPIのパラメータの情報も載っているので
自分では見つけられなかったけど海外Yahooのどっかしらにドキュメント公開されているはずでは…

他のAPIも少し触ってみたが、パラメータにcrumbというcookieの値が必要らしい
時間かかりそうだったのでいったんパス

パラメータ 説明
symbol 銘柄コード。1234.T
range 現在からの取得範囲。periodと両方指定した場合rangeが優先
period1 取得開始時間。UNIXタイムスタンプ
period2 取得終了時間。UNIXタイムスタンプ
interval ローソク足の太さ
events 配当(div)、株式分割(split)

この記事を書いている2023/11/29の前日に株式分割を行った森永乳業(2264)に対して
1年分、月足、株式分割と配当のデータを出すように要求すると下のようなURLになる

ここまでわかれば簡単
GASに限らずJavaでもrubyでもPHPでもいい

あとは返ってきたJSONをパースしてうんぬん
取得したデータ残したかったらスプレッドシートをテーブル代わりにするとか
ローソク足作れるライブラリ持ってきてやるとか

ここまでできたらそんな難しくないはずなのでいったんまとまった情報として公開
作れたら更新する(予定)

8
2
1

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
8
2