レバレッジ付きNASDAQ100をシミュレーション

勉強

投資系Youtubeを見ていて、レバレッジ付きNASDAQ100を月足MACDのゴールデンクロスで売買すれば儲かるという話を聞いた。

レバレッジ付きNASDAQ100の計算方法、月足MACDの計算方法、ゴールデンクロスの確認方法…

とかとか、何にもわからなかったので、とりあえずNASDAQ100を調べて、レバレッジ付きNASDAQ100をPythonでシミュレーションしてみました。

NASDAQ100について

米国には主な株式市場としてNASDAQとニューヨーク証券取引所がある。よく聞くNASDAQ総合指数というのは、このNASDAQ市場に上場する全銘柄の時価総額加重平均。(1971年の2月5日に算出された指数で、この日を基準とする)

NASDAQ上場企業のうちで、ある採用基準を満たした100の企業で構成される指数がNASDAQ100。構成銘柄としては、GAFAM(Google, Apple, Facebook, Amazon, Microsoft)やテスラ、エヌビディアなどの有名銘柄があります。

雑に言ってしまえば、世界に多くあるNASDAQ上場企業の中から有望な上位100の企業から構成される指数ですかね。

レバレッジ付きNASDAQ100

レバレッジ付きNASDAQ100は、そんなNASDAQ100指数に対してn倍のレバレッジでの価格変動を目指した投資信託。

ここはあんまり調べていないのですが、主なものとして以下の二つのファンドがあるらしい

  • 楽天レバレッジNASDAQ-100
  • 大和-iFreeレバレッジ NASDAQ100

どちらも2倍のレバレッジでの値動きを目指しています。楽天証券を持っている方は楽天レバレッジNASDAQ-100を、SBI証券で口座を持っている方は大和-iFreeレバレッジ NASDAQ100を購入するのが多いみたいです。

レバレッジ NASDAQ100のシミュレーション

以上でレバレッジ付きNASDAQ100の概要が分かったので、なんとなくシミュレーションしてみましょう!

シミュレーションした結果がこちら。

青色の線がSBI証券からcsv形式で出力した大和-iFreeレバレッジ NASDAQ100。オレンジ色はyahoo financeからNASDAQ100のデータをpythonのpandas_datareaderライブラリを使って取得したプロット。緑色が取得したNASDAQ100のデータの2日々の変動の2倍のレバレッジでシミュレーションしてみた結果です。

結構いい感じでは??

参考までに、以下が今回使ったPythonのコードになります。
SBI証券からレバレッジ付きNASDAQ100のデータを取得したら以下のコードを実行すればよいだけです!

import pandas as pd
import pandas_datareader as web
import matplotlib.pyplot as plt
import numpy as np

# NASDAQ100の一日毎の終値を取得
start='2018-10-18'
end='2022-05-20'
df_nasdaq100 = web.DataReader(data_source='yahoo', name='^NDX',start=start,end=end) 
print(df_nasdaq100.iat[1,3]) # 2018-10-18のcloseの値

# SBI証券のチャートから取得したレバレッジ付きNASDAQ100のチャートを表示
df_SBI_LevNas = pd.read_csv("LeverageNasdaq.csv")
df_SBI_LevNas['Date'] = pd.to_datetime(df_SBI_LevNas['Date'], infer_datetime_format= True) # 日付を昇順に変更

# NASDAQ100からレバナスを作成
data_LevNas = []
LevNas_data = df_nasdaq100.iat[1,3]
data_LevNas.append(LevNas_data)
for i in range(1,len(df_nasdaq100.index)-1):
    LevNas_data = 2*(df_nasdaq100.iat[i+1,3] - df_nasdaq100.iat[i,3])+ LevNas_data
    data_LevNas.append(LevNas_data)

# シミュレーション結果をプロット
plt.plot(df_SBI_LevNas['Date'],df_SBI_LevNas["Close"],label='LevNas SBI')
plt.plot(df_nasdaq100['Close']*10000/7116.08984375,label='Nasdaq100')
plt.plot(df_nasdaq100.index[1:],np.array(data_LevNas)*10000/7116.08984375,label='LevNas Sim')
plt.xlabel('date')
plt.ylabel('value')
plt.legend()
plt.show()

細かい点が違いますが、大まかにレバレッジNASDAQ100の再現はうまくできていそうですね!

次は月足MACDとかゴールデンクロスとかのよくわからないものを実装していきます!

それでは、みなさんの参考になればうれしいです。

(このプログラムに間違いがあることが発覚しました…正しいプログラムはこちら)

コメント

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