レバレッジ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()

ご覧いただきありがとうございます! 少しでもサポートいただければモチベーションになります!