🎉 SEMANA DO CONSUMIDOR

Últimos dias para comprar os cursos com 50% de desconto

Ver detalhes

Postado em em 8 de outubro de 2024

Você já ouviu falar em gráfico Candlestick no Python? Aprenda o que é, como funciona e como você pode usar o Python para criar esse gráfico!

Se quiser pode acompanhar esse conteúdo em formato de vídeo ou pode acessar o nosso Canal do YouTube para mais vídeos!

Para receber por e-mail o(s) arquivo(s) utilizados na aula, preencha:

Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.

Como Criar Gráfico Candlestick no Python

Gráficos candlestick são amplamente utilizados no mercado financeiro para analisar os movimentos de preços de ações, moedas e outros ativos financeiros ao longo do tempo.

Eles fornecem uma representação visual clara e intuitiva dos preços de abertura, fechamento, máximo e mínimo de um ativo em um período específico. Isso permite que traders e investidores tomem decisões mais informadas.

Nesta aula, vou te mostrar como criar um gráfico candlestick no Python utilizando as bibliotecas Plotly, Pandas e YFinance.

Instalando as Bibliotecas Necessárias

Para começar, vamos instalar as bibliotecas necessárias para coletar dados financeiros, processá-los e gerar a visualização em formato de gráfico.

Para isso, precisaremos instalar as seguintes bibliotecas:

  • Plotly: Usada para visualização de dados, incluindo gráficos financeiros interativos.
  • Pandas DataReader: Utilizada para coletar dados financeiros históricos.
  • YFinance: Biblioteca que corrige problemas de compatibilidade com o Yahoo Finance, permitindo a extração de dados de forma mais eficiente.

A instalação pode ser feita diretamente no terminal do seu editor de código ou no prompt de comando com o seguinte comando: pip install plotly pandas-datareader yfinance

Instalando as Bibliotecas Necessárias

Configurando o Ambiente

Como vamos trabalhar com visualização de dados e gráficos, recomendo utilizar o Jupyter Notebook ou o VS Code com a extensão do Jupyter.

Essas ferramentas são ideais porque os gráficos gerados pelo Plotly são renderizados diretamente na interface, permitindo uma visualização interativa e eficiente.

Importando as Bibliotecas e Configurando o YFinance

Depois de instalar as bibliotecas, é hora de importar os módulos necessários no seu código Python. Vamos importar o módulo graph_objects com o alias go, a função data do pandas_datareader com o alias pdr e a biblioteca yfinance.

import plotly.graph_objects as go
import pandas_datareader.data as pdr
import yfinance

O módulo graph_objects nos permite personalizar os gráficos do Plotly, o que será necessário para criar o gráfico de velas (candlestick).

A função data será responsável por buscar e extrair os dados financeiros do Yahoo Finance.

Para garantir que a extração ocorra corretamente, utilizamos a biblioteca yfinance, que corrige problemas de integração do Pandas com o Yahoo Finance.

Para fazer esse ajuste de compatibilidade entre o Pandas DataReader e o YFinance utilizaremos o comando yfinance.pdr_override().

import plotly.graph_objects as go
import pandas_datareader.data as pdr
import yfinance

yfinance.pdr_override()

Coletando os Dados Financeiros

Agora, podemos buscar os dados históricos de um ativo utilizando a biblioteca PandasDataReader.

Vamos buscar as informações sobre a cotação das ações do Itaú entre 1º de agosto de 2016 e 15 de setembro de 2024. O código desse ativo (ticker) é “ITUB4.SA“.

Para buscar essas informações, utilizaremos a função get_data_yahoo, passando o ticker da ação, a data de início (start) e a data de fim (end).

ativo = "ITUB4.SA"
tabela_cotacoes = pdr.get_data_yahoo(ativo, start="2016-08-01", end="2024-09-15")
Coletando os Dados Financeiros

Esse código extrai as cotações diárias das ações do Itaú, incluindo o preço de abertura, fechamento, máximo e mínimo de cada dia dentro do período especificado.

Para visualizar essa tabela de cotações no Jupyter Notebook, você pode usar o comando display.

display(tabela_cotacoes)
tabela de cotações

Como Funciona o Gráfico Candlestick

Agora que já temos as cotações do ativo, vamos criar o gráfico Candlestick.

Esse tipo de gráfico é excelente para visualizar a variação do preço de uma ação ao longo do tempo, mostrando claramente os valores de abertura, fechamento, máximo e mínimo de cada dia.

O gráfico de velas (candlestick) é uma maneira visual de representar as flutuações diárias de preço de um ativo. Cada vela no gráfico apresenta quatro informações principais:

  • Open (abertura): O preço no início do período (geralmente o início do dia).
  • Close (fechamento): O preço ao final do período.
  • High (máxima): O preço mais alto registrado durante o período.
  • Low (mínima): O preço mais baixo registrado durante o período.

Agora, vamos gerar o gráfico com base nas cotações e informações que extraímos.

Criando o Gráfico Cnadlestick com Python – Plotly

Vamos configurar o gráfico usando a função go.Figure. Essa função cria uma nova instância da figura onde o gráfico será desenhado, funcionando como um contêiner no qual iremos adicionar o gráfico.

Em seguida, precisamos passar uma lista de dados que será transformada em gráfico (data=[]). No nosso caso, essa lista terá uma única série de candlestick, pois desejamos gerar apenas um gráfico. No entanto, você pode adicionar múltiplas séries, caso queira.

Dentro dessa lista data, chamaremos a função go.Candlestick(), responsável por desenhar o gráfico de velas.

Essa função requer informações sobre o eixo X, além de quatro parâmetros principais para funcionar: open, close, high e low.

O eixo X é responsável por exibir as datas no gráfico, extraídas através do índice da tabela de cotações (x=tabela_cotacoes.index).

Já os demais parâmetros recebem as colunas correspondentes a cada valor na tabela de cotações:

  • open=tabela_cotacoes[“Open”]: Fornece os preços de abertura de cada dia, definindo a posição inicial das velas.
  • close=tabela_cotacoes[“Close”]: Fornece os preços de fechamento de cada dia, determinando onde a vela “fecha”.
  • high=tabela_cotacoes[“High”]: Define os valores máximos das cotações, ou seja, o ponto mais alto que a vela atinge no dia.
  • low=tabela_cotacoes[“Low”]: Define os valores mínimos das cotações, representando o ponto mais baixo que a vela atinge no dia.

Repare que, neste exemplo, os nomes dos campos da tabela coincidem com os nomes dos parâmetros.

Se na sua tabela os nomes forem diferentes, por exemplo, se “High” estiver como “Máximo”, você precisará ajustar o parâmetro correspondente, como high=tabela_cotacoes[“Máximo”].

grafico = go.Figure(
    data=[go.Candlestick(x=tabela_cotacoes.index, open=tabela_cotacoes["Open"], close=tabela_cotacoes["Close"], high=tabela_cotacoes["High"], low=tabela_cotacoes["Low"])]
)

Depois de configurado, podemos utilizar o método show() para exibir o gráfico.

grafico = go.Figure(
    data=[go.Candlestick(x=tabela_cotacoes.index, open=tabela_cotacoes["Open"], close=tabela_cotacoes["Close"], high=tabela_cotacoes["High"], low=tabela_cotacoes["Low"])]
)

grafico.show()
Criando o Gráfico Cnadlestick com Python – Plotly

O interessante desse gráfico é que ele possui um slider logo abaixo, que permite filtrar o período que você deseja analisar. Assim, além de visualizar o gráfico, você pode interagir com ele para refinar sua análise.

Personalizando o Gráfico

Uma das vantagens de usar o Plotly é sua capacidade de criar gráficos interativos, permitindo personalizá-los conforme as nossas necessidades.

Por exemplo, podemos remover o Range Slider atualizando o layout do gráfico com a função update_layout, definindo a visibilidade do Range Slider como falsa no eixo X (xaxis_rangeslider_visible=False).

grafico = go.Figure(
    data=[go.Candlestick(x=tabela_cotacoes.index, open=tabela_cotacoes["Open"], close=tabela_cotacoes["Close"], high=tabela_cotacoes["High"], low=tabela_cotacoes["Low"])]
)

grafico.update_layout(xaxis_rangeslider_visible=False)
grafico.show()

Saiba mais em: Como Criar Gráficos no Python Utilizando o Plotly

Zoom e Filtragem

Uma funcionalidade muito interessante do Plotly é a possibilidade de interagir com o gráfico, inclusive aplicando zoom em datas específicas, o que permite visualizar os candles de maneira mais detalhada e clara.

Isso é especialmente útil para analisar eventos ou períodos de alta ou baixa nas cotações do ativo. Para aplicar o zoom, basta usar o mouse para selecionar o período desejado diretamente no gráfico.

Zoom e Filtragem

Entendendo as Barras do Candlestick

No gráfico candlestick, cada barra (ou “candle”) representa um dia de negociação, e as cores das barras têm significados importantes:

  • Verde: O preço de fechamento foi maior do que o preço de abertura, indicando uma alta no valor do ativo.
  • Vermelho: O preço de fechamento foi menor que o de abertura, indicando uma queda no valor do ativo.

As “sombras” (linhas finas) acima e abaixo da barra indicam os preços máximo e mínimo atingidos pelo ativo durante o dia.

Entendendo as Barras do Candlestick

Conclusão – Como Criar Gráfico Candlestick no Python

Criar um gráfico candlestick com Python é uma maneira eficaz e simples de visualizar os movimentos de preços no mercado financeiro.

Na aula de hoje, você aprendeu a usar o Plotly para criar um gráfico candlestick interativo e acessível, que permite uma análise detalhada e personalizável das ações de um ativo.

Se você deseja explorar mais tipos de gráficos ou ajustar suas análises, o Plotly oferece diversas opções interessantes. E caso queira dominar essa e outras ferramentas do Python, conheça nosso Curso Completo Python Impressionador.

Hashtag Treinamentos

Para acessar outras publicações de Python, clique aqui!


Quer aprender mais sobre Python com um minicurso básico gratuito?

Posts mais recentes de Python

Posts mais recentes da Hashtag Treinamentos

Diego Monutti

Expert em conteúdos da Hashtag Treinamentos. Auxilia na criação de conteúdos de variados temas voltados para aqueles que acompanham nossos canais.