Code, der ein Drawdown-Diagramm basierend auf Exponentialdaten erstellt.
python
import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from datetime import datetime
import seaborn as sns
sns.set()
Ich verwende die CSV-Datei, die von der NASDAQ-Site bezogen wurde, aber alle exponentiellen Daten reichen aus.
python
#Kombinieren Sie die Schlusskurse von CSV-Dateien, die von den folgenden Websites im Voraus gespeichert wurden, zu einer
#https://www.nasdaq.com/market-activity/funds-and-etfs/vti/historical
def make_df(etfs):
df = pd.DataFrame()
for etf in etfs:
csvfile = etf +'.csv'
csv_data = pd.read_csv(csvfile)
csv_data.Date = pd.to_datetime(csv_data.Date)
csv_data = csv_data.set_index('Date')
csv_data= csv_data.rename(columns={' Close/Last': etf})
df[etf] = csv_data[etf]
df = df.sort_index().dropna()
return df
python
#Drawdown-Diagramm
def dd_chart(df):
#DfDD berechnete die Inanspruchnahme für alle Fonds_Erstellen Sie alle
dfDD_all = pd.DataFrame()
for i in range(0,df.shape[1]):
dfDD = pd.DataFrame(df.iloc[:,i])
dfDD['max'] = dfDD.iloc[:,0].cummax()
dfDD[dfDD.columns[0]+'_DD'] = dfDD.iloc[:,0] / dfDD['max'] -1
dfDD_all[dfDD.columns[0]+'_DD'] = dfDD[dfDD.columns[0]+'_DD']
#Erstellen Sie ein Diagramm
fig = plt.figure()
dfDD_all.plot(figsize = (15, round(dfDD_all.shape[1]/2+0.4,0)*5), subplots=True,
layout=(-1, 2),sharey=True, title ='Drawdown')
plt.savefig('dd_plot.png',bbox_inches="tight")
python
etfs = ['VTI','SPXL']
df = make_df(etfs)
dd_chart(df)
Ein solches Diagramm wird erstellt.
Recommended Posts