Obtendo cotações de ações usando Python

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 the yfinance. If you get module not found error the run !pip install yfianance from your Jupyter notebook
import yfinance as yf

# Get the data for the stock AAPL
data = yf.download('AAPL','2016-01-01','2019-08-01')

# Import the plotting library
import matplotlib.pyplot as plt
%matplotlib inline

# Plot the close price of the AAPL
data['Adj Close'].plot()
plt.show()

imagem

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.

# Define the ticker list
import pandas as pd
tickers_list = ['AAPL', 'WMT', 'IBM', 'MU', 'BA', 'AXP']

# Import pandas
data = pd.DataFrame(columns=tickers_list)

# Fetch the data

for ticker in tickers_list:
    data[ticker] = yf.download(ticker,'2016-01-01','2019-08-01')['Adj Close']

# Print first 5 rows of the data
data.head()

imagem

# Plot all the close prices
((data.pct_change()+1).cumprod()).plot(figsize=(10, 7))

# Show the legend
plt.legend()

# Define the label for the title of the figure
plt.title("Adjusted Close Price", fontsize=16)

# Define the labels for x-axis and y-axis
plt.ylabel('Price', fontsize=14)
plt.xlabel('Year', fontsize=14)

# Plot the grid lines
plt.grid(which="major", color='k', linestyle='-.', linewidth=0.5)
plt.show()

imagem

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.

imagem

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.

imagem

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.

Source: https://habr.com/ru/post/undefined/


All Articles