Twitterで出てくる知見は本当か自分で調べてみよう。5 「1月の相場が高ければ、その年の相場は高くなる」(Python コードあり)
Twitterの知見は本当か自分で調べるシリーズです。
米国株の大御所のじっちゃまこと広瀬隆雄さんのツイートです。
おお、それはいいことを聞いた、、ですが、今年はマイナス、、プラスについては語られていますが、マイナスの年についての情報はありません。
マイナスだと落ちるのでしょうか?
マイナスでも上昇の程度こそあれ、上がるのでしょうか?
分かりません、では、実際に調べてみましょう。
使用する環境
今回もGoogle Colaboratoryのpythonを使うことにします。使い方などにつていはこちらを参考にしてください。
実際のコードとやっていること
コードは以下の通りです。
import fix_yahoo_finance as yf
import matplotlib.pyplot as plt
import pandas as pd
start_D="1950-1-7"
end_D="2020-1-31"
codelist1 = ["^GSPC"]
data2 = yf.download(codelist1, start=start_D, end=end_D)
df_Y=data2.resample("Y").last()
df_M=data2.resample("M").last()
df_analyse=pd.DataFrame(index=df_Y.index)
df_analyse["YearReturn"]=df_Y["Adj Close"].pct_change()
df_analyse["JanReturn"]=df_M["Adj Close"].pct_change()[df_M.index.month==1].values
display(df_analyse)
Yahoo USからS&P500の指数のデータを1950年から2020年一月までダウンロードし、それを年次と、月次にします。
年次のデータのパーセント騰落をYearReturnとして新しいDataFrameに格納したのち、月次の一月のパーセント騰落をJanReturnとして新しい列に入植します。
結果は以下の通り、(今年のデータは2020-01-30までとなっています。)
可視化
この数字だけで判定することもできるのですが、折角なので、可視化してみましょう。
import seaborn as sns
sns.jointplot("JanReturn",'YearReturn',df_analyse,kind='reg')
plt.grid(True)
X軸に1月のパーセントでの騰落、Y軸に年間のパーセントでの騰落としてクロスプロットするとこのような結果が出ます。
一月に上昇するとその年は上げやすいような傾向が見て取れます。
一月が下落した年はダメなのか?
では残念ながら一月が下落した年、さらには上昇と、下落でどのような差があるのでしょうか。そこの部分についても解析したいと思います。
一月がプラスだった時のクロスプロットと、
一月がマイナスの時のクロスプロットの比較をしてみます。
df_analyse["Jan_PLUS"]="MINUS"
df_analyse.loc[df_analyse['JanReturn'] >= 0, 'Jan_PLUS'] ="PLUS"
sns.lmplot(x="JanReturn", y="YearReturn", hue="Jan_PLUS", data=df_analyse)
plt.grid(True)
オレンジ色の一月が上昇の時は基本上げているし、上昇率も大きいようです。
逆に下落の時も一月の下落幅が多かった時などは年間で上昇となる場合もあるようです。
2020年は-0.16%ですから少し微妙ですね、、(○ ̄ ~  ̄○;)ウーン・・・
--------------------------------------------------------------------------------------
これ以外にも以下のような記事を書いています。
--------------------------------------------------------------------------------------
Pythonで資産運用モデルを作成する記事をまとめました。
Pythonを用いて、株価取得、チャート表示、株価分析、株価予測、株価の機械学習、ポートフォリオの構築、ポートフォリオの最適化、スクレイピングなどを行う記事を集めました。読んでみてください。