[Python] Obtenez des données économiques avec DataReader

Le tableau suivant a été présenté sur twitter. VIX_SP500rtn.png Ce graphique est

L'axe horizontal est VIX (indice de peur) et l'axe vertical est le taux d'augmentation / diminution pendant 100 jours (environ six mois). Il existe une corrélation positive entre le niveau de VIX et le taux d'augmentation et de diminution par la suite, et ce n'est pas une marche aléatoire. Étant donné que le VIX actuel est d'environ 40, il semble peu probable que le rendement après six mois soit négatif par rapport aux cas précédents (l'investissement est à vos propres risques!)

Cela signifie que.

Ce graphique a été créé en utilisant pandas_datareader de Python pour obtenir le VIX (Fear Index) et l'indice boursier S & P500 à partir du site Web de la St. Louis Federated Bank.

Enregistrez le code ici.

Commencez par charger la bibliothèque.

python


import pandas as pd
import numpy as np
import pandas_datareader.data as web

import datetime
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
from pandas.plotting import register_matplotlib_converters
register_matplotlib_converters()

1. Obtenez des données avec DataReader

python


#Précisez la date de début et la dernière date des données à acquérir
start = datetime.datetime(2010, 1, 1)
end = datetime.datetime(2020, 5, 1)


#S&Obtenir les données P500
# 'SP500'Est-ce que S&Symbole boursier P500.
# 'fred'Cependant, il spécifie la St. Louis Federated Bank comme source de données.
#Le reste correspond à la date de début et au dernier jour.
eq = web.DataReader('SP500', 'fred', start, end)

#Obtenir des données VIX
# 'VIXCLS'Est le symbole boursier VIX.
vix = web.DataReader('VIXCLS','fred', start, end)

#Combinez les données acquises en une seule trame de données
df = pd.DataFrame(index = eq.index)
df['Equity'] = eq
df['VIX'] = vix
df.dropna(inplace = True)

Diverses données économiques et financières peuvent être obtenues auprès de la Fed de Saint-Louis. Site Web de la Fédération de St. Louis Le symbole ticker se trouve à la toute fin de l'URL de chaque donnée.

Exemple: Dans le cas de VIX, ce sera «VIXCLS» à la fin de l'adresse suivante. https://fred.stlouisfed.org/series/VIXCLS

2. Créez un graphique

python


#Fonction pour faire un graphique
def chart(days):
    dfd = df.copy()
    dfd['Return'] = (dfd['Equity'].shift(-days) /  dfd['Equity'] -1)
    dfd.dropna(inplace = True)
    plt.figure(figsize = (8,4))
    plt.scatter(x = dfd['VIX'], y = dfd['Return'], alpha = 0.6, c = dfd['VIX'])
    plt.xlabel('VIX')
    plt.ylabel(str(days)+' days Return')
    plt.title('VIX and S&P500 '+str(days)+' days Returns (USD base)')
    plt.savefig('VIX_SP500rtn',bbox_inches="tight")

#Exécuter la fonction en spécifiant le nombre de jours de retour à calculer
chart(100)

↓ Ce graphique est créé.

VIX_SP500rtn.png

plt.scatter(x = dfd['VIX'], y = dfd['Return'], alpha = 0.6, c = dfd['VIX']) ↑ Par c = dfd ['VIX'] de ce code, la couleur des points du graphe est modifiée en fonction de la valeur de VIX pour créer un effet de gradation.

Bonus 1: graphique VIX

python


df['VIX'].plot(title = 'VIX', figsize = (8,4))

VIX.png

Bonus 2: graphique SP500

python


df['Equity'].plot(title = 'S&P500', figsize = (8,4))

VIX.png

en conclusion

Avec DataReader, vous pouvez acquérir non seulement des données économiques de la Banque fédérale de Saint-Louis, mais également diverses données telles que les cours des actions et les taux de change. Pour plus de détails, reportez-vous à Data Reader Documents.

Recommended Posts

[Python] Obtenez des données économiques avec DataReader
Obtenez des données Youtube avec python
Obtenez des données supplémentaires vers LDAP avec python
[Note] Obtenir des données de PostgreSQL avec Python
Analyse de données avec python 2
Obtenez date avec python
Analyse de données avec Python
Obtenez des données sur le cours de l'action avec l'API Quandl [Python]
J'ai essayé d'obtenir des données CloudWatch avec Python
Obtenez le code du pays avec python
Exemple de données créées avec python
Obtenez la chronologie Twitter avec Python
Obtenir l'ID de thread avec python
Commencez avec Python! ~ ② Grammaire ~
Obtenez des stocks avec Python
Obtenir le répertoire personnel avec python
Obtenir un événement de clavier avec python
Obtenez des informations sur l'alambic avec Python
Lire des données json avec python
Obtenez des données financières avec python (puis un peu de bricolage)
Obtenir des données de la base de données via ODBC avec Python (Access)
Obtenez des données LeapMotion en Python.
Commencez avec Python! ~ ① Construction de l'environnement ~
Lien pour commencer avec python
Obtenir des données de Quandl en Python
Obtenez des avis avec l'API googlemap de python
Obtenez la météo avec les requêtes Python
Obtenez une capture d'écran Web avec python
Obtenez la météo avec les requêtes Python 2
Débarrassez-vous des données sales avec Python et les expressions régulières
Comment démarrer avec Python
Structure de données Python apprise avec la chimioinfomatique
[Petite histoire] Obtenez l'horodatage avec Python
Obtenez les tendances Qiita avec le scraping Python
Obtenez des données de l'API d'analyse avec le client API Google pour python
Visualisez facilement vos données avec Python seaborn.
Traiter les données Pubmed .xml avec python
Analyse de données à partir de python (visualisation de données 1)
Obtenez des données supplémentaires vers LDAP avec python (Writer et Reader)
Démarrez avec Python avec Blender
Analyse de données à partir de python (visualisation de données 2)
Obtenez des informations météorologiques avec Python et le grattage
Application de Python: Nettoyage des données Partie 2: Nettoyage des données à l'aide de DataFrame
[Introduction à Python] Comment obtenir des données avec la fonction listdir
Obtenez des données de VPS MySQL avec Python 3 et SQL Alchemy
Essayez d'obtenir des métriques CloudWatch avec la source de données python re: dash
Recevoir des données textuelles de mysql avec python
Obtenir le code HTML de l'élément avec du sélénium Python
Traiter les données Pubmed .xml avec python [Partie 2]
Obtenez des données alimentaires avec l'API Amazon (Python)
Générer des données de test japonais avec Python Faker
[Python] Récupère le nom de la variable avec str
Convertir des données Excel en JSON avec python
Téléchargez les données de cours des actions japonaises avec Python
Obtenez les données de l'API Google Fit en Python
Manipulation des données DynamoDB avec Lambda (Node et Python)
Convertissez des données FX 1 minute en données 5 minutes avec Python
Obtenez des données Youtube en Python à l'aide de l'API Youtube Data
Commençons avec TopCoder en Python (version 2020)