高配当ETFや金ETFが今年はどのような値動き・リターンかご存じですか? 新興国ETF、米国債ETFだけでなく原油ETFやナスダックETFなど、18種類のETF・指数の現状と傾向を知り、今後の予測に役立てよう!【Google Colab・コピペで動く!】

スポンサーリンク
投資

11月になり、今年の投資成績の着地点が見えてくる中、どのようなアセットクラス、投資対象がどのような値動きをしたかをまとめます。また、来年の投資戦略についてもデータを基にした投資判断、決定ができればと思います。

2022/03/18追記:最新のデータを自動取得し、実行するようにしました。こちらが最新のデータとなります。

今年のアセットクラス(ETF評価)毎の現在のパフォーマンス

今年のアセットクラス(ETF評価)のボラティリティとリターンの関係

2022/01/05年初から2022/0318の値動きをパーセントでの累積で見るとこのようになります。

Y2D asset20220318

また、このデータは投資カテゴリーにて表示されるようにしています。

2021/12/11追記:以前の記事と合わせて、直近6カ月・直近一カ月の動向、気になる銘柄のみ抽出する方法も記述しました。

円ドルのコードをJPYUSD=Xとしていましたが、正確にはJPY=Xでした。コードの方は訂正させていただきました。スクリーンキャプチャはその時点の結果を尊重し、そのままになっています。

本記事の目的

以下のようなツイートを行いました。

今年の各資産の値動きを確認し、来年の投資戦略策定の参考にしたいと思います。
また、”感覚的に強い・弱い、勢いがあるらしい”ではなく、データを確認することで、世界では何が起こっているのか、どのような投資主体がどのようなどのような状況にあるのかの理解の参考になるかと思います。

データの取得

今回のデータハYahoo! US USのサイトから

米国株
SPY:S&P500連動ETF
QQQ : NASDAQ100指数連動ETF
DIA : ダウ指数連動ETF
IWM : 米国の小型株で構成される指数(ラッセル2000)連動ETF
ARKK : キャシー・ウッド氏率いるアーク・インベストメント・マネジメントのイノベーションに焦点を当てたETF

債券
SHY : 米国国債 1-3年 ETF
IEF : 米国国債 7-10年 ETF
TLT : 米国国債 20年超 ETF

コモディティ
DBC : インベスコ DB コモディティ インデックス トラッキング ファンド
USO : WTI原油連動ETF
GLD : 金地金との連動ETF
SLV : 銀ETF

新興国
BKF : BRIC ETF

通貨
BTC-USD : ビットコイン(BTC/USD)
ETH-USD : イーサリアム(ETH/USD)
JPY=X : 円ドル

指数
^SOX : SOX指数(フィラデルフィア半導体株指数)
^N225 : 日経225

を対象とします。データ期間は昨年末から現在(2021/11/14)までとします。

Pythonによる分析

今回も以前同様使用するツールはGoogle Colaboratoryのpythonを使います。無料で、簡単に行うことができます。Google Colaboratoryについては以前書いた記事をご参照いただければと思います。

実際のコードとやっていること

コードは以下の通りです。

!pip install yfinance --upgrade --no-cache-dir

import datetime
import yfinance as yf
import matplotlib.pyplot as plt
import pandas as pd
pd.options.display.float_format = '{:.4f}'.format

start_D="2020-12-30"
end_D = datetime.date.today()
codelist = [
    "SPY","QQQ","DIA","IWM","ARKK",
    "SHY","IEF","TLT",
    "DBC","USO","GLD","SLV",
    "BKF",
    "BTC-USD","ETH-USD","JPY=X",
    "^SOX","^N225"
]



data2 = yf.download(codelist, start=start_D, end=end_D)["Adj Close"]
display(data2.head().append(data2.tail()))
df_all=(1+data2.pct_change()).cumprod()
display(df_all.head().append(df_all.tail()))

df_all.plot(figsize=(8,6),fontsize=18)
plt.legend(loc='center left', bbox_to_anchor=(1, 0.5), fontsize=18)  

plt.grid(True)
plt.show()

df_Y=data2.groupby([lambda x: x.year]).last()
df_Y_pct=100*df_Y.pct_change()

display(df_Y,df_Y_pct.dropna())

データを取得し、パーセント変化率を求めグラフへとプロットを行います。
イーサリアム(ETH-USD)とビットコイン(BTC-USD)が非常に大きな上昇をしているようです。実際にどのような値動きだったのか、確認してみます。

display(df_Y_pct.dropna().sort_values(by=[2021],ascending=False,axis=1).T)


df_Y_pct.dropna().sort_values(by=[2021],ascending=False,axis=1).T.plot.bar(figsize=(15,4),fontsize=18)
plt.legend(loc='center left',bbox_to_anchor=(1, 0.5), fontsize=18)
plt.grid(True)

plt.show()

イーサリアム(ETH-USD)は昨年末740だったものが4600、価格としては6倍などになったようです。

ビットコイン(BTC-USD) も29000が64000、同じく価格としては2倍、これも大きく上昇したようです。

暗号資産関係はその法的根拠など、ファンダメンタルなどいろいろ意見がありますが、値動きという意味から考えれば、トレーダーとしては見逃すことのできない資産クラスになってきているようです。

またETFという派生商品も出てきて、投資などにあまり縁のなかった多くの一般の方にも注目されてきているようにも感じています。

ここまで大きな上昇をすると、対数で変化率の分析を行う必要ありますが、逆に他の銘柄群との比較が際立つので、ここでは敢えて、パーセントだけで行ってみました。

効率的フロンティア

効率的フロンティアの考え方をもとに、リスクとリターンの分析を行います。

具体的には以下の記事を参考にしてください。

今回のコードでは以下の通りです。

df_D=data2.pct_change()
df_Dex=data2.drop(["BTC-USD","ETH-USD"], axis=1).pct_change()

import seaborn as sns
plt.rc("legend", fontsize=18)
import warnings
warnings.filterwarnings('ignore')

def check(df_check):
    out_analyse=pd.DataFrame(index=df_check.columns)
    out_analyse["return"]=250*df_check.mean()
    out_analyse["volatility"]=16*df_check.std()
    out_analyse["sharpR"]=out_analyse["return"]/out_analyse["volatility"]

    # ボラティリティ、リターン、シャープレシオ チェック
    plt.style.use('seaborn-dark')
    ax= out_analyse.plot.scatter(x='volatility', y='return', c='sharpR',
                    cmap='RdYlGn', edgecolors='black', figsize=(8, 4), grid=True,sharex=False,s=100)
    for i,(x,y) in enumerate(zip(out_analyse["volatility"],out_analyse["return"])):
        ax.annotate(str(out_analyse.index[i]),(x,y))
    plt.show()

check(df_D)
check(df_Dex)

今回の例ではイーサリアムとビットコインがあまりにもボラティリティが大きく、かつリターンも大きいので、その二つを除外したものだけでもプロットしてみました。

また、この二つがあまりにも大きな動きでしたので、他の銘柄の値動きが小さく感じてしまいますが、USOという原油や、SOX半導体指数も強い動きでした。

また、S&P500のボラティリティとリターンのバランスであるシャープレシオは非常に高いものがあります。インデックス投資は王道、投資初心者だけでなく、本質的な戦略として支持されるのもうなずけますね。

2021/12/11追記分: 直近6カ月・直近一カ月の動向、気になる銘柄のみ抽出する方法

直近6カ月・直近一カ月の動向、気になる銘柄のみ抽出する方法をご紹介します。

これについては以前紹介した 【コピペで動く!】20行で資産運用モデル作成 長期、中期、短期の3区分の期間チャートをPythonで作成 【違いをみつけろ!】を利用します。

実際のコードは以下のようになります。

def SidePlot3(df_all,zone1_start,zone2_start):
      import matplotlib.dates as mdates
      import numpy as np
      dateformat=mdates.DateFormatter('%y/%m/%d')
      plt.rcParams["font.size"] = 18
      fig, axs = plt.subplots(1,3, figsize=(20, 8),sharey=False)

      for code in df_all.columns :
          axs[0].plot(df_all[code].index,(1+df_all[code]).cumprod(),linewidth = 3.0)
      axs[0].axvline(x=zone1_start,linewidth=2,color="b")
      axs[0].axvline(x=zone2_start,linewidth=2,color="r")        
      axs[0].axhline(y=1,linewidth=2,color="r")
      axs[0].grid(True) 
      axs[0].xaxis.set_major_formatter(dateformat)

      for code in df_all.columns :
          axs[1].plot(df_all[code][zone1_start:].index,(1+df_all[code][zone1_start:]).cumprod(),linewidth = 3.0,label=code)
      axs[1].axhline(y=1,linewidth=2,color="r")
      axs[1].grid(True) 
      axs[1].axvline(x=zone2_start,linewidth=2,color="r")    
      axs[1].xaxis.set_major_formatter(dateformat)
      
      for code in df_all.columns :
          axs[2].plot(df_all[code][zone2_start:].index,(1+df_all[code][zone2_start:]).cumprod(),linewidth = 3.0,label=code)
      axs[2].legend(loc='center left', bbox_to_anchor=(1, 0.5), fontsize=18)   
      axs[2].axhline(y=1,linewidth=2,color="r")
      axs[2].grid(True) 
      axs[2].xaxis.set_major_formatter(dateformat)
      
      fig.autofmt_xdate() 
      
###ここまでが3枚のチャートを表示する関数です。

import numpy as np
from dateutil.relativedelta import relativedelta

#t1 = np.datetime64("2020-10-29")
#t2 = np.datetime64("2021-02-13")

t1 = datetime.date.today() - relativedelta(months=6)
t2 = datetime.date.today() - relativedelta(months=1)

df_pct=data2.pct_change()

SidePlot3(df_pct,t1,t2)   

relativedelta(months=1) という関数を使うことで一カ月前の日付を取ってくることができます。今回の例では1カ月前と6カ月前の日付となります。

また、興味ある銘柄のみ表示したい場合は以下のようにして絞り込むことができます。

df_pct=data2[["ARKK","GLD","QQQ","SPY","TLT","USO"]].pct_change()

SidePlot3(df_pct,t1,t2)   

直近どのような値動きなのか、簡単に確認できます。

2021/12/11追記終わり

来年以降の戦略

仮想通貨関係に全額かけるというような投資はできませんが、ポートフォリオの5%程度は入れておかないと”持たざるリスク”というようなものを感じる存在感のある資産になってきたようです。半減期など、需給的なものも踏まえ、強い展開も視野に入れる必要があるかもしれません。

投資余力、ドローダウン耐性など、人によって違いますので、断定的なことは言えませんが、2021年の値動きという部分では、非常に象徴的な値動きだったように思われます。

ディスクレーマー

投資に関する免責事項情報の提供・作業代行を目的としており、投資勧誘を目的とするものではありません。

---

Pytho,投資関係に関する記事をご紹介します。

Python高速化! for文は遅いので、”これ”を使うと30倍早いですよ!【Google ColabのPython:コピペで動く!】
【コピペで動く!】Pythonで1.5GBのcsvファイル読み込み高速化:1分5秒⇒4秒程度 DASK , pickle (Pythonコードあり)
デコピコミンが全国(47都道府県)で、どの施設に出てくるか地図(Google Maps)で確認!!【ピクミン ブルーム(Pikmin Bloom)】(スタジアムピクミン対応!2022/12/04)
【コピペで動く!】レイ・ダリオ推奨「オール・ウェザー戦略」をETFで構築するには? ETFの手軽さとそのパフォーマンスの高さとは!【違いをみつけろ!】
対話型チャットAI「ChatGPT」が人気なので、アカウントの作成とか難しいことが分からない人向けにとりあえずBlogに埋め込んでみた!
【解決】Google ColabのPythonでエクセル(Excel)ファイルやCSVファイルに出力・入力する方法【コピペで動く!】
Windows10で機械学習環境チェック CPU/GPUでTensorflowの作業時間はどのくらい違うのか、Google Colabとも比較してみた。(CUDA Toolkit,cuDNN)
【解決】スクレイピングでHTTP Error 403: Forbiddenでアクセスできないときに試すべき方法【コピペで動く!】【Google Colab:Python:pd.read_html,selenium】
【コピペで動く!】20行で資産運用モデル作成 Google ColabのPythonで 米国株の株価を取得し、グラフ・チャートを表示
【コピペで動く!】Google ColabでPython を用いての 効率的フロンティア と ポートフォリオの最適化 Efficient Frontier & Portfolio Optimization with Python [Part 2/2]
ConoHa WINGレンタルサーバーでPython! Webアプリcgiを動かす手順を紹介!3つの例あり【コピペで動く!】
株価時系列データを分析する上で正規化を行う事の重要性について紹介する【違いをみつけろ!】
米国債のゼロクーポン債STRIPSについてのメモ
Google Analytics にPython APIで接続してみた話【コピペで動く!】
Google Data Portalを使ってWeb上のオープンデータを使って簡単に情報を可視化しようという話

コメント

タイトルとURLをコピーしました