[Python] Création d'un graphique de tirage des actions

Code qui crée un graphique de drawdown basé sur des données exponentielles.

Charger la bibliothèque

python


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

Lecture des données ETF

J'utilise le fichier csv obtenu sur le site NASDAQ, mais toutes les données exponentielles feront l'affaire.

python


#Combinez les prix de clôture des fichiers CSV enregistrés à l'avance à partir des sites suivants en un seul
#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

Création d'un graphique de drawdown

python


#Tableau de tirage
def dd_chart(df):

    #Tirage calculé par le DfDD pour tous les fonds_Tout créer
    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']

    #Créer un graphique
    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")

Courir

python


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

Un graphique comme celui-ci est créé. dd_plot.png

Recommended Posts

[Python] Création d'un graphique de tirage des actions
"Création d'un ensemble de données sur le cours de l'action" et "Mise en œuvre de l'AR (1)"
Obtenez des stocks avec Python
Python: prévision du cours de l'action partie 1
[Python] Mes prévisions de cours de bourse [HFT]
Ecrire un graphique à secteurs en Python
[Python] Mémo de création de l'outil de grattage
Précautions lors de la création d'un générateur Python
[Python] Chapitre 03-01 graphiques de tortues (création d'une tortue)
Créer un fichier power simple avec Python
Téléchargez les données de cours des actions japonaises avec Python
Procédure de création d'un LineBot réalisé avec Python
Obtenez des données sur le cours de l'action avec l'API Quandl [Python]
Commandes pour créer un environnement python3 avec virtualenv
Procédure de création d'un environnement d'isolation Python (environnement venv)
Notes sur la création d'un environnement python par les débutants
Web scraping avec Python (cours de l'action)
Mémo d'étude Python & Machine Learning ⑦: Prévision du cours de l'action
Obtenez le cours de l'action d'une entreprise japonaise avec Python et faites un graphique
Essayez de créer un fichier compressé en utilisant Python et zlib
Un mémo pour créer un environnement de développement python avec macOS Catalina
Problèmes lors de la création d'un outil de conversion csv-json avec python
[Série chronologique avec plotly] Visualisation dynamique avec plotly [python, cours boursier]
[Piyopiyokai # 1] Jouons avec Lambda: création d'un script Python
Algorithme A * (édition Python)
[Python] Prenez une capture d'écran
4. Création d'un programme structuré
expression lambda de python ...
Démoniser un processus Python
Création d'outils de grattage
Prévision du cours de l'action 2 Chapitre 2
Créer un environnement Python
Créer un chargeur de jeu de données
Python3> rond (a --b, 7)
Prévision du cours de l'action 1 Chapitre 1
Historique de programmation 1 mois Extraire le stock NY Dow avec Python!
Création d'un script Python prenant en charge l'API e-Stat (ver.2)
Une note lors de la création d'un graphe dirigé à l'aide de Graphviz en Python
[Python] Ce qu'un programmeur inexpérimenté a fait avant de créer un outil