レバレッジETFと参照指数のリターンを比較実験するPythonコード
基本的にnoteでプログラミングコードを上げるつもりはありませんが、今回は気まぐれで一つ。
相場の荒れ具合によって、3倍レバレッジETFのパフォーマンスがどう変動するか実験するPythonコードです。
今現在の、コロナショックの渦中で乱高下する相場でレバETFに手を出すことの難しさがわかると思います。
参照インデックスのリターンには正規分布を仮定していますが、その平均と分散をコマンドラインから(もしくはコードの上の方を直接いじることで)設定可能です。下記のように実行します。
python3 this-program.py {{heikinti}} {{bunsan}} {{syuturyokusuu}}
何をしているかの詳細は、コードを解読していただければと思います。
(需要があれば、詳しく解説します!)
さて、下がコード本体です!
import numpy as np
import matplotlib.pyplot as plt
from numpy.random import *
import sys
#TECLなどは3倍レバレッジ
leverageRatio=3
#リターンの平均と分散設定(コマンドラインからも指定可能),正規分布前提
mu= 0.009 if len(sys.argv)==1 else float(sys.argv[1])
var= 0.05 if len(sys.argv)==1 else float(sys.argv[2])
outputs = 100 if len(sys.argv)==1 else int(sys.argv[3])
# np.random.normal(平均, 分散, 出力数)
returnTrend=np.random.normal(mu,var,outputs)
def createStockPriceTrend(returnTrend,leverage):
out=[1]
for i in range(len(returnTrend)):
out.append(out[i]*max(0,(1+leverage*returnTrend[i])))
return out
indexTrend=createStockPriceTrend(returnTrend,1)
teclTrend=createStockPriceTrend(returnTrend,leverageRatio)
fig, ax = plt.subplots(facecolor="w")
x = np.array(range(len(teclTrend)))
ax.plot(x, indexTrend, label='index')
ax.plot(x, teclTrend, label='leveraged')
plt.legend()
plt.show()
ご覧いただきありがとうございます! 少しでもサポートいただければモチベーションになります!