[Python] Erstellen eines Aktien-Drawdown-Diagramms

Code, der ein Drawdown-Diagramm basierend auf Exponentialdaten erstellt.

Bibliothek laden

python


import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
from datetime import datetime
import seaborn as sns
sns.set()

ETF-Daten lesen

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

Erstellung eines Drawdown-Diagramms

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")

Lauf

python


etfs = ['VTI','SPXL']
df = make_df(etfs)
dd_chart(df)

Ein solches Diagramm wird erstellt. dd_plot.png

Recommended Posts

[Python] Erstellen eines Aktien-Drawdown-Diagramms
"Erstellen eines Aktienkursdatensatzes" und "Implementieren von AR (1)"
Holen Sie sich Lager mit Python
Python: Aktienkursprognose Teil 1
[Python] Meine Aktienkursprognose [HFT]
Schreiben Sie ein Kreisdiagramm in Python
[Python] Memo zum Erstellen von Scraping-Tools
Vorsichtsmaßnahmen beim Erstellen eines Python-Generators
[Python] Kapitel 03-01 Schildkrötengrafiken (Erstellen einer Schildkröte)
Erstellen einer einfachen Power-Datei mit Python
Laden Sie japanische Aktienkursdaten mit Python herunter
Vorgehensweise zum Erstellen eines mit Python erstellten LineBot
Holen Sie sich Aktienkursdaten mit Quandl API [Python]
Befehle zum Erstellen einer Python3-Umgebung mit virtualenv
Verfahren zum Erstellen einer Python-Isolationsumgebung (venv-Umgebung)
Hinweise zum Erstellen einer Python-Umgebung durch Anfänger
Web Scraping mit Python (Aktienkurs)
Python & Machine Learning Study Memo ⑦: Aktienkursprognose
Holen Sie sich mit Python den Aktienkurs eines japanischen Unternehmens und erstellen Sie eine Grafik
Versuchen Sie, eine komprimierte Datei mit Python und zlib zu erstellen
Memo zum Erstellen einer Python-Entwicklungsumgebung mit macOS Catalina
Probleme beim Erstellen eines CSV-JSON-Konvertierungstools mit Python
[Zeitreihen mit Handlung] Dynamische Visualisierung mit Handlung [Python, Aktienkurs]
[Piyopiyokai # 1] Spielen wir mit Lambda: Erstellen eines Python-Skripts
Ein * Algorithmus (Python Edition)
[Python] Machen Sie einen Screenshot
4. Erstellen eines strukturierten Programms
Pythons Lambda-Ausdruck ...
Dämonisiere einen Python-Prozess
Erstellung von Schabewerkzeugen
Aktienkursprognose 2 Kapitel 2
Erstellen Sie eine Python-Umgebung
Erstellen eines Dataset Loader
Python3> rund (a - b, 7)
Aktienkursprognose 1 Kapitel 1
Programmierhistorie 1 Monat NY Dow-Bestand mit Python extrahieren!
Erstellen eines Python-Skripts, das die e-Stat-API unterstützt (Version 2)
Ein Hinweis beim Erstellen eines gerichteten Diagramms mit Graphviz in Python
[Python] Was ein unerfahrener Programmierer vor dem Erstellen eines Tools getan hat