Python お金の健康

2022年に株式投資するならどれがいいの?グロース株とバリュー株をPythonで比較した話

こんにちは、ウチダです。

最近は株式をほとんど売却して、金・銀・仮想通貨を買い集めています。

株式を売却したのは、自分なりの分析を通して、すごく割高だと感じたためです。

特にGAFAMに代表されるグロース株は割高に感じています。

今回はその分析に使用した、グロース株とバリュー株を比較したチャートの作り方を紹介します。

(参考:2022年に投資するなら株式と金のどっちがいい?

グロース株は超割高!?Pythonで投資を分析しよう

グロース株は超割高!?Pythonで投資を分析しよう

投資の勉強をする時は、YouTubeでバフェット太郎さんの動画をよく見ています。

株式投資がテーマの時に、グロース株とバリュー株を比較するチャートが出てきました。

5:55あたりです。

バリュー株としてIVX(S&P Value Index Cash)、グロース株としてIGX(S&P Growth Index Cash)をが出てきます。

IVXをIGXで割った指標を使って、株式市場のトレンドを読み取るシーンがあります。

これを見て、同じチャートを作りたい!と思い、今回はPythonのプログラミングでチャレンジしました。

プログラミング言語Pythonを使って独自の分析チャートを作成しよう!

プログラミング言語Pythonを使って独自の分析チャートを作成しよう!

Pythonはデータ分析に強いプログラミング言語です。

コードがシンプルで分かりやすいため、誰でも無料で身につけることができます。

今回はバリュー株指数をグロース株指数で割った独自の指数を作成します。

ただ、バフェット太郎さんと同じ指数を使いたいのですが、データが見つかりませんでした。

そこで、Yahoo Financeにあった類似の指数を使うことにしました。

バリュー株指数にはiShares S&P 500 Value ETF(IVE)、グロース株にはiShares S&P 500 Growth ETF(IVW)を使います。

#ライブラリのインポート
from pandas_datareader import data
import pandas as pd
from pylab import mpl, plt
import numpy as np
import datetime
plt.style.use('seaborn')
mpl.rcParams['font.family'] = 'serif'
%matplotlib inline

#日付
start = '2000-01-03'
end = datetime.date.today()

 #グロース株
ivw_df = data.DataReader('IVW', 'yahoo', start, end)
ivw_open = ivw_df['Open']
ivw_close = ivw_df['Close']
ivw_high = ivw_df['High']
ivw_low = ivw_df['Low']

 #バリュー株
ive_df = data.DataReader('IVE', 'yahoo', start, end)
ive_open = ive_df['Open']
ive_close = ive_df['Close']
ive_high = ive_df['High']
ive_low = ive_df['Low']

#バリュー株/グロース株の指数を作る
ratio_df = pd.DataFrame()
ratio_df['Open'] = ive_open / ivw_open
ratio_df['High'] = ive_high / ivw_high
ratio_df['Low'] = ive_low / ivw_low
ratio_df['Close'] = ive_close / ivw_close
#空欄の削除
ratio_df.dropna(inplace=True)

#グラフ作成用のモジュールをインポートする
#conda install -c conda-forge cufflinks-py
import cufflinks as cf
import plotly.offline as plyo
plyo.init_notebook_mode(connected=True)

#グラフデータを入力する
qf = cf.QuantFig(
    ratio_df, #データ
    title='Value to Growth ratio', #グラフタイトル
    legend='top', #凡例の場所
    name='Value/Growth' #凡例に表示する名前
)

#グラフの表示と保存
plyo.iplot(
    qf.iplot(asFigure=True), #グラフを表示する
    image='png', #png形式で保存する
    filename='valuegrowth' #保存するファイル名
)

作成したグラフがこちらです。

バリュー株をグロース株の指数で割ったグラフ

この指標は上昇すると、バリュー株が大きく上昇していることを意味します。

下落はグロース株が大きく上昇していることを意味します。

2000年から2008年まではバリュー株が大きく伸びた期間でした。

バリュー株がグロース株を大きくアウトパフォームしていました。

しかし、それ以降はグロース株が大きく伸び続けました。

特にGAFAMに代表される巨大テック企業が成長した期間です。

2021年10月時点でも、グロース株が強いように感じます。

では、指標は今後どうなるのか?

移動平均を見て考えます。

今後の株式市場のトレンドはどうなる?Pythonで分析しよう

#移動平均を計算する
ratio_df['SMA1'] = ratio_df['Close'].rolling(window=50).mean()
ratio_df['SMA2'] = ratio_df['Close'].rolling(window=200).mean()

#グラフに表示するデータを用意する
ratio_date = ratio_df.index
ratio_close = ratio_df['Close']
ratio_sma1 = ratio_df['SMA1']
ratio_sma2 = ratio_df['SMA2']

#グラフを表示して保存する
plt.figure(figsize=(20, 10))
plt.plot(ratio_date, ratio_close, lw=2, label = 'Close', color='g')
plt.plot(ratio_date, ratio_sma1, lw=2, label = 'SMA50', color='b')
plt.plot(ratio_date, ratio_sma2, lw=2, label = 'SMA200', color='r')
plt.legend(loc=1, fontsize=18)
plt.xlabel('year', fontsize=18)
plt.ylabel('ratio', fontsize=18)
plt.tick_params(labelsize=18)
plt.savefig("valuegrowth_SMA2.png")

作成したグラフはこちら。

バリュー株をグロース株で割った指数に移動平均を表示する

チャートには50日と200日の単純移動平均線を追加しました。

2020年以降、W字型のチャートを作っているように見えます。

ダブルボトムは上昇トレンドへの転換点とも言われます。

(参考:ダブルトップ&ダブルボトム

今後はバリュー株の上昇に期待できるかもしれません。

バリュー株に投資するなら今のうちだと思います。

Pythonで投資の分析をするなら、この本がおすすめです。

ここまで読んでいただきありがとうございました。^^

-Python, お金の健康
-