
Guia Passo a Passo para Iniciantes
Neste artigo, você aprenderá como criar indicadores técnicos em Python, utilizando bibliotecas como yfinance
, pandas
e mplfinance
. Vamos começar com um exemplo prático: a Média Móvel de 10 Períodos (MM10) aplicada aos dados da PETR4 (Petrobras).
Este guia é voltado para iniciantes e explicará cada etapa em detalhes, desde a instalação das bibliotecas até a visualização do gráfico.
Introdução aos Indicadores Técnicos em Python
Indicadores técnicos são cálculos matemáticos aplicados a preços e volumes de ativos para auxiliar na análise de tendências. Eles podem ser usados para identificar:
- Tendências (alta, baixa ou lateral)
- Momentum (força do movimento)
- Suporte e Resistência
- Sinais de compra/venda
Neste artigo, focaremos na Média Móvel Simples (SMA), um dos indicadores técnicos mais básicos e populares, fique sabendo que a média móvel é uma média atrasada que vive correndo atrás do preço.
Configurando o Ambiente Python
Antes de começar, instale as bibliotecas necessárias:

yfinance
: Baixa dados históricos do Yahoo Finance.pandas
: Manipula dados em formato tabular (DataFrames).mplfinance
: Cria gráficos financeiros (candlesticks, médias móveis, etc.).
Baixando Dados do Mercado com yfinance
Vamos baixar os dados da PETR4 (Petrobras) dos últimos 6 meses:

Explicação dos Parâmetros:
"PETR4.SA"
: Ticker da Petrobras na B3.period="6mo"
: Período de 6 meses. Pode ser1d
,5d
,1mo
,1y
, etc.interval="1d"
: Dados diários. Pode ser1m
,5m
,1h
, etc.auto_adjust=True
: Ajusta os preços para eventos corporativos (splits, dividendos).
Manipulando Dados com pandas
O yfinance
retorna um DataFrame do pandas
. Vamos verificar e ajustar os dados:

Por que isso é importante?
- Garantimos que apenas as colunas relevantes sejam usadas.
- Evitamos problemas com MultiIndex (caso o DataFrame tenha estrutura complexa).
Criando a Média Móvel (MM10)
A Média Móvel Simples (SMA) é a média dos últimos n
preços de fechamento.

Explicação:
rolling(window=10)
: Define uma janela de 10 períodos.min_periods=1
: Permite calcular mesmo com menos de 10 dados (úteis no início da série)..mean()
: Calcula a média.
Plotando o Gráfico com mplfinance
Agora, vamos visualizar os dados:

Resultado:
- Gráfico de velas (candlesticks) com a MM10 em azul.
- Volume na parte inferior.
