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.

Terminou de ler?
Aviso de risco

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.