5月も後半に入り、多くの企業で決算短信が出揃った。決算短信には、来期(平成25年 4月 1日~平成26年 3月31日)の業績予想が記載されており、株価の動向を占う上で大切な情報となっている。
東京証券取引所の適時開示情報閲覧サービスや、各社のホームページから決算短信は取得する事が可能であるが、全ての上場企業のデータを取得し業績予報を確認するのは非常に大変である。その為、来期の業績予想を取得するプログラムを書いてみた。
なお、取得の方法は以下の通りである。
- 4月後半から5月中までの決算短信情報を適時開示情報WEB-APIより取得。
- 取得した情報より、XBRLデータの格納URLを取得しダウンロード。
- XBRLデータより業績予想(売上高予想、営業利益予想)を抽出。
【業績予想抽出プログラム】
#-*- coding:utf-8 -*- import re import urllib import json import zipfile from StringIO import StringIO def main(): re1=re.compile(">(.*)<") fp=open("/home/hatakazu/work/python/src/profitCheck/data.txt","w") tmpArray1=[] tmpArray2=[] tmpArray3=[] url1="http://webapi.yanoshin.jp/webapi/tdnet/list/20130422-20130426.json?limit=3000" url2="http://webapi.yanoshin.jp/webapi/tdnet/list/20130429-20130503.json?limit=3000" url3="http://webapi.yanoshin.jp/webapi/tdnet/list/20130506-20130510.json?limit=3000" url4="http://webapi.yanoshin.jp/webapi/tdnet/list/20130513-20130517.json?limit=3000" urls=[url1,url2,url3,url4] for url in urls: #apiにて適宜開示情報データを取得 tdnetData=urllib.urlopen(url).read() formatData=re.sub(u"<!--.*-->","",tdnetData) for line in json.loads(formatData)["items"]: #決算短信データのみ取得 if re.compile(r"^平成.*決算短信.*(連結)").search(line["Tdnet"]["title"].encode("utf_8")) is not None: try: #会社コードを設定 tmpArray1.append(line["Tdnet"]["company_code"].encode("utf_8")) #会社名を設定 tmpArray1.append(line["Tdnet"]["company_name"].encode("utf_8")) sf=StringIO(urllib.urlopen(line["Tdnet"]["url_xbrl"]).read()) z=zipfile.ZipFile(sf) zd=z.read([line for line in z.namelist() if line.find("xbrl") > -1][0]) for line in zd.split("><"): #予想売上、売上伸び率を設定 if line.find("ForecastNetSales") > -1: if line.find("NextYearConsolidatedDuration") > -1: if re1.search(line) is not None: tmpArray2.append(re1.search(line).group(1)) #予想営業利益、営業利益伸び率を設定 if line.find("ForecastOperatingIncome") > -1: if line.find("NextYearConsolidatedDuration") > -1: if re1.search(line) is not None: tmpArray3.append(re1.search(line).group(1)) tmpArray1.extend(sorted(tmpArray2,reverse=True)) tmpArray1.extend(sorted(tmpArray3,reverse=True)) except: pass #取得データを表示 if len(tmpArray1) == 6: print >>fp,"%s,%s,%s,%s,%s,%s" % (tmpArray1[0],tmpArray1[1],tmpArray1[2],tmpArray1[3],tmpArray1[4],tmpArray1[5]) #配列初期化 tmpArray1=[] tmpArray2=[] tmpArray3=[] if __name__ == '__main__': main()
取得したデータの内、売上高増加率上位100社は以下の通り。
会社コード | 会社名 | 売上高 | 売上増減率 | 営業利益 | 営業利益増減率 |
---|---|---|---|---|---|
32370 | M-イントランス | 4600000000 | 198% | 500000000 | 44% |
96100 | ウィルソンWLW | 3500000000 | 111% | 345000000 | 125% |
47430 | アイティフォー | 11000000000 | 106% | 1450000000 | 110% |
77440 | ノーリツ鋼機 | 55000000000 | 101% | 2750000000 | 346% |
64170 | SANKYO | 200000000000 | 92% | 32000000000 | 356% |
17190 | 安藤ハザマ | 355000000000 | 79% | 7000000000 | 25% |
62450 | ヒラノテクシード | 28000000000 | 78% | 2730000000 | 133% |
32520 | 日本商業開発 | 11300000000 | 72% | 1100000000 | 107% |
46510 | サニックス | 71500000000 | 65% | 8000000000 | 328% |
88900 | レーサム | 25200000000 | 64% | 4300000000 | 96% |
37420 | M-ITBOOK | 1800000000 | 58% | 80000000 | 136% |
71020 | 日車輌 | 123000000000 | 48% | 8500000000 | 323% |
42980 | プロトコーポ | 56760000000 | 48% | 4650000000 | 11% |
21810 | テンプHD | 365000000000 | 48% | 18500000000 | 88% |
67270 | ワコム | 88000000000 | 44% | 11380000000 | 44% |
32580 | 常和HD | 21400000000 | 44% | 6700000000 | 35% |
14200 | サンヨーH | 57735000000 | 41% | 2362000000 | 222% |
53440 | MARUWA | 34000000000 | 39% | 3700000000 | 62% |
31750 | M-APC | 15787000000 | 39% | 929000000 | 32% |
46540 | ニチゾウテック | 13700000000 | 38% | 700000000 | 75% |
24670 | バルクHD | 1431000000 | 37% | 20000000 | 34% |
51910 | 東海ゴム | 360000000000 | 37% | 12000000000 | 30% |
59900 | スーパーツール | 8550000000 | 36% | 850000000 | 26% |
63670 | ダイキン工 | 1760000000000 | 36% | 125000000000 | 41% |
42370 | フジプレアム | 16105000000 | 36% | 1624000000 | 53% |
93850 | ショーエイコーポ | 15500000000 | 36% | 429000000 | 224% |
90410 | 近鉄 | 1250000000000 | 34% | 51000000000 | 8% |
63570 | 三精輸送機 | 20000000000 | 34% | 1150000000 | 27% |
30110 | バナーズ | 4059000000 | 34% | 153000000 | -6% |
42060 | アイカ工 | 135000000000 | 33% | 13400000000 | 11% |
68320 | アオイ電子 | 37279000000 | 31% | 2992000000 | 24% |
37630 | プロシップ | 4500000000 | 31% | 1100000000 | 32% |
63300 | 洋エンジ | 300000000000 | 31% | 10000000000 | 527% |
43470 | ブロードメディア | 17000000000 | 31% | 400000000 | 140% |
80960 | 兼松エレク | 59000000000 | 31% | 5300000000 | 11% |
24130 | エムスリー | 34000000000 | 31% | 11400000000 | 23% |
80020 | 丸紅 | 13700000000000 | 30% | 175000000000 | 42% |
40080 | 住友精化 | 91500000000 | 30% | 4800000000 | 15% |
19160 | 日成ビルト | 33000000000 | 30% | 2100000000 | 14% |
81390 | ナガホリ | 18700000000 | 29% | 590000000 | 22% |
72660 | 今仙電機 | 110000000000 | 28% | 5500000000 | 96% |
66740 | GSユアサ | 350000000000 | 28% | 16000000000 | 64% |
42710 | 日カーリット | 47500000000 | 26% | 2000000000 | 45% |
66750 | サクサ | 49000000000 | 26% | 800000000 | 43% |
14910 | 中外鉱 | 24600000000 | 26% | 1200000000 | -20% |
67770 | SANTEC | 3031000000 | 26% | 200000000 | 636% |
72110 | 三菱自 | 2270000000000 | 26% | 100000000000 | 57% |
45570 | 医学生物 | 8693000000 | 26% | 232000000 | -2% |
38500 | M-NTTDIM | 4500000000 | 25% | 540000000 | 46% |
74080 | ジャムコ | 64180000000 | 25% | 3017000000 | 5% |
72140 | GMB | 57500000000 | 25% | 2100000000 | 61% |
57070 | 東邦鉛 | 129000000000 | 25% | 4100000000 | 667% |
78370 | アールシーコア | 12700000000 | 24% | 890000000 | 29% |
45240 | 仁丹 | 12000000000 | 24% | 600000000 | 118% |
75910 | エクセル | 110000000000 | 24% | 1930000000 | 53% |
67370 | EIZO | 72000000000 | 24% | 6000000000 | 192% |
77270 | オーバル | 14834000000 | 24% | 744000000 | 121% |
32540 | プレサンス | 52288000000 | 24% | 10004000000 | 7% |
67890 | ローランドDG | 38590000000 | 23% | 3780000000 | 165% |
67090 | 明星電 | 8000000000 | 23% | 500000000 | 446% |
72300 | 日信工業 | 214000000000 | 23% | 18000000000 | 105% |
21750 | SMS | 12475000000 | 23% | 1780000000 | 13% |
72670 | ホンダ | 12100000000000 | 23% | 780000000000 | 43% |
37660 | システムズD | 6756000000 | 22% | 306000000 | 144% |
18350 | 東鉄工 | 105800000000 | 21% | 6100000000 | 12% |
24540 | オールアバウト | 4000000000 | 21% | 200000000 | 27% |
88600 | フジ住宅 | 80000000000 | 21% | 5400000000 | 42% |
49660 | 上村工業 | 45890000000 | 21% | 5660000000 | 31% |
24830 | 翻訳センター | 8800000000 | 21% | 470000000 | 11% |
61130 | アマダ | 230000000000 | 21% | 14500000000 | 214% |
69320 | 遠藤照明 | 48010000000 | 21% | 8150000000 | 13% |
40050 | 住友化 | 2350000000000 | 20% | 90000000000 | 100% |
23710 | カカクコム | 28000000000 | 20% | 13700000000 | 18% |
60600 | こころネット | 12633000000 | 20% | 1004000000 | 8% |
80860 | ニプロ | 290000000000 | 20% | 15400000000 | 35% |
68690 | シスメックス | 175000000000 | 20% | 30000000000 | 38% |
20580 | ヒガシマル | 9857000000 | 20% | 508000000 | 88% |
63260 | クボタ | 1400000000000 | 20% | 160000000000 | 41% |
54440 | 大和工 | 190000000000 | 20% | 5000000000 | -9% |
42010 | 日本合 | 110000000000 | 20% | 15500000000 | 31% |
19250 | 大和ハウス | 2400000000000 | 20% | 140000000000 | 9% |
72940 | ヨロズ | 132000000000 | 19% | 6000000000 | -16% |
68890 | オーデリック | 36000000000 | 19% | 4500000000 | 78% |
78640 | フジシール | 118000000000 | 19% | 8400000000 | 8% |
50090 | 富士興産 | 114000000000 | 19% | 950000000 | 11% |
33410 | 日本調剤 | 166196000000 | 19% | 6881000000 | 112% |
66240 | 田淵電機 | 37000000000 | 19% | 2000000000 | 64% |
80150 | 豊田通商 | 7500000000000 | 19% | 155000000000 | 34% |
31500 | グリムス | 6201000000 | 19% | 350000000 | 121% |
32380 | セントラル総 | 19000000000 | 19% | 850000000 | 2% |
99620 | ミスミG | 160000000000 | 19% | 17500000000 | 4% |
97880 | ナック | 86000000000 | 18% | 5300000000 | 19% |
34310 | 宮地エンジ | 23000000000 | 18% | 700000000 | 16% |
66170 | 東光高岳 | 90000000000 | 18% | 1740000000 | -23% |
66520 | IDEC | 34700000000 | 18% | 3200000000 | 123% |
48200 | EMシステムズ | 12129000000 | 18% | 1541000000 | 27% |
63660 | 千代化建 | 470000000000 | 18% | 24000000000 | -4% |
72740 | ショーワ | 274000000000 | 18% | 19000000000 | 49% |
XBRLデータから業績予想を抽出する際、BeautifulSoupを使用してデータの抽出を試してみたが、うまくいかなかったので、正規表現を使用してデータ抽出を行った。また、XBRLデータはzipファイルに圧縮されて格納されている為、ダウンロード後解凍する必要があると考えていたが、zipfileモジュールを使用する事により解凍せずに直接対象ファイルを読み込む事が出来た。
抽出出来たデータ件数は1300件程である。ぱっと見であるが、レーサムや日本商業開発、常和HD等不動産関連銘柄が強気な来期予想を立てている感じがする。もう少し分析してみて今後の投資に役立てていきたい。