昨年、米国株価は特にハイテク株を中心に調子が良かったけど、S&P500とオルカンの比較をしてみました。

 

最後に、比較に使ったプログラムも掲載するのでお試しあれ。

 
 
先ず、昨年1年間のS&PとAWCI(オールカントリーワールドインデックス)の株価比較。
AWCIはインデックス投資先オールカントリーのマザーファンドです。
 
黄線がS&P500で、青線がオルカン
2023/1/2の株価を、共に1に正規化して表しています。
 
データはYahoo Financeから取得しました。
尚、為替も入れて円建てで計算しています。
 
 
 
数値で見ると下記の図の通り
 
オルカンに2023年年初に100万預けておくと、2023年最終日には129万6千円
S&P500は、134万8千円
 
尚、これはマザーファンドの結果で、投資信託の場合、証券会社の管理手数料が加わるので、最終桁はアテになりません。

よく使われる、年間リターンという言葉で言うと、オルカン29%、S&P500 34%
 
2023-01-02がNaNとなってるけど、データが欠損しています(NaN = Not A Number)。
市場が空いてなかったのか(そのハズはないけど)、Yahoo Financeのシステムの問題?
 
 
こんな好成績になったのは、為替の要因もあります。
為替の要因が8%ぐらい
昨年年初は130円と円高だったのね。
 
 
 
 
次からは、直近10年間のS&P500とオルカン比較です。
 
 

 

数値で比較すると、下記の通り

 

2014-1-1に100万預けて、塩漬けにしておくと、2023年末には

S&P500は349万

オルカンは240万

 

福利で増えるから、大きいよね

かのアインシュタインも言ってるよ、「人生最大の発明」ってね。 笑

 

 

 

 

ここで、直近10年間の年平均リターンを求めます。

 

先ず、結論から言うと

オルカンは、10年間の年平均リターン 9.17%

S&P500は、10年間の年平均リターン 13.33%

 

つまり、米国インデックス、昨年は調子良かったけど、直近10年間をならしたら、こんなもの。

 

やはり、オルカンがここ10年で比較してもS&Pより4%近く低いね。

 

何度も言うように、これはマザーファンドの結果で、投資信託の場合、証券会社の管理手数料が加わるので、最終桁はアテになりません。

 

根拠は、以下の計算結果

 

ここででてきた、2.405と、3.496は正規化した、オルカンと、S&P500の10年後(つまり昨年年末)の株価。

 

式の中で、X**Yとは、Pythonの記法なんだけど、EXCELで書くと、x^y となります。

これは、”XのYべき乗”の意味

X^(1/Y)とした場合、XのYべき根ともいいます。

 

この数値(1.09xxと、1.133yy)入れて電卓で掛け算10回、叩いてごらん(この数値を10回、掛け算ね)

各々、2.40と3.49になるから

 

 

 

さて、ここからが、Pythonの実行環境、Google Colabのアピールです。

下記ページは、WEB上に実行環境があるので、パソコンにPythonをインストールする必要がありません。

ページに入ると、使い方の説明があるからすぐに分かるよ。

 

 

 

 

 

今回使用したプログラムは以下の通り

import文から最後まで、コピペして上記Colaboratoryのページで実行すると、貴方のPCでも同じ結果が得られます。

 

スマホでできんのかって?

 

できるのかな?

 

コピペはスマホでもできるけど、

実行させるための指示は、シフト+ENTER なんだけど、スマホでどうやるんだろ。

 

#-------------------------------

import pandas as pd

import matplotlib.pyplot as plt

import yfinance as yf

from datetime import datetime

 

# データ取得期間の設定

start_date = "2014-01-01"

end_date = "2023-12-31"

 

# Yahoo Financeからデータを取得

acwi = yf.download("ACWI", start=start_date, end=end_date)['Close']

sp500 = yf.download("^GSPC", start=start_date, end=end_date)['Close']

 

# USD/JPY 為替レートの取得

usdjpy = yf.download("JPY=X", start=start_date, end=end_date)['Close']

 

# 為替レートで調整

acwi_adj = acwi * usdjpy

sp500_adj = sp500 * usdjpy

 

# 欠損データの前方補完

acwi_adj.ffill(inplace=True)

sp500_adj.ffill(inplace=True)

usdjpy.ffill(inplace=True)

 

# NaNではない最初のデータポイントを見つける

first_valid_index_acwi = acwi_adj.first_valid_index()

first_valid_index_sp500 = sp500_adj.first_valid_index()

 

# データの正規化

acwi_norm = acwi_adj / acwi_adj.loc[first_valid_index_acwi]

sp500_norm = sp500_adj / sp500_adj.loc[first_valid_index_sp500]

 

# チャートの描画

plt.figure(figsize=(12, 6))

plt.plot(acwi_norm, label="ACWI (Yen Adjusted)")

plt.plot(sp500_norm, label="S&P 500 (Yen Adjusted)")

plt.title("ACWI vs S&P 500 (Yen Adjusted) - Normalized")

plt.xlabel("Date")

plt.ylabel("Normalized Price")

plt.legend()

plt.show()

#-------------------------------