Python para mercados
Carregando e limpando dados OHLCV
5 min
Antes de qualquer análise, você precisa de dados limpos. OHLCV significa Open, High, Low, Close e Volume (abertura, máxima, mínima, fechamento e volume) — o formato padrão de candle que você vai carregar com mais frequência.
Lendo dados em um DataFrame
Um CSV de candles diários carrega em uma linha, fazendo o parse da coluna de data e usando-a como índice:
import pandas as pd
df = pd.read_csv("ohlcv.csv", parse_dates=["date"], index_col="date")
df = df.sort_index()
print(df.head())
A limpeza que realmente importa
Dados brutos de mercado são bagunçados. Antes de confiar neles, verifique:
- Linhas faltando — buracos onde uma sessão está ausente. Decida entre preencher para frente, descartar ou deixar os buracos; nunca interpole silenciosamente preços que você não observou.
- Timestamps duplicados — descarte-os com drop_duplicates ou você contará em dobro.
- Valores ruins — preços zero ou negativos, uma máxima abaixo da mínima, picos de volume que são erros de dados.
- Alinhamento de timezone — armazene tudo em um fuso (UTC é o mais seguro) para que candles de fontes diferentes coincidam.
- Ajustes — para ações, decida entre preços brutos e ajustados por desdobramentos/dividendos e seja consistente. Misturá-los silenciosamente corrompe os retornos.
Uma verificação rápida de sanidade
assert (df["high"] >= df["low"]).all(), "found High below Low"
assert df.index.is_monotonic_increasing, "index not sorted"
print(df.isna().sum())
Dados lixo produzem conclusões confiantes e erradas. A disciplina de validar entradas é pouco glamorosa e é exatamente onde a maioria dos backtests de varejo erra silenciosamente.
Este conteúdo tem finalidade exclusivamente educacional e informativa e não constitui recomendação de investimento, consultoria financeira, tributária ou jurídica. Operar e investir envolvem risco, incluindo a possível perda de capital. Qualquer desempenho exibido por ferramentas de terceiros é hipotético e não promessa de resultado futuro. Faça sua própria análise e considere orientação profissional antes de qualquer decisão.