見出し画像

バックテスト:Net Cash Ratioは実際のところどれだけ有効か?

少し前に話題になった「わが投資術」で言及されていた Net Cash Ratio について、実際のところどれだけ投資に有効なのか、Pythonでプログラムを組んで過去10年分のデータでバックテストしてみたのでその結果について書いてみる。


1. テスト方法について

過去10年分の財務データと株価データを利用して、各企業の決算報告日時点での Net Cash Ratio とその1、2、3、6ヶ月後の日経平均に対する相対リターンを計算。様々な条件で比較分析してNet Cash Ratioとリターンの関係を確認。

2. データについて

財務データはEDINETからダウンロードしたXBRLファイルから、株価データはyFinance APIから取得。
今回は2014年6月〜2023年12月の決算報告書を対象とするが、当該期間中にEDINETにアップロードされたXBRLファイル数(決算報告数)は128,276件。このうちNet Cash Ratio (以下NCR) の計算が出来たのは116,956件で全体の91.2%。さらに本書において「小型株」と分類されていた時価総額500億円未満のものに絞ると83,859件。以降はこれを母集団として進める。

3. Net Cash Ratio単独での比較

まずはシンプルにNCRが1未満のグループと1以上のグループに分けて相対リターンの平均を比較したのが以下。

思っていたより差が出たなという印象。そしてもう少し細かく、NCRが1以上2未満、2以上3未満、、、で分けたのが以下。

完全に綺麗な相関関係が出ているわけではないが、少なくともNCRが1〜2のグループよりは2以上の各グループの方が良い数字が並んでいる。あとは、縦に見比べた感じだと、報告日直後からグングン上がるというよりは少し時間を置いてから着実に伸びて行くようなイメージだろうか。

4. EPS成長率など他の条件を追加して検証

NCRだけで銘柄選定を行ったとしてもある程度良い結果が得られそうではあるが、今回はせっかく財務データを利用しているのでEPS成長率など各種財務指標も組み合わせて検証したいと思う。

ということでEPS、売上高、営業利益、純利益、CFO、FCFあたりの成長率を色々と組み合わせて試してみたが、やはりというか、王道の「売上高成長率」と「EPS成長率」を条件に加えた場合に特に腹落ちしやすい結果が出た。

A) NCR3以上 & 売上高成長率とEPS成長率で絞った場合

NCRは3以上とし、かつ売上成長率とEPS成長率を条件に加えたのが以下。具体的なパラメータ(下限値)は表中に記載している。

NCR>=3

単純にNCR1以上で絞った場合と比較すると全体に良い数字が並んでいる。例えばA-3は売上高とEPSの成長率を10%以上としたケースだが、3ヶ月相対リターンの平均が9.6%、中央値で5.9%、ベンチマークに対する勝率73.8%。この数字で十分と感じるかは人によると思うが、個人的には良い数字だと思う。
また、条件が厳しくなるにつれて(表の下に行くに従って)リターンの中央値やベンチマークに対する勝率が上がっているのも安心感が持てるところ。

B) NCR1以上の場合

件数を増やすためにNCR1以上でも色々と試したが、この場合はネットキャッシュの前年同期比5%以上という条件を加えた場合に良い数字が出た。もちろんNCR3以上の場合と比較すると全体に見劣りはするが、NCRだけで絞った場合よりも良く、件数もそれなりに揃っているので悪くない結果だと思う。

NCR>=1 & NC Growth>=5%

5. 補足

補足1:年間発生件数

リターンが良かったとしても発生回数(投資機会)が少なすぎたり時期に偏りがありすぎると使い辛いため発生頻度を確認。以下はA-2の132件を年毎にカウントしたもの。ある程度の偏りはあるが毎年それなりに投資機会は発生している。

補足2:流動性の確認

小型株なので流動性も確認しておきたい。下の表は左列が報告日の翌営業日の売買代金で、右列がその後5営業日の平均売買代金。このあたりは各自の資金サイズによって受け取り方が変わってくると思うが、全体の半分以上(50パーセンタイル)のケースで1日の売買代金はざっくり2,000万円以上だったということになる。

流動性の低いグループに高リターンが偏っていないか念の為確認したのが下記。一番右が流動性上位50%のグループの3ヶ月後相対リターンの分布で、中央が下位50%のもの。グラフは外れ値を除外して作成したものだが、これを見る限りではあまり心配する必要はなさそう。

6. 結論

実際には本書にもあったようにビジネスモデルや経営者の人間性なども含めて総合的に判断することになると思うが、個人的には判断材料の一つとしては十分に有効なのかなと。

備考

  • パフォーマンス計算は、例えば3ヶ月リターンの場合は「決算報告日の翌営業日の終値」と「3ヶ月後から10日間前倒した日の終値」から計算。

    • 決算発表日ではなく翌営業日の終値を使用しているのは、決算報告を見た後で買い出動しても間に合うタイミングでのリターンを見たかったため。

    • 10日間前倒しているのは、きっちり3ヶ月後にすると翌期の決算発表前後の動きの影響を受けるのを避けるため。

  • 取得出来ないデータの扱い

    • 時価総額の計算に必要な「発行済み株式数」は全体の4割程度と少なくない割合のXBRLファイルで設定なし。この場合、Basic EPSが取得できる場合は Net Income / Basic EPS の値で代替した。

    • 上場廃止となった企業の株価データはyFinance APIでは取得できない。この場合、PERが取得できる場合は PER * Basic EPS の値で代替した(報告日ではなく締日の株価となってしまう点は妥協)

  • 上場廃止となった企業の扱い

    • 上場廃止と聞くと破産をイメージしがちだが、実際はそのようなネガティブなケースは少数派で、経営戦略上の理由でTOBを実施するなどポジティブな理由の方が多い。後者の場合は3、40%程度のプレミアムを乗せた価格で行われることが多いため、全体で見ると必ずしもマイナスとは言い難い。今回は、上場廃止となった企業の相対リターンは一律0%とした。

注意:バックテストは過去の値動きを確認するものであり将来を約束するものではありません。内容には正確を期すよう努めていますがそれを約束するものではありません。本記事は投資行動を推奨するものではありません。

この記事が気に入ったらサポートをしてみませんか?