ニュースが投資判断の役に立つかもしれない!って思って、たくさん受信して読んでいた時期がありました。その頃の経験談です。たくさん受信するための補助プログラムと、たくさん読むための補助プログラムを開発して、頑張って読んでいました。
RSS フィードってご存知でしょうか?ウェブサイトの新着記事を配信してくれるんですけれども、これをたくさん受信して、上場企業の名前とか製品名を含んだ記事だけ一気読みしていけば、凄く効率的だなって思ったんです。それで、さっそくフィードを登録していったんですね。
でも、たくさん受信するとなると、やはりいろいろな困難がありまして。受信ソフトをいろいろ試した中で、メールソフトのサンダーバードが一番たくさん記事を受信できました。あと、さすがメールソフトでありまして、振り分け機能が素晴らしく、これがフィードでも同様に使えましたので、これだ!と思いました!
オー・ピー・エム・エル (OPML) ファイルって、フィードの購読リストなんですけども、これを読み込むとですね、いろいろなフィードを一括で受信登録できるんですね。これがサンダーバードも対応してまして、登録していったんですが、実用的に動くのは1000フィードくらいまでのようでした。
そういったわけで、受信と読むための補助プログラムを作りました。なんでも作って試しちゃいます!
受信は簡単でした。金融庁のエディネットコードリストで企業名と証券コードが分かりますので、それにヒットした記事だけCSVにまとめて読んでいきました。パイソンですが、
for 記事 in 記事ズ: for x in [極洋, ..., ベルーナ]: t = x(記事.text) if t: z.append([ 記事.time, 記事.title, '=hyperlink("%s","■")' % 記事.url, '|'.join(sorted(set(t))), ])
みたいな感じです。URLをハイパーリンクにしておくと、エクセルで開いたときに記事を見るのが簡単なんですね。あと、10記事くらい選択して一気にリンクを開くマクロも作りました。VBAですね。凄い効率上がりました!タブブラウザとの相性が想像以上でした。
極洋とかベルーナですが、これは中身が正規表現のファインド・オール関数です (findall)。
re.compile('(?<=[^ァ-ヺ])ベルーナ(?=[^ァ-ヺ])').findall
狙った名前にだけヒットするように、後読みと先読みをくっつけました。あと、ホールディングスの「HD」とか、グループの「G」とか、旧社名も含めたりして、精度を上げました。記事では本当にいろいろな表現がありますね。
全社をひとつの正規表現にしちゃってもいいのですが、パターンって3万文字くらいが限界みたいなんですね。これを超えると何もヒットしなくなっちゃいました。1社5文字で3000社で1万5000文字。旧社名とかバリエーションを含めると、簡単に超えちゃいます。なので、雪だるまをやめて、1社ごとの判定になりました。
このような準備をしましてですね、1日に1回、企業ごとに受信した記事をチェックしていったんですね。1日に8000記事くらいの新着があったんですけれども、上場企業に触れた記事が100~300記事くらいだったでしょうか。何とか目を通せる感じでした。ひと月くらいでしょうか、夜にチェックしてました。
で、投資判断の役には・・・そうですね、ここまでしなくて良いと思いました。あたりまえのことなのですが、情報の出どころって、その企業の開示なんですよね。ほとんどのニュースは、そういう開示がありましたって記事でした。
あとは、週刊誌のスキャンダル記事や経済紙のいわゆる「飛ばし記事」ですね。これらは、日々、投資タイミングをはかるなら、重要なのかもしれません。
国や地方自治体の新着記事も、まれにですが、ヒットしてました。ですがこれらも、工事の施工例などでたまたま社名が登場した感じで、あまり投資判断に使う感じの情報ではなかったですね。
どんどんテンションが下がって、記事を受信するのやめちゃいました。あと、補助プログラムを動かすのって、結構電気代が かかったんですよね。自分が記事読むのも時間がかかりますし、費用と効果がまったく見合わない感じでした。んん~うまくいかないものです。
唯一良かったのが、社長インタビューとか対談とか会社紹介の記事ですね。どのような方が経営にあたっているのか、その言葉や雰囲気は投資判断に資するところがあると思いました。
このような過程がありまして、ニュースを集めて読んで投資判断に役立てよう!という試みは、短期間で終了したのでした。一般的なニュースチェックを超えてニュースを追わなくても大丈夫じゃないかなって思えたのが収穫です。いろいろ試してみるものですね。