05.4
その他
まとめ
この章は、日本の公的な開示データを Python で取り込み、取り込んだ数値から配分を決めるまでを扱います。EDINET API では
documents.json で書類一覧を取り、docID を指定して type=2 の PDF、type=5 の CSV、type=1 の XBRL をダウンロードし、「要素 ID × コンテキスト ID」で EPS や 1 株配当を抜き出します。取り出した本文を OpenAI の API に渡して決算コメントを要約させるページもあります。J-Quants API では /listed/info の銘柄一覧から業種・規模の分布を描き、/fins/statements の決算短信で塗料会社 5 社の EPS を決算期ごとに比べます。最後に pypfopt で投資信託 5 本の期待リターンと共分散から効率的フロンティアを描き、max_sharpe() の配分を求めます。直感 #
金融データ分析の出発点は「信頼できるデータソースから自動で取る」ことです。EDINET は金融庁、J-Quants は日本取引所グループが提供しているので、銘柄コードや科目名が公式の定義どおりに揃っており、サイトを手でコピーするより正確で再現可能です。どちらも「認証キーを環境変数に置く → 一覧を取る → ID で本体を取る → DataFrame にして絞る」という同じ型です。1 つ覚えればもう 1 つはすぐ使えます。取ったデータの使い道として、pypfopt の効率的フロンティアで「どの配分がリスクに対して最もリターンが高いか」を計算するところまでを 1 つの流れとして載せています。
API キーを環境変数に置く
一覧エンドポイントで ID を探す
ID で本体(PDF / CSV / XBRL / 決算短信)を取る
DataFrame にして要素 ID やコードで絞る
可視化・要約・ポートフォリオ最適化
詳細な解説 #
学べること #
- EDINET API:
documents.jsonでの書類検索、documents/{docID}のtypeによる PDF・CSV・XBRL の取得、edinet_xbrlによる要素 ID とコンテキスト ID での値の抽出 - 決算文書の要約: XBRL の TextBlock からタグを除き、OpenAI の
chat.completionsに渡して要約・質問・数値の読み取りをさせる - J-Quants API: リフレッシュトークンから
idTokenを取り、/listed/infoで 17 業種・規模区分の分布、/fins/statementsで複数企業の EPS を比較する - ポートフォリオ最適化:
pypfoptのmean_historical_returnとsample_covからEfficientFrontier.max_sharpe()で配分を求め、CLAで効率的フロンティアを描く
進め方 #
まず EDINET で書類一覧から docID を探して PDF を保存する 3 段階を体験し、EDINET② で CSV と XBRL から EPS や配当の数値を取り出します。次に J-Quants API で日本株全体の銘柄一覧と決算短信を扱い、業種や会社を替えて同じ比較ができることを確かめます。最後に 投資信託 で、価格の表から効率的フロンティアと最大シャープの配分を計算する手順に進んでください。