Ir para o conteúdo

Dados point-in-time

Dados históricos reconstruídos conforme o que estava realmente disponível em cada decisão: timestamps, vintages, universo, eventos corporativos e delistings sem retrospectiva.

Em palavras simples — Um dataset point-in-time mostra o que o sistema poderia conhecer naquele dia, não a versão corrigida que enxergamos hoje.

Dados point-in-time preservam a informação tal como estava disponível em cada decisão histórica. Eles distinguem a data a que o fato se refere, quando foi publicado, quando chegou ao sistema e qual versão foi usada. Sem essa distinção, revisões, composição atual do universo ou ajustes retrospectivos podem entrar no passado e melhorar artificialmente o backtest.

Dados point-in-time: o que podia ser conhecidoO valor final e a data econômica não bastam para definir disponibilidade. Exemplos de campos a versionar; convenções mudam conforme fonte e classe de ativo.Dados point-in-time: o que podia ser conhecidoO valor final e a data econômica não bastam para definir disponibilidadeExemplos de campos a versionar; convenções mudam conforme fonte e classe de ativo.Preços e tradesTimestamp do evento, recepção,correção e qualidade da venue.Eventos corporativosAnúncio, ex-date, pagamento eajuste não coincidem.Universo históricoEntradas, saídas, fusões edelistings permanecem naamostra.Fundamentos e macroDivulgação inicial, lagoperacional e revisõesposteriores são distintos.Calendários etimezoneSessões, feriados e horário deverão mudam os alinhamentos.Versões e hashesSnapshot, transformações ecódigo identificam o datasetefetivamente usado.Cyclepedia · esquema educacional condicionado, não previsão nem promessa
A data econômica não basta: publicação, disponibilidade operacional e vintage determinam o que podia entrar na decisão.

Quatro datas diferentes

Data Pergunta
Referência econômica a qual período ou evento o valor se refere?
Publicação quando a fonte o divulgou pela primeira vez?
Disponibilidade quando o sistema o recebeu e conseguiu processá-lo?
Vintage ou versão qual valor, inclusive revisão, estava válido naquela consulta?

Um indicador macro de janeiro pode ser divulgado em fevereiro e revisado em março. Uma demonstração financeira encerra em dezembro, mas chega ao EDGAR depois. Usar o valor final com a data econômica antecipa informação. O mesmo vale para correções de trades, preços oficiais e classificações atualizadas.


Universo, identificadores e composição

Um universo histórico é uma função do tempo. Índices anunciam entradas e saídas, empresas mudam ticker, fundem-se, cindem-se ou deixam de negociar. Consultar hoje a lista de componentes e aplicá-la ao passado exclui antecipadamente instrumentos que fracassaram e inclui vencedores antes de sua entrada.

É preciso versionar critérios de elegibilidade, data do anúncio, data efetiva, identificadores permanentes e mapeamentos. O ticker isolado é frágil: pode ser reutilizado. A estratégia deve consultar a composição válida no timestamp da decisão e aplicar somente mudanças então conhecidas.


Eventos corporativos e delistings

Split, dividendo, direitos, fusão e spin-off possuem anúncio, ex-date, pagamento e efeito contábil distintos. Ajustar toda a série por eventos futuros pode ser adequado para calcular retornos, mas o preço ajustado não deve ser confundido com preço negociável ou informação conhecida.

Delistings exigem regra explícita para último preço, pagamento, conversão, retorno de delisting e dados ausentes. Excluir a observação porque ela é difícil de reconstruir cria viés justamente nos casos de pior resultado.


Protocolo point-in-time

  1. Definir o timestamp da decisão, timezone, calendário e cutoff.
  2. Registrar fonte, campo, unidade, moeda e condições de revisão.
  3. Guardar evento, publicação, ingestão e versão de cada dado.
  4. Versionar universo, identificadores, eventos corporativos e delistings.
  5. Aplicar transformações apenas com amostras disponíveis até o instante.
  6. Preservar snapshots imutáveis, hashes e código de transformação.
  7. Testar consultas “as of” em datas conhecidas e comparar com documentos da época.
  8. Manter separados dado observado e série posteriormente corrigida.

ALFRED é um exemplo de arquitetura que conserva vintages de séries macroeconômicas. Não resolve automaticamente preços, universos ou eventos corporativos; cada domínio requer seu próprio registro temporal.


Controles rápidos

  • Uma revisão posterior muda o resultado histórico sem nova versão do dataset?
  • A composição atual do índice aparece antes da data efetiva?
  • A transformação foi ajustada usando toda a amostra?
  • O sinal consegue usar um filing antes de sua disseminação?
  • Tickers são tratados como identificadores permanentes?
  • Instrumentos delistados desaparecem sem retorno final?
  • Calendários e horário de verão deslocam informações entre sessões?

Cada resposta afirmativa indica uma possível ruptura do contrato temporal.


Consultas “as of” e trilha de auditoria

Guardar versões não basta se a consulta não reproduz o conjunto exato que o modelo podia enxergar. Uma consulta “as of” recebe o instante da decisão e devolve somente registros cujo horário de disponibilidade já passou, usando a versão então válida. Esse contrato deve valer também para tabelas derivadas: normalizações, classificações, universos elegíveis e fatores calculados não podem ser reconstruídos hoje com toda a amostra e depois associados ao passado.

Uma implementação auditável preserva o snapshot de entrada, o código que o transformou, o fuso horário, o calendário e um identificador imutável da execução. Se uma correção do fornecedor chegar amanhã, ela cria uma nova versão; não reescreve silenciosamente o teste publicado ontem. Assim é possível explicar se uma diferença veio do sinal, de uma revisão da fonte ou da própria pipeline.

O controle mais útil é escolher algumas datas históricas difíceis — anúncios fora do horário, mudança de componente, fusão e delisting — e reconstruir a decisão a partir dos documentos disponíveis naquele momento. A comparação não certifica todo o banco, mas revela cedo erros de timestamp, identidade e vigência. Quando o horário original não existe, a regra conservadora adotada deve ser explícita e sua sensibilidade precisa ser testada.

Limites

Point-in-time não significa perfeito. A fonte histórica pode ser incompleta, timestamps podem representar disseminação e não ingestão local, e o dado reconstruído pode não reproduzir latência ou falhas da produção. A solução é declarar lacunas, comparar versões e testar sensibilidade, não rotular o dataset como livre de viés.


Fontes

Conexões