大型株と小型株どっちを狙うか考える方法とは?

こちらの記事で紹介されていた大型株と小型株どちらを売買するか判定する計算を元に考えました。YEN蔵氏がセミナーで紹介していた内容だそうです。
日経平均株価 ÷ 日経中小小型株指数
という計算式で表せる指数の状態を確認して、大型株と小型株のどちらに資金が流れているか確認している、ということでした。
分母の日経中小小型株指数はマザーズ指数に置き換えても問題ないと仰っていたそうです。
日経平均とTOPIXのどちらが強いか確認するNT倍率と同じことを、日経と日経中小小型株指数(マザーズ指数)で行っているということですね。
上記の記事ではこちらの計算を時価総額指数と呼んでいますので、時価総額指数と呼んでいきたいと思います。
時価総額指数が高いほど大型株に資金が流れており、低いほど小型株へ資金が流れているということがわかります。
使用したデータ
株価指数の取得にはyahoo_finance_api2を利用しました。
株価指数の取得にはyfinanceを利用しました。(2021/7/19)
yahoo_finance_api2と同じ、Yahoo Finance APIのデータを手軽に取得するためのライブラリーになります。
yfinanceの方が1度に複数銘柄取得することが出来て決算情報や財務情報も取得できるので、こちらのライブラリの方がお勧めです。
使い方についてはこちらの記事をどうぞ(無料記事です)↓↓

Yahoo Finance APIについては非公式という欠点があるようですが、日足で使う分には十分使用できると考えました。

マザーズ指数を直接取得できなかったため、「2516東証マザーズETF」を使用しています。
日経平均とマザーズの値動きの相関が見られればよいので、ETFで代替しても問題ないでしょう。
また日銀の買い支えが無いことにより、日経だけが著しく弱い可能性もあるため、NT倍率とTOPIXをマザーズ指数で割ったものもプロットしてみました。
TOPIXについては「1306TOPIX連動型上場投信」のETFを使用しました。
出力結果と考察

時価総額指数は10月に底を打ち上昇後、5月に天井を打っている状態が分かります。
一応各数値の倍率を変えて重ね合わせもしてみました。

TOPIX/マザーズ指数については概ね時価総額指数と同じ動きのため、日銀の買い支え対象が変わった件については無視して良さそうです。
5月に天井を打っていますが、こちらの時価総額指数34.7付近は2020年4月頃、および2020年1月頃と同水準となります。
金融緩和を発端としてマザーズが異常に買われる前の水準ですから、ここで天井を打つのも頷けます。
日銀によるTOPIXの購入は続くので緩い上昇基調にはなるかもしれませんが、今後の時価総額指数についてはレンジが予想されます。


まだレンジになっていないのではっきりと底を言い当てることは出来ないかもしれませんが、ちょうど今の31付近か29付近が底になりそうですね。
2021/8/30 時価総額指数

予想通り31程度で反転し、前回の天井と同程度の35で反転しています。
相場が過疎化して大型の方が強い状況だったのが現在マザーズの方が強い展開に移り変わっていますね。
これ以降はレンジになると考えられますので、また31付近になった時がマザーズや小型株の天井だと考えられます。
2021/11/28 時価総額指数

10月、11月は35まで達する前の34付近反転しています。
今後34付近で大型から小型へ資金が移動するかはわかりませんが、大型に資金が入り過ぎているため34~35を推移する間に小型へ資金が移動する確率は高くなりそうですね。
また、マザーズが上昇した11月半ば付近に32.6付近で反転しています。
金融緩和とコロナによる新興セクターへの大型資金流入が終わった今、マザーズに際限なく資金が入る可能性は低いため32.6付近が利確の目安になりそうですね。
時価総額指数の確認用BOTについて

こちらのbotで時価総額指数を毎日ツイートしています。
用途ごとにBOTを立てるのも大変なので、他の相場用プログラムも稼働させています。
ソースコード(2021/7/19更新)
ソースコードを上げておきますので、よろしければ試してみてください。
pythonでグラフを描画した後も拡大縮小、各位置での値の確認等動かすことができます。
yahoo_finance_api2が2021/7/10から使用できなくなったため、ソースコードを変更しました。
今回使用したyfinanceの方が複数コードを1度に取得できるため、実行も早くてコードも短くなりました…(^-^;)
yahoo_finance_api2のインストール
pip install yfinance
ソースコード
import yfinance as yf
import datetime
import time
import pandas as pd
import plotly.graph_objects as go
from plotly.subplots import make_subplots
start = datetime.date(2018,1,30)
codelist = ['^N225', '2516.T']
try:
stock_datas = yf.download(codelist, start=start)
except Exception as e:
print(code)
print(e.message)
pass
zikasougakusisu = stock_datas['Adj Close']['^N225'] / stock_datas['Adj Close']['2516.T']
# figを定義
fig = make_subplots(rows=1, cols=1, shared_xaxes=True, vertical_spacing=0.05, row_width=[1], x_title="Date")
fig.add_trace(
go.Scatter(x=zikasougakusisu.index, y=zikasougakusisu, name="時価総額指数", mode="lines"),
row=1, col=1
)
fig.update_layout(
title={
"text": "時価総額指数 日足チャート",
"y":0.9,
"x":0.5,
}
)
fig.show()
まとめ
今回は「大型株と小型株どっちを狙うかを把握する方法」をpythonで自動化してみました。
今後、反転して底の目安がわかればより実用しやすくなると思うので、ぜひ使用してみてください。
興味深いお話を提供していただいた、YEN蔵さん、ひげづらさんどうもありがとうございました。
コメント