株式銘柄紹介ブログ

主に日本の株式を紹介しています

プログラムで株式分析 その1 「決算短信のXBRLからデータを取得する」

お知らせ

プログラムで決算短信のXBRLをダウンロードする方法や、XBRL自体からデータを取得する方法については以下のページに書いていくつもりですので興味がありましたらご覧になっていただけると嬉しいです。

はじめに

最近Twitterで結構面白い動画や記事をみつけました。例えば

は普通に有料級の記事だと思うし、

これも相当良い動画だった。勉強会のレベルの高さがよくわかります。


自分は何を思ったかというと「短期投資であってもちゃんとサイエンスできるのね」ってことです。つまり、ちゃんと根拠をもってやる方法があるんだってこと。デイトレとかスキャルピングなどを自分はやっていませんでした。食わず嫌いだったんだなと反省しました。


なので自分も何かしたいという想いがあって、それで始めたのが決算短信のXBRLからデータを取れないかということです。具体的には

  • 決算発表の日付
  • 四半期決算の実績
  • 決算予想の推移

を取得しようとしています。

株価のデータはstooqという海外サイトのデータをAPI経由で取得できるとわかっているので、決算発表が株価に影響を与えてきたのかは理屈上は調べられるということになります。


定量分析のためのデータ集めをするというのが本記事の趣旨となります。


ただ、「決算発表がその後の株価に影響を与えているのではという話」は誰でも思いつくことなので、調べたところで利益が出るのかは別問題だと思っています。とりあえずの第一歩ということです。


 

 
 

決算短信のXBRLの入手元

以下の2つがあります。


特に東証上場会社情報サービスは優れていて、過去の決算短信のXBRLも取得可能です。何社か見てみるとXBRLが公開されているのは決算短信と業績修正に関するドキュメントのみでした。


業績修正のXBRLは決算時期以外で修正発表があった場合に掲載されているようです。自分がやりたいことをするためには決算短信と業績修正のXBRLを分析する必要があります。


適時開示情報閲覧サービスの例


東証上場会社情報サービスの例

上の図のようにXBRLのリンクからXBRLが入手可能です。


サイトのhtmlから以下のようなファイルとリンクの一覧を取得可能です。


東証上場会社情報サービスのウェブページは動的にページを生成しているのでプログラムでほしいデータを取ってくるには少し工夫が必要となっています。

決算短信のXBRLからデータを取得する

試しに1社分のXBRLを全てダウンロードして決算短信から数値を取得してみました。ちなみにXBRLの数は40個あり、サイズは2MBくらいしかありませんでした。結構コンパクトだなという印象です。ハードディスクにやさしいです。


決算短信のXBRL分析はかなり簡単でした。EDINETのXBRLとは細かいところで作りが違うのですが、EDINETのXBRLを読めるなら決算短信のXBRLも読むことが出来ます。XBRL分析の詳細は既に記事にしているので、興味がある方はご覧になってくださるとうれしいです。


以下のように決算短信から業績予想と実績値を取得することが出来ます。


更に複数の決算短信から売上と営業利益の実績値及び予想値を時系列データにすると以下のようになります。

公表日,実績or予測,証券コード,決算期,四半期番号,売上,営業利益
2014/02/05,PL実績値,13010,2014-03-31,3,157156000000,2875000000
2014/05/09,PL実績値,13010,2014-03-31,4,202387000000,2915000000
2014/08/05,PL実績値,13010,2015-03-31,1,48675000000,319000000
2014/11/07,PL実績値,13010,2015-03-31,2,102476000000,721000000
・・・
2023/05/12,PL実績値,13010,2023-03-31,4,272167000000,8105000000
2014/02/05,PL予測値,13010,2014-03-31,4,188000000000,3100000000
2014/05/09,PL予測値,13010,2015-03-31,4,205000000000,3700000000
2014/08/05,PL予測値,13010,2015-03-31,4,205000000000,3700000000
・・・
2023/05/12,PL予測値,13010,2024-03-31,4,300000000000,8500000000

 

自分としては単純な実績値や予測値よりも、以下の事象が重要だと思っています。

  • 実績値の前年同期比
  • 業績予想の実績値に対する前年同期比(初めての公表時のみ)
  • 業績予想の修正量

 

なので時系列データを上記に即した形に加工します。以下は加工結果です。数値は売上と営業利益(前年同期比または前回発表比)となっています。

公表日,レコード種別,証券コード,決算期,四半期番号,売上,営業利益
2015/02/04,実績値の前年同期比,13010,2015-03-31,3, 8.3, -20.2
2015/05/08,実績値の前年同期比,13010,2015-03-31,4, 7.9, -15.6
2015/08/03,実績値の前年同期比,13010,2016-03-31,1, 3.1, -14.4
2015/11/06,実績値の前年同期比,13010,2016-03-31,2, 5.9, 56.2
2016/02/05,実績値の前年同期比,13010,2016-03-31,3, 5.1, 7.6
2016/05/09,実績値の前年同期比,13010,2016-03-31,4, 3.8, -1.1
2016/08/05,実績値の前年同期比,13010,2017-03-31,1, 4.1, 71.1
2016/11/04,実績値の前年同期比,13010,2017-03-31,2, 1.0, 4.0
2017/02/10,実績値の前年同期比,13010,2017-03-31,3, 0.6, 16.4
2017/05/11,実績値の前年同期比,13010,2017-03-31,4, 4.4, 53.0
2017/08/04,実績値の前年同期比,13010,2018-03-31,1, 8.9, 109.6
2017/11/06,実績値の前年同期比,13010,2018-03-31,2, 9.9, 91.8
2018/02/09,実績値の前年同期比,13010,2018-03-31,3, 10.2, 34.5
2018/05/10,実績値の前年同期比,13010,2018-03-31,4, 7.7, 9.2
2018/08/03,実績値の前年同期比,13010,2019-03-31,1, 2.0, -42.3
2018/11/05,実績値の前年同期比,13010,2019-03-31,2, -1.0, -52.3
2019/02/08,実績値の前年同期比,13010,2019-03-31,3, -0.3, -15.1
2019/05/13,実績値の前年同期比,13010,2019-03-31,4, 0.5, -5.8
2019/08/02,実績値の前年同期比,13010,2020-03-31,1, 8.1, 36.3
2019/11/05,実績値の前年同期比,13010,2020-03-31,2, 6.4, -31.4
2020/02/07,実績値の前年同期比,13010,2020-03-31,3, 3.9, -20.2
2020/05/12,実績値の前年同期比,13010,2020-03-31,4, 2.5, -23.8
2020/08/07,実績値の前年同期比,13010,2021-03-31,1, -13.3, -17.8
2020/11/06,実績値の前年同期比,13010,2021-03-31,2, -7.9, 87.6
2021/02/05,実績値の前年同期比,13010,2021-03-31,3, -5.4, 40.7
2021/05/14,実績値の前年同期比,13010,2021-03-31,4, -5.1, 59.6
2021/08/06,実績値の前年同期比,13010,2022-03-31,1, 7.6, 128.4
2021/11/05,実績値の前年同期比,13010,2022-03-31,2, 3.4, 133.6
2022/02/04,実績値の前年同期比,13010,2022-03-31,3, 3.1, 55.3
2022/05/13,実績値の前年同期比,13010,2022-03-31,4, 1.8, 37.3
2022/08/05,実績値の前年同期比,13010,2023-03-31,1, 11.6, 68.2
2022/11/04,実績値の前年同期比,13010,2023-03-31,2, 10.5, 66.8
2023/02/03,実績値の前年同期比,13010,2023-03-31,3, 6.4, 42.2
2023/05/12,実績値の前年同期比,13010,2023-03-31,4, 7.3, 26.8
2014/05/09,予測値の前年同期比,13010,2015-03-31,4, 1.3, 26.9
2014/10/27,予測値の修正量    ,13010,2015-03-31,4, 1.5, -35.1
2015/05/08,予測値の前年同期比,13010,2016-03-31,4, 4.9, 46.3
2015/10/26,予測値の修正量    ,13010,2016-03-31,4, 0.0, -27.8
2016/05/09,予測値の前年同期比,13010,2017-03-31,4, 7.7, 43.9
2017/05/11,予測値の前年同期比,13010,2018-03-31,4, 5.7, 7.4
2018/05/10,予測値の前年同期比,13010,2019-03-31,4, 4.8, 18.1
2019/05/13,予測値の前年同期比,13010,2020-03-31,4, 11.7, 43.6
2019/11/05,予測値の修正量    ,13010,2020-03-31,4, -2.1, -27.3
2020/05/12,予測値の前年同期比,13010,2021-03-31,4, 2.8, 43.9
2021/05/14,予測値の前年同期比,13010,2022-03-31,4, 0.3, 7.4
2022/02/25,予測値の修正量    ,13010,2022-03-31,4, 0.0, 30.0
2022/05/13,予測値の前年同期比,13010,2023-03-31,4, 8.4, 9.5
2023/03/27,予測値の修正量    ,13010,2023-03-31,4, -1.8, 11.4
2023/05/12,予測値の前年同期比,13010,2024-03-31,4, 10.2, 4.9

 

次にしたいこと

次は決算発表によって株価が変化しているのかを調べていこうかと思っています。具体的には

  • 業績が前年同期と比較して良いなら株価も上がるのか
  • 業績予想が前年と比較して良いなら株価も上がるのか
  • 業績予想が上方修正されたなら株価も上がるのか

といったことを調べていきます。


ただ、自分は統計の知識はないのでせいぜい結果をグラフにして主観で判断するという形になりそうです。統計とか機械学習とかがわかると出来ることが増えそうなので、今後本を買って読んでみようかと思っています。
 
 

 

おわりに

今回定量分析のためのデータ集めをしてみたのですが、正直なところ、JPXが公開しているJ-Quants APIを使ったほうがいいです。無料でも2年分、月3000円程度で過去10年分のデータを取得可能なので十分だと思います。自分がわざわざXBRLからデータを取得しているのは、プログラミングが趣味で楽しいからで実益を求めるなら月3000円くらい出した方が良いと思います。


また、今のやり方だと使おうとしている特徴量の数が少なすぎるという問題もあります。J-Quantsのコンペの入賞者が使っている特徴量の数は100とか普通にあるので、売上と営業利益の前年比だけでは大した結果は得られないんだろうなと思っています。


したがって、本格的にデータ分析するようになったらJ-Quants APIに課金しようかなと思っています。


今回はここまでです。


以下に続きます。

www.quwechan.com