Skip to content
Todos os guias de opções e contratos futuros
Validação de modelos de séries temporais12 min de leitura

Validação cruzada purgada e embargo: como evitar vazamento de rótulos em modelos de trading

Entenda como purging e embargo tratam rótulos forward sobrepostos em séries financeiras e como diferem de walk-forward e CPCV.

Neste guiaPor que K-fold aleatório pode enganar em dados financeiros

Resumo breve

A validação cruzada purgada remove do treino observações cujos intervalos reais de rótulo se sobrepõem aos de uma amostra de teste. O embargo é uma margem definida separadamente antes de permitir que observações posteriores ao bloco de teste entrem no treino. Nenhum dos dois, por si só, equivale a uma simulação cronológica do uso futuro.

Por que K-fold aleatório pode enganar em dados financeiros

K-fold divide as observações em partes e usa cada uma para teste em rodízio. Em séries financeiras, uma divisão aleatória pode espalhar entre treino e teste observações dependentes ou rótulos forward com períodos de resultado sobrepostos. Assim, o treino pode conter informação ligada aos resultados do teste, deixando a métrica otimista.

Isso não quer dizer que todo uso de K-fold seja inválido. Ele pode servir a uma pergunta adequada quando as observações são suficientemente independentes e os rótulos não se sobrepõem. Examine como as variáveis e os rótulos foram construídos e qual cenário futuro a validação pretende estimar. López de Prado discute esses problemas e o purging no capítulo 7 de *Advances in Financial Machine Learning*.

Defina o que estava disponível e o intervalo de cada rótulo

Para cada amostra, t é o instante da decisão. Registre quais informações estavam realmente disponíveis, qual janela histórica gera as variáveis e quando o alvo é resolvido. Um rótulo de retorno para as próximas cinco sessões cobre aqui o intervalo (t, t+5]; t1 marca seu fim efetivo.

Compartilhar dados históricos usados nas variáveis não é, por si só, vazamento se esses dados já eram conhecidos em cada decisão. Há vazamento quando uma variável usa valores futuros, é calculada retrospectivamente com informação posterior ou tem timestamp incorreto. A construção deve respeitar as informações disponíveis no momento de cada previsão.

Remova do treino rótulos com intervalos sobrepostos

O purging remove uma amostra de treino quando seu intervalo real de resultado se sobrepõe ao de uma amostra de teste. Confira os timestamps reais de início e fim. Para rótulos de eventos com durações variáveis, use os limites efetivos, não uma contagem fixa e conveniente de linhas.

O purging não torna a divisão cronológica automaticamente. Um purged K-fold ainda pode treinar com observações posteriores ao bloco de teste. Isso pode responder a uma pergunta de robustez, mas é diferente de treinar apenas no passado e testar depois. A direção temporal precisa ser definida no desenho da divisão.

Defina o embargo como uma margem separada

Embargo é um período especificado após um bloco de teste, antes que observações posteriores possam entrar no treino em divisões que usam dados pós-teste. Ele pode reduzir dependência residual da construção de eventos ou variáveis. Não substitui a verificação dos intervalos reais e não tem porcentagem ou duração universal.

Justifique sua extensão considerando frequência de amostragem, horizonte do rótulo, janelas das variáveis e dependência observada. Documente a regra antes de comparar resultados. Em uma divisão estritamente cronológica, não há observações posteriores ao teste para esse uso do embargo.

Exemplo diário com horizonte de cinco sessões

Suponha decisões diárias e rótulos de retorno para as cinco sessões seguintes, (t, t+5]. Um bloco de teste com datas de decisão dos dias 11 a 15 tem rótulos que vão até o dia 20. Os dias representam sessões e todos os intervalos seguem a mesma convenção.

O rótulo de treino (7,12] se sobrepõe ao teste porque compartilha dias com o rótulo da decisão do dia 11. (16,21] também se sobrepõe, pois o rótulo de teste do dia 15 vai até o dia 20. As duas amostras de treino são purgadas. Um rótulo posterior sem sobreposição ainda pode ser excluído por uma zona de embargo definida separadamente. O exemplo não determina uma lacuna universal.

Linha do tempo com rótulos de treino sobrepostos removidos e uma margem de embargo separada
O purging remove intervalos de rótulo sobrepostos; o embargo acrescenta uma margem independente e justificada.

Diferencie K-fold, walk-forward, gap, purged K-fold e CPCV

K-fold aleatório pode misturar períodos. A validação walk-forward ou rolling-origin treina com dados anteriores e testa um bloco posterior, representando mais diretamente uma sequência histórica de implantação. A documentação oficial do TimeSeriesSplit do scikit-learn descreve divisões cronológicas e requer observações igualmente espaçadas para comparar durações de teste.

TimeSeriesSplit(gap=...) deixa de fora uma quantidade fixa de linhas antes do teste. gap não detecta intervalos variáveis de eventos; a contagem só representa uma duração temporal coerente se a amostragem tiver espaçamento adequado, em geral regular. Purged K-fold e Combinatorial Purged Cross-Validation (CPCV) criam várias combinações ou trajetórias de teste, mas podem treinar com dados posteriores ao bloco testado. Portanto, não respondem automaticamente à mesma pergunta de uma simulação histórica walk-forward.

O capítulo 12 de López de Prado sobre backtesting aprofunda walk-forward e CPCV.

Outras fontes de vazamento continuam possíveis

Purging correto não corrige lookahead ou timestamps errados nas variáveis, viés de sobrevivência ou dados revisados depois. Normalização, imputação ou seleção de variáveis feita globalmente antes da divisão também pode levar informações do teste ao treino. Ajuste cada transformação e seleção dentro do respectivo fold de treino.

Testar muitas variantes aumenta a chance de escolher por acaso um vencedor do backtest. Bailey e coautores estudam as tentativas repetidas no artigo sobre a probabilidade de sobreajuste do backtest. Use validação aninhada e temporal para selecionar modelos e reserve um período cronológico final intocado. Inclua custos e execuções realistas. Nenhuma validação cruzada garante desempenho futuro.

Apresente resultados e incerteza

Informe tamanho da amostra, frequência, horizontes dos rótulos, disponibilidade das variáveis, regra de divisão, observações removidas e justificativa do embargo. Explique se linhas posteriores ao teste entraram no treino e qual pergunta o método avalia. Uma métrica agregada pode esconder diferenças entre períodos ou trajetórias.

Compare modelos com os mesmos limites temporais, rótulos, premissas de custos e regras de seleção. Considere a incerteza e quantas variantes foram testadas; diferenças pequenas em amostras curtas são evidência fraca. Veja também [viés-variância e sobreajuste de modelos financeiros](/pt-BR/learn/bias-variance-tradeoff-financial-model-overfitting-explained), [testes múltiplos e taxa de falsas descobertas](/pt-BR/learn/multiple-testing-false-discovery-rate-finance-explained) e [Sharpe anualizado com autocorrelação serial](/pt-BR/learn/sharpe-ratio-serial-correlation-annualization-explained).

Defina a validação antes do backtest

Registre, para cada amostra, o instante da decisão t, os dados disponíveis, a janela das variáveis e os limites reais do rótulo até t1. Escolha uma divisão coerente com a pergunta de uso; então remova os rótulos de treino que cruzam intervalos de teste e defina o embargo separadamente quando aplicável.

Confira se o pré-processamento é ajustado dentro de cada fold, documente as tentativas de modelos e os custos, e mantenha um holdout cronológico final intocado. Isso torna a análise mais verificável, mas não transforma dados passados em garantia para o futuro. Este guia explica mecanismos de validação, não recomenda investimentos nem estratégias de trading.

Perguntas frequentes

Q1K-fold aleatório é sempre errado para séries financeiras?

Não. Pode servir a uma pergunta com observações suficientemente independentes e sem rótulos sobrepostos. Quando há dependência temporal ou rótulos forward, a divisão deve respeitar essa estrutura.

Q2O embargo torna o purging desnecessário?

Não. O purging verifica a sobreposição real dos intervalos de rótulo. O embargo acrescenta uma margem para certas divisões com dados posteriores no treino. As duas regras precisam de justificativa documentada.

Q3CPCV substitui os testes walk-forward?

Não necessariamente. CPCV cria diferentes combinações e trajetórias de teste, mas pode treinar com dados posteriores ao bloco de teste. Simular historicamente o uso com treino apenas no passado continua sendo uma pergunta diferente.

Fontes e leituras adicionais

Relatar um problema

Vamos preparar um e-mail com o link deste artigo. Mark só receberá o relato depois que você enviar

Verificação rápida

Terminou o guia? Confira o que aprendeu com 3 perguntas

Pergunta 1 / 3

Pergunta 01

Qual amostra de treino deve ser removida pelo purging?

Escolha uma resposta para ver a explicação

Glossário de opções