Como analisar ações com Python é uma dúvida muito frequente que eu recebo no meu Instagram.
Em uma pesquisa feita com meus alunos do treinamento Data Science na Prática, vi que alguns deles já investem com a ajuda do Data Science. Também notei que muitos teriam interesse em aprender mais sobre o tema.

Fui day trader entre 2008 e 2012, e hoje adoto uma filosofia mais fundamentalista, baseada nos princípios do Value Investing (a mesma ensinada por Benjamin Graham ao mito Warren Buffet).
Independente da sua estratégia, Python e Data Science podem contribuir muito para as suas análises na Bolsa.
Por ser um tema que eu amo e por tanta gente estar pedindo, pretendo começar a escrever uma série de artigos voltados ao mercado financeiro.
Neste primeiro artigo, vou te ensinar como acessar cotações para analisar ações usando Python.
Especificamente, vou ensinar como baixar os dados usando a biblioteca pandas_datareader
e plotar o gráfico de candlestick usando plotly
.
Baixando Cotações com Python
Uma das principais dificuldades que temos por aqui é acessar diretamente os dados da Bovespa.
Algumas corretoras possuem APIs e também é possível pagar serviços que forneçam as cotações em tempo real.
Uma alternativa simples e gratuita, que eu uso para acompanhar os preços diários é usar a biblioteca pandas_datareader
e acessar a base de dados do Yahoo Finance.
# importar as bibliotecas necessárias import pandas as pd from pandas_datareader import data as web import plotly.graph_objects as go # criar um DataFrame vazio df = pd.DataFrame()
Vou usar o ativo ITUB3, e baixar as cotações a partir de 1º de janeiro de 2000. Olhando as 5 primeiras entradas você consegue notar que são importadas as máximas, mínimas, abertura, fechamento, volume e valor ajustado do fechamento.
# escolher a ação desejada acao = 'ITUB3.SA' # importar dados para o DataFrame df = web.DataReader(acao, data_source='yahoo', start='01-01-2000') # ver as 5 primeiras entradas df.head()

Repare que o nome do ativo é ITUB3.SA
e não apenas ITUB3
. Esse é o padrão para conseguir baixar os dados do Yahoo Finance.
Plotando o gráfico de candlestick para analisar a ação
Recentemente, escrevi um artigo introdutório ensinando a usar a biblioteca Plotly. Na minha opinião é a melhor biblioteca de visualização de dados que o Python possui.
Recomendo dar uma lida nesse artigo antes, para entender como eu faço para plotar o gráfico de candlestick.
# plotar o gráfico de candlestick trace1 = { 'x': df.index, 'open': df.Open, 'close': df.Close, 'high': df.High, 'low': df.Low, 'type': 'candlestick', 'name': acao, 'showlegend': False } data = [trace1] layout = go.Layout() fig = go.Figure(data=data, layout=layout) fig.show()

A vantagem do Plotly é que seus gráficos são interativos. Permitem zoom, selecionar determinado período e muitas outras coisas.
Além disso, é possível sobrepor plots como Médias Móveis, Bandas de Bollinger, entre outros vários indicadores.
Data Science para Investimentos
O objetivo deste artigo era te mostrar como importar cotações diretamente pela web, sem ter que baixar arquivos ou planilhas para a sua máquina.
No entanto, as possibilidades de aplicação de Data Science e Machine Learning para os investimentos são infinitas.
Otimização de portfólio, recomendação de ativos e automatização de operações de trade são apenas algumas delas.
Começaremos a falar um pouco mais delas nos próximos artigos 🙂
Veja a mensagem de erro que apareceu referente ao pandas_datareader:
ModuleNotFoundError Traceback (most recent call last)
in
1 import pandas as pd
—-> 2 from pandas_datareader import data as web
3 import plotly.graph_objets as go
ModuleNotFoundError: No module named ‘pandas_datareader’
Se você não está usando o Colab, provavelmente não está instalado na sua máquina. Dependendo se você usa Conda ou Pip, precisa instalar o módulo 🙂