だいぶ前にも書いたのですけど JpStock は Yahoo ファイナンスをスクレイピングして日本国内の株式に関する情報を取得するものとしては秀逸です。なお、ありがたいことにこちらの記事でも取り上げていただいています。
さて、最近の状況としては世界的な株安が止まらなくなっています。 8/21 の時点で NY ダウは 3.1% 安と年初来安値、その週明けの日経平均は 4.6% 安、上海株は 8.5% といった状況でした。 (参考 : 下図)
上海も下げると米国も下げる、米国が下げると日本の夜間の先物も一段と売りが出る、翌日は現物も下げるという調子で連鎖が続きました。上海も今までジリ上げ基調であった日本株も 17 日の週から薄商いの中、先物主導で下げはじめ 2 万円を割る流れ、翌週には半値戻しに届かない程度の自立反発をするも、さらにここへきてさらに下値を探る展開、なかなかの波乱となっています。 28 日には一時的に 19,000 円を回復し投資家の不安心理がやや改善するも、米国の FOMC を控え、中国当局の動きなどを伺う神経質な相場です。
こういった状況であっても、日本企業のファンダメンタルズに大きな影響は無いという見方も多いのですが、実際のところファンダメンタルズに対する株価の現状としてはどうなのか。これは思い込みではなくデータを集めてしっかりと分析しなければなりません。そこで現在の予想 EPS をもとにした PER (株価収益率) に注目してみましょう。
require 'csv'
require 'jpstock'
CSV.open('out.csv', "wb") do |csv|
csv << ["銘柄コード", "銘柄名称", "始値", "高値", "安値", "終値", "前日終値", "出来高", "時価総額 (百万円)", "発行済株式数", "配当利回り (会社予想)", "1 株配当 (会社予想)", "PER (会社予想)", "PBR (実績)", "EPS (会社予想)", "BPS (実績)", "最低購入代金", "単元株数", "年初来高値", "年初来安値"]
# 銘柄一覧に基づいて JpStock によって PER, PBR などを取得する
CSV.foreach('stocks.list') do |row|
code = row[0]
unless code == "N225"
jps = JpStock.quote(:code=>code)
csv << [jps.code, jps.company_name, jps.open, jps.high, jps.low, jps.close, jps.prev_close, jps.volume, jps.market_cap, jps.shares_issued, jps.dividend_yield, jps.dividend_one, jps.per, jps.pbr, jps.eps, jps.bps, jps.price_min, jps.round_lot, jps.years_high, jps.years_low]
end
end
end
独自にまとめたここ最近 (8/21 〜 9/2) の世界同時株安のデータを GitHub に置いています。
https://github.com/ynakayama/sandbox/tree/master/ruby/jpstock/data
なお銘柄の一覧は先月末入れ替え前の JPX 日経インデックス 400 に筆者の判断でいくつかの銘柄を加えたものとなっています。
summary_xxxxxxxx.csv … 該当日の四本値と、機械学習等での予測
ref_xxxxxxxx.csv … JpStock によって収集した該当日の株価参考指標
データの利用は自由ですが、正確性やそれによって得られた損益について一切の保証をするものではありません。
機械学習や回帰分析によるトレンド分析・予測については他の記事で触れますので割愛します。
日経平均との相関は、過去 180 営業日の移動相関の平均を算出しています。
これらの数値を精査すると、先高期待で 18 倍以上に上振れていた PER が約 14 倍程度の下限まで落ちてきたということがわかります。なお、日経平均ではこの PER が 14 から 16 が適正水準とされています。もちろんこれは予想 EPS (1 株当たり当期純利益) をもとにしていますから、もしこの先日本企業の業績が下振れるということになれば変わってくることになります。
ここしばらくの歴史的な相場というのは研究の価値がありますから、上のデータをもとにさらに分析・可視化してみても面白いでしょう。