Hola Habr! Les presento la traducción del artículo "Datos históricos de precios de acciones en Python" de Ishan Shah.Un artículo sobre cómo obtener datos de existencias históricas diarias usando yfinance y datos de minutos usando alpha vantage.Como saben, las acciones son un instrumento muy volátil y es muy importante analizar cuidadosamente el comportamiento de los precios antes de tomar cualquier decisión comercial. Bueno, primero necesitas obtener los datos y Python puede ayudarte con esto.Los datos de intercambio se pueden descargar usando varios paquetes. Este artículo cubrirá las finanzas de Yahoo y Alpha Vantage.Yahoo Finanzas
Primero, prueba el paquete yfianance. Se puede instalar utilizando el comando pip install yfinance. El siguiente código muestra cómo obtener datos para AAPL de 2016 a 2019 y generar el precio de cierre ajustado (precio de cierre ajustado para dividendos y divisiones) en el gráfico.
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()
Bueno, si necesita obtener varios recursos compartidos, debe hacer una pequeña adición al código. Un DataFrame se usa para almacenar valores. Usando el paquete matplotlib y los datos recibidos, puede crear un gráfico de rentabilidad diaria.
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()
Para los valores de las acciones rusas, hay una leve sutileza. Se agregan un punto y letras mayúsculas ME al nombre de la acción. Gracias expertos en el smartlab solicitados.
Obtenga datos de minutos con Alpha vantage
Lamentablemente, la versión gratuita de Yahoo Finance no le permite recibir datos con una frecuencia inferior a la diaria. Para hacer esto, puede usar el paquete Alpha vantage, que le permite obtener intervalos tales como 1 min, 5 min, 15 min, 30 min, 60 min.
En el futuro, estos datos se pueden analizar, crear una estrategia comercial y evaluar la efectividad utilizando el paquete de cartera. En él, puede evaluar la relación de Sharpe, el coeficiente de Sortino, la reducción máxima y muchos otros indicadores necesarios.Espero que mi traducción del artículo original le sea útil. El código ha sido verificado y todo funciona. Pero por ahora, la pregunta para mí es la posibilidad de usar Alpha Vantage para el mercado ruso.