XBRLとの戦い ―準備の準備―
XBRLからデータを持ってきたい。という話をよく聞きます。ファンダメンタルズ分析が好きな人に多いようです。
評論家とか投資家界隈はXBRLに期待していることは非常に大きいようですが。技術屋界隈だと大変評判が悪いです。バフェットコードも大変苦労してXBRLからデータを抽出してるようです。
5年分しかないのは大変残念なところですが、財務項目の詳細まで抜き出せるなら価値はあるかなと思います。弊社が購入しているデータでも、ある程度は入っていますが、細かい財務項目までは(たとえば純利益から営業キャッシュフローを出すまでに加減する全部の数字とか)が入っておりません。抜き出せるなら抜き出したいなーと思っていました。
ということで財務三表の全項目を抜き出してDBにいれるまで頑張ってみようと思いました。これから作業の進捗や気づきをここにちょくちょく書いていこうと思います。
(このシリーズはプログラミングの知識が結構ある人を対象にしています。「プログラミングわからないけどなんとかしてデータを手に入れたい。」という人は読んでも何も得るものがありません)
ダウンロード
金融庁が公開してるAPIがあるようなのでそこから数社。有報キャッチャーが公開しているAPIからXBRLを数社ぶんダウンロードしてみました(1)。金融庁のAPIはZIPで結果が帰ってくるようなので、ファイルの解凍作業が必要。まぁ個人でやるなら有報キャッチャーのそれのほうが使い勝手が良いです。
上場会社の証券コードはまとめてくれているところがあるのでそこを使うとして(2)、API たたいてダウンロードして解凍してファイルをまとめるのはそんなに難しいことじゃないですね。ここはとりあえず省略。後でがんばります。
(1) ダウンロードするライブラリーもあるみたいです https://pypi.org/project/edinet-xbrl/
(2) https://kabusapo.com/stock-data/stock-list/
XBRLをパース
まあXMLなので読むのは簡単です。バフェットコード謹製のパーサーもありますし(1)。 XMLパーサーを使うことにしました(2)。xmltodictだとOrderdDictで返ってくるようです、キーがタグになってるのでタグを指定すれば抜けます。
タクソノミーはとりあえず窓から投げ捨てました。こんな長ったらしいもん読む気になりません。(国税庁の確定申告の説明を読んでるような気になってきました。)
で、読んでみたのですが、これものすごく惜しい出来です。例えるなら超汚部屋に住んでる美人のねえちゃん。風呂嫌いの超イケメン。そんな感じです。せめて毎日風呂入ってくれりゃ女にモテるのに。家ぐらい片付けろよ。そう言いたい。
普通の財務三表って
*流動資産
ー現金 XX円
ー売掛金
ー 貸し倒れ引当金 XX円
ー 売掛金総額 XX円
ー流動資産総額 XX円
項目が階層化されてます。売掛金の中に貸し倒れ引当があってその下に純額があります。いくつかXBRLを読んでみたのですが、どうも見た感じこの階層化がなされていないようです。
タクソノミーを書いたEXCELには階層が定義されているようなのですがXBRL内には階層が特にないです。なのでだいたいこんな感じに記載されてます
ー現金 A年 XX円、 B年 YY円
ー貸し倒れ引当金 A年 XX円、 B年 YY円
ー売掛金総額 A年 XX円、 B年 YY円
ー流動資産総額 A年 XX円、 B年 YY円
上から順番に取得していけるっちゃいけるのですが親子関係をなんとかしてつけないと役に立ちません。タクソノミー全部読みこなして勘定科目ごとの親子関係つけるなら死んだ方がましですし、さてどうしようかな・・・(うまい方法が有ればおしえてください。)
(1) https://qiita.com/shoe116/items/dd362ad880f2b6baa96f
(2) https://github.com/martinblech/xmltodict
ディスカッション
コメント一覧
もう解決されたでしょうか。。
タクソノミにはpresentationLinkbaseやdefinitionLinkbaseというものがありまして、
そこに表示順なり親子関係が定義されていますよ