セルインメイで資金をどこに移せばいいか?

2023年5月26日

投資の有名な格言に「セルインメイ」があります。セルインメイは"sell in may and go away"(5月に売って遊びに行け)という意味なのですが、売った後は現金が一番有利なんでしょうか。

私も最近セルインメイしたので手元資金をどうしたら一番効率が良いか、直近のデータから確認してみました。

何を使って確認するか

私はいつもGoogle ColabとYahoo Financeでデータを確認します。詳しいやり方は次のリンクに書いてありますので参考にしてください。

どの商品に投資する?

何もしない(増減0)よりもましなのか?を次のものを比較しようと思います。とりあえず考え付くだけですが

コード商品名
原油1671WTI原油価格連動型上場投信
1540純金上場信託(現物国内保管型)
RIET1343NEXT FUNDS 東証REIT指数連動型上場投信
小麦1695WisdomTree 小麦上場投資信託
国債1621上場インデックスファンド海外債券(FTSE WGBI)毎月分配型

セルインメイ中の成績を調べる

プログラムは9月頭の価格から5月末の価格を引いて、どれだけ利益が大きいかを比較しました。9月に下がっていればマイナスになっています。データは2013年から2022年まで9月頭ー5月末の数値の10個の平均を割合で表しています。

使ったコードはこんな感じです。初めにライブラリのインポートをします。

import matplotlib.pyplot as plt 
%matplotlib inline
from pandas_datareader import data  as pdr
import datetime
import yfinance as yf 
yf.pdr_override()

次はデータをヤフーファイナンスからダウンロードします。

price = {
'genyu' : pdr.get_data_yahoo('1671.T',  datetime.datetime(2013,5,1), datetime.date.today() ).loc[:,'Adj Close'],
'gold' : pdr.get_data_yahoo('1540.T',  datetime.datetime(2013,5,1), datetime.date.today() ).loc[:,'Adj Close'],
'reit' : pdr.get_data_yahoo('1343.T',  datetime.datetime(2013,5,1), datetime.date.today() ).loc[:,'Adj Close'],
'komugi' : pdr.get_data_yahoo('1695.T',  datetime.datetime(2013,5,1), datetime.date.today() ).loc[:,'Adj Close'],
'kokusai' : pdr.get_data_yahoo('1677.T',  datetime.datetime(2013,5,1), datetime.date.today() ).loc[:,'Adj Close']
 }

最後に各年の5月末、9月頭のデータを取得します。Tryが3連続で書いてある部分は月末の市場の営業日を調べています。

sname = ['genyu','gold','reit','komugi','kokusai']
year = {'2013','2014','2015','2016','2018','2019','2020','2021','2022'}

for i in sname:

  avrg = 0

  for j in year:


    try: 
      sdate = j + '-05-31'
      may = price[i].at[sdate] 
    except:
      try: 
        sdate = j + '-05-30'
        may =  price[i].at[sdate]
      except:
        try: 
          sdate = j + '-05-29'
          may =  price[i].at[sdate]
        except:
          print(sdate, i)

    try: 
      sdate = j + '-09-30'
      sep = price[i].at[sdate] 
    except:
      try: 
        sdate = j + '-09-29'
        sep =  price[i].at[sdate]
      except:
        try: 
          sdate = j + '-09-28'
          sep =  price[i].at[sdate]
        except:
          print(sdate, i)

    avrg += (sep - may)/may

  print (i, avrg / 10)

上のコードを実行すると各商品の10年間の5-9月の騰落の平均が得られます。結果はこんな感じです。

コード成績(9月頭額ー5月末額)
原油1671-0.7 %
1540-0.03 %
RIET13431.6 %
小麦16951068.8 %(調整後-17.5 %)
国債16210.06 %

意外でしたが原油と金はマイナスでした。

RIETと国債はプラスでそれぞれ1.6 %、0.06%でした。

小麦は1000%を超えてしまっているんですが、これは2018年より前は小麦の価格が0で計算されている日があったようです。その年をデータから外したら-17.5 %でした。(これもでかいけど)

全体を見るとRIETだけとびぬけて良い結果になりました。やっぱり5月は株売ってRIET買いなんでしょうか。

まとめ

分析の結果はセルインメイの間は資金はRIETに変えておくのが良さそうです。

ここで使ったコードはColabで共有しています。Googleにログインすると実行できるので挑戦してみて下しい。