以前からAPIは提供されていたが、Pythonで実装されたAPIクライアントが提供されたので使ってみた。
特定期間の全銘柄情報
例えば、「昨日の四本値を分割併合の調整込みで知りたい」といったときに使える。ただし、結構時間がかかるのでその点注意が必要である。
下記のコードも、APIから取得してDataFrameを扱えるようになるまで、30秒程かかった。
!pip install git+https://github.com/J-Quants/jquants-api-client-python.git my_refresh_token: str = '***' from datetime import datetime from dateutil import tz import jquantsapi cli = jquantsapi.Client(refresh_token=my_refresh_token) df = cli.get_price_range( start_dt=datetime(2022, 7, 25, tzinfo=tz.gettz("Asia/Tokyo")), end_dt=datetime(2022, 7, 26, tzinfo=tz.gettz("Asia/Tokyo")), ) print(df)
サイバーエージェントの分割前後の値を見てみる
特定の銘柄の特定期間を取得するメソッドも用意がある。こちらは数秒でDataFrameを扱えるようになった。
df2 = cli.get_prices_daily_quotes( code='4751', from_yyyymmdd='20210325', to_yyyymmdd='20210405', )
2021年4月1日、サイバーエージェントは1株を4株に分割した。受渡日が1営業日短くなったのは2019年7月16日からなので、2021年4月1日に受け渡すためにはその2営業日前である2021年3月30日に株を持っている必要がある。上図からもそれが読み取れる。
使ってみての感想
非常に便利である一方、下記のような独特の癖があるので、利用には注意が必要である。
- リフレッシュトークンの更新は手動
- メソッドによっては、DataFrameが返却されるまでかなり待つ
- メソッドによって、範囲指定する際の引数の型が
'yyyymmdd': str
とdatetime
とが混在している