24
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

決算短信自動取得

Last updated at Posted at 2018-09-03

財務諸表データが欲しいときに利用するのがEDINETやTDnetと呼ばれるものです.
どちらもXBRL形式で,
EDNITは有価証券報告書.確定データ
TDnetは決算短信.適時データ 
こんな感じのイメージです。

TDnetを自動取得

有報キャッチャー - 適時開示情報配信サービス
決算資料が発表されると自動で随意UPされる。

http://resource.ufocatch.com/atom/tdnetx

特定の会社を知りたいときは

http://resource.ufocatch.com/atom/tdnetx/query/{TDnetコード}

TDnetコード(5桁)は証券コード(4桁)の後ろに"0"を追加しただけのように思えるのですが, 正確なことは理解していません.
TDnetコード一覧はどこいけば見れるのかな?
一応東証上場会社情報サービス ここみればTDnetコードは見つけれるはず.

財務データがあるlink属性

linkタグで hrefの末尾がixbrl.htm であるもの を取得する.
目安として, hrefのurlに以下の文字列が含まれているかどうかで決算資料の種類が大別できるようだ.
###基本系

文字列 財務諸表の種類
bs 貸借対照表
pl 損益計算書
cf キャッシュフロー計算書
ss 株主資本変動計算書
ds 金銭の分配にかかる計算書(REIT)
ed 決算短信 
re 決算短信(REIT)

REITは投資会社が提出するもので, 勘定科目等が一般の会社と違い特殊.
edやreは, jpsmやifsmを末尾につけると取得しやすい.
jpは日本の会計基準. ifはIFRSのこと.

修正系

文字列 修正系の内訳
rrfc 配当金修正
rvfc 業績予想修正
rvdf 配当予想のお知らせ

###もしAsteriaで決算短信を取得するには

HtmlParseコンポーネント
基本>ベースセレクター:entry
基本>ループ開始:はい
取得する値>セレクター:link[href~=ed(if|jp)sm.*xbrl]

こんな感じでしょうか

具体的に決算短信を見てみると

適当にピックアップ
chrome で HTMLのソースを読むとわかるのですが

数字が入っている箇所は
table属性のtbody属性のtr属性のtd属性 の下にいます.例外がないです.
(ただし, この下に<span>や<p>で囲まれていたり, いなかったりする)

数字の箇所は下のよう ix:nonfraction で囲まれている。

例.sample
<ix:nonfraction contextref="CurrentAccumulatedQ3Duration_ConsolidatedMember_ResultMember" decimals="-6" scale="6" format="ixt:numdotdecimal" name="tse-ed-t:OrdinaryIncome" unitref="JPY">14,754</ix:nonfraction>

ix:nonfraction について

属性 解説
contexref 属性が"_"区切りで記載
decimals 桁数や小数点
scale なんぼで割っているか(6なら百万表記)
name コロン(:)以下が勘定科目名
unitref 通貨などの単位など
sign 正負(マイナスの時のみ表示される)

その中でもconterefについて

分類 英語 日本語意味
Duration 期間(PL系)
Instant 週間(BS系)
期間 Prior 前期
期間 Current 今期
期間 Next 来期
期間 Accumulated 累積(四半期のとき)
期間Member YearEnd 会計年度末
期間Member Annual 1会計年
連結Member Consolidated 連結
連結Member NonConsolidated 非連結
予実Member Result 実績
予実Member Forecast 予想

ざっとこんな感じ。

これをAsteriaのHTMLParseコンポーネントで取得するには

HTMLParseコンポーネント
基本>ベースセレクター:table->tbody->tr->td
取得する値>セレクター:ix|nonfraction

qiita_20180903_1.png

個別の属性値は正規表現で取得すればいいかと。

直してほしいところ

①titleを統一して

<title>【TDnetコード】会社名 会計年度期 (四半期)決算短信 [(日本orIFRS)会計基準] (連結or非連結)</title>

基本の形だが, 会計年度末は西暦/和暦, 全角/半角数字がごじゃまぜになっている.

②修正系は基本形を守っていない

【67520】パナソニック株式会社 配当予想に関するお知らせ

"【TDnetコード】会社名 タイトルの要約"
 だけでどの決算短信の修正かが一目で分かりづらい

link が多すぎてわかりづらい

<linkList>
 <link />
 <link />
</linkList>

せめて繰り返し項目なものは明示してほしい. ここで愚痴を言ってもダメですが...

兎にも角にも,
これらの情報をもとにすれば, 上場企業の全部の会社の全部の財務諸表データが取得できます.

PS

1年以上前の投稿ですが, 最近ストックされることが多いので追記.
実は私大学生の時,
金融データ解析の基礎 (シリーズ Useful R 8)という本を読んで, 
この記事の内容みたいことをしたことがあります.
もっと発展させたい方はこちらを読むと理解が進むと思います.

24
21
0

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
24
21

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?