Bonjour, Habr! Je vous présente la traduction de l'article «Historical Stock Price Data in Python» par Ishan Shah.Un article sur la façon d'obtenir des données historiques quotidiennes sur les actions en utilisant yfinance et des données minute en utilisant alpha vantage.Comme vous le savez, les actions sont un instrument très volatil et il est très important d'analyser soigneusement le comportement des prix avant de prendre des décisions commerciales. Eh bien, vous devez d'abord obtenir les données et python peut vous aider.Les données d'échange peuvent être téléchargées à l'aide de divers packages. Cet article portera sur Yahoo Finance et Alpha Vantage.Yahoo finance
Tout d'abord, essayez le package yfianance. Il peut être installé à l'aide de la commande pip install yfinance. Le code ci-dessous montre comment obtenir les données pour AAPL de 2016 à 2019 et construire le prix de clôture ajusté (prix de clôture ajusté pour les dividendes et le fractionnement) sur le graphique.
import yfinance as yf
data = yf.download('AAPL','2016-01-01','2019-08-01')
import matplotlib.pyplot as plt
%matplotlib inline
data['Adj Close'].plot()
plt.show()
Eh bien, si vous devez obtenir plusieurs partages, vous devez faire un petit ajout au code. Un DataFrame est utilisé pour stocker des valeurs. En utilisant le package matplotlib et les données reçues, vous pouvez créer un graphique de rentabilité quotidien.
import pandas as pd
tickers_list = ['AAPL', 'WMT', 'IBM', 'MU', 'BA', 'AXP']
data = pd.DataFrame(columns=tickers_list)
for ticker in tickers_list:
data[ticker] = yf.download(ticker,'2016-01-01','2019-08-01')['Adj Close']
data.head()

((data.pct_change()+1).cumprod()).plot(figsize=(10, 7))
plt.legend()
plt.title("Adjusted Close Price", fontsize=16)
plt.ylabel('Price', fontsize=14)
plt.xlabel('Year', fontsize=14)
plt.grid(which="major", color='k', linestyle='-.', linewidth=0.5)
plt.show()
Pour les valeurs sur les actions russes, il y a une légère subtilité. Un point et des majuscules ME sont ajoutés au nom du stock. Merci d'experts sur le smartlab invité.
Obtenez des données infimes avec Alpha vantage
Malheureusement, la version gratuite de Yahoo Finance ne vous permet pas de recevoir des données avec une fréquence inférieure au quotidien. Pour cela, vous pouvez utiliser le package Alpha vantage, qui vous permet d'obtenir des intervalles tels que 1 min, 5 min, 15 min, 30 min, 60 min.
À l'avenir, ces données pourront être analysées, créer une stratégie de trading et évaluer l'efficacité à l'aide du package pyfolio. Dans ce document, vous pouvez évaluer le ratio de Sharpe, le coefficient de Sortino, le rabattement maximal et de nombreux autres indicateurs nécessaires.J'espère que ma traduction de l' article original vous sera utile. Le code a été vérifié et tout fonctionne. Mais pour l'instant, la question pour moi est la possibilité d'utiliser Alpha vantage pour le marché russe.