Olá Habr! Apresento a você a tradução do artigo “Dados Históricos do Preço das Ações em Python”, de Ishan Shah.Um artigo sobre como obter dados históricos diários de estoque usando yfinance e dados de minuto usando alpha alpha.Como você sabe, as ações são um instrumento muito volátil e é muito importante analisar cuidadosamente o comportamento do preço antes de tomar qualquer decisão de negociação. Bem, primeiro você precisa obter os dados e o python pode ajudar com isso.Os dados do Exchange podem ser baixados usando vários pacotes. Este artigo abordará o yahoo finance e alpha vantage.Finanças do Yahoo
Primeiro, tente o pacote yfianance. Ele pode ser instalado usando o comando pip install yfinance. O código abaixo mostra como obter dados da AAPL de 2016 a 2019 e criar o preço de fechamento ajustado (preço de fechamento ajustado para dividendos e divisões) no 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()
Bem, se você precisar obter vários compartilhamentos, precisará fazer uma pequena adição ao código. Um DataFrame é usado para armazenar valores. Usando o pacote matplotlib e os dados recebidos, você pode criar um gráfico de rentabilidade diário.
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 valores em ações russas, há uma leve sutileza. Um ponto e letras maiúsculas ME são adicionados ao nome da ação. Obrigado especialistas no smartlab solicitado.
Obtenha dados minuciosos com o Alpha vantage
Infelizmente, a versão gratuita do Yahoo Finance não permite que você receba dados com uma frequência menor que a diária. Para isso, você pode usar o pacote Alpha vantage, que permite obter intervalos como 1 min, 5 min, 15 min, 30 min, 60 min.
No futuro, esses dados poderão ser analisados, criados uma estratégia de negociação e avaliar a eficácia usando o pacote pyfolio. Nele, você pode avaliar a proporção de Sharpe, o coeficiente de Sortino, o rebaixamento máximo e muitos outros indicadores necessários.Espero que minha tradução do artigo original seja útil para você. O código foi verificado e tudo funciona. Mas, por enquanto, a questão para mim é a possibilidade de usar a vantagem Alpha para o mercado russo.