見出し画像

「VIX 30以上」と「株価の動き」

ボラボラボラボラッ
ボラティリティ・インデックス!

最近、Netflixで「ジョジョの奇妙な冒険5部」のアニメが公開され、VIX(Volatility Index)が高くなってきていたので、ジョジョっぽい出だしにしてみた。

VIXが〇〇以上って、どれくらい発生しているのか?
その近辺の株価の動きはどんな感じなのか?

ささっと、グラフで視覚的に確認したいと思ったので、プログラムを書いてみた。

「確認したいVIXの値」「期間」は簡単に変更できるようにしてあるので自分が調べたい値に変更して使ってみてください。

1.Googleコラボにアクセス

Googleコラボにアクセス、リンクはこちら。

画像1

上記の様な画面が開くので「ノートブック新規作成」をクリック。

画像2

次に破線部分に、プログラムのコードを入力する。

2.実行するプログラム

入力欄に下記をコピペして左端の「▶︎」をクリックして実行。

pip install yfinance

同様に、入力欄に下記をコピペして左端の「▶︎」をクリックして実行。

import yfinance as yf
import pandas as pd
import datetime
import matplotlib.pyplot as plt
%matplotlib inline

# 確認したいVIXの値
vix_num=30

# 期間
start = datetime.date(1990,1,1)
end = datetime.date.today()

# 対象銘柄
codelist=["^GSPC","^VIX"]
# 表示名
displist=["S&P500","VIX"]

# 株価取得
data_stock = yf.download(codelist, start=start, end=end)["Adj Close"]

# グラフ領域設定
fig, ax1 = plt.subplots(figsize=(20, 6),facecolor="white")

# ax1とax2を関連させる
ax2 = ax1.twinx()
# 1つ目のデータをグラフ化
ax1.plot(data_stock[codelist[0]].dropna(),
color="red", label=displist[0],linewidth=2,alpha=0.5)
# 2つ目のデータをグラフ化
ax2.plot(data_stock[codelist[1]].dropna(),
color="blue", label=displist[1],linewidth=2,alpha=0.5)

# 凡例
handler1, label1 = ax1.get_legend_handles_labels()
handler2, label2 = ax2.get_legend_handles_labels()
# 凡例をまとめて出力
ax1.legend(handler1 + handler2, label1 + label2, loc=2, borderaxespad=0.5)

# 軸を45度傾け、軸を対数、軸の最大・最小値
ax1.tick_params(axis='x', labelrotation=45)
ax1.set_yscale("log") 
ax1.set_ylim(data_stock[codelist[0]].min()*0.5,data_stock[codelist[0]].max()*1.1)
ax2.set_ylim(data_stock[codelist[1]].min()*0.9,data_stock[codelist[1]].max()*3.0)

# VIX がvix_num以上のライン
ax2.axhline(y=vix_num, color="gray")

# 対象期間の塗りつぶし
df=data_stock[data_stock[codelist[1]] >= vix_num]
for item in df.index:
  ax1.axvline(item,color='limegreen',linewidth=1 ,alpha=0.1)

plt.show()

# 発生確率
print(str(len(df))+ " / "+str(len(data_stock))+" = "+ str(round(len(df)/len(data_stock)*100,2)))

# ここまで

3.実行結果

1990年1月1日〜2021年12月2日

画像3

仕様
 赤線:S&P500
 青線:VIX
 灰色:VIX=30
 緑色:VIXが30以上の期間

VIXが取得できる1990年以降からの全期間のグラフを見ると、VIXが30以上になる事は、比較的めずらしい(※)ことがわかる。

また、ざっくりとみた感じ、買いのタイミングとして、そこそこ良さそうにも見える。

ただし、気になる期間が二点ある。

2000年〜2004年あたり(ドッドコムバブル)

画像4

2007年〜2010年あたり(リーマンショック、サブプライムショック)

画像5

これらの期間をみると、VIXが30以上になった後、反発するどころか、株価はずっと下がり続けている。

ざっくりとまとめると、

VIXが高くなった時は、買い場の可能性が高いが、今後、景気後退に入るのであれば、買い場ではない。と言ったところだろうか。

今は、コロナが拡大した地域の労働力不足による半導体や素材関連や供給不足でインフレが懸念される状態。また、港のコンテナが滞留していたり、物流にも混乱がみられる。この状態が続けば企業の業績が悪くなる可能性もある。

そんな中、テーパリングが始まり、供給不足によるインフレ懸念で早期利上げが見込まれる局面。仮に業績が悪くなるのに、金利は上がるのだとしたら、最悪の状態だ。(そうはならないと思っているけれど…)

そして、値動きを見ると、変異株(オミクロン)の影響で金利が少し下がり、株価も下がった状態。ここから株価が上がれば、金利が上がってくるし、そうなると、株価も上がりにくくなる状態にあるようにも思える。

ここからの楽観的なシナリオとしては、

変異株の影響が限定的である事がわかれば、労働力不足の懸念が払拭され、部品・素材の供給への不安が和らぎ、物流の混乱も改善が期待でき、「供給力不足」による「業績の悪化」と「インフレ懸念」が和らぎ、金利の上昇も緩やかになり、株価も落ち着くのではなかろうか。

そう考えると、「景気回復への期待」と、「インフレ懸念の払拭」という2つの意味で、変異株の正確な影響の評価ワクチンの効果が注目される。

今回はVIXと株価について調べるプログラムを書いてみました。何かの参考になれば幸いです。

では!

おつかれさん「缶コーヒー1杯ぐらい、ご馳走してあげよう」という太っ腹な方は投げ銭をお願いします!
課金しなくても、参考になったら「ハートボタン、フォロー、リツイート」をお願いします。読まれる可能性があがるので、次の記事を書くやる気が出ます。

続きをみるには

残り 0字

¥ 100

期間限定 PayPay支払いすると抽選でお得に!

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