Look-ahead Bias é o erro de deixar uma informação disponível mais tarde influenciar uma decisão anterior, o treinamento de um modelo ou a escolha de uma regra. Importa quando era realmente possível conhecer o dado, não apenas sua data na tabela. Medir depois o resultado de uma decisão já tomada não é, por si só, um erro.
Pedro usa o computador para testar como sua regra teria negociado no passado. A tabela já contém toda a história, então o programa pode ler por engano algo que Pedro ainda não poderia saber. É assim que QuantConnect explica Look-ahead Bias. Para cada entrada, cabe perguntar: ela estava disponível quando a regra decidiu? A data do dia pode não bastar. Um evento pode ocorrer pela manhã, ser noticiado mais tarde e chegar ao operador depois disso. O teste precisa respeitar essa sequência, não apenas ordenar linhas por data. [2]
Uma vela de preços resume um intervalo: abertura, fechamento, máxima, mínima e volume. Enquanto ele não termina, os valores finais são desconhecidos. Pedro não pode comprar no início com base na máxima final da mesma vela. LEAN, o mecanismo usado por QuantConnect, entrega o dado concluído conforme EndTime, seu horário de término. Ao combinar intervalos curtos e longos, é preciso verificar a disponibilidade de cada série separadamente. Deslocar uma linha só ajuda se isso corresponder de fato à disponibilidade dos dados, incluindo fusos horários e atrasos. [1]
Pedro baixa dados econômicos com datas de meses passados. Alguns números, porém, foram corrigidos depois. Usar o valor revisado de hoje em uma decisão anterior acrescenta conhecimento que ela não tinha. O St. Louis Fed distingue a visão atual do passado em FRED das versões históricas disponíveis por ALFRED. Nesses casos, precisamos da versão publicada na época. A data do mês medido não basta; mesmo uma versão histórica datada por dia não estabelece exatamente quando ficou disponível ao longo daquele dia. [3]
Pedro separa dados antigos para treinamento e mais novos para teste. Mas então calcula a média da tabela inteira para transformar as entradas. O futuro volta por outro caminho. A documentação da biblioteca de aprendizado de máquina scikit-learn exige, portanto, aprender as transformações apenas com a parte de treinamento e só depois aplicá-las à parte de teste. Isso também vale para preencher valores ausentes e selecionar entradas. É preciso observar ainda os resultados usados no aprendizado: uma operação recém-aberta não tem resultado final conhecido. Podemos avaliá-la depois, mas não devolver esse resultado a um treinamento anterior. [4]
Uma vela histórica mostra máxima e mínima, mas não reconstrói toda a sequência das negociações reais. Por isso, TradingView explica as hipóteses de seu simulador sobre o movimento do preço dentro da vela. Pedro precisa distinguir a criação do sinal, o envio da ordem e sua possível execução. Vender na máxima descoberta mais tarde não se torna uma regra disponível só porque a simulação consegue encontrar aquele preço. Vazamento de informação futura e uma hipótese de execução favorável demais são erros diferentes. Dados mais detalhados podem ajudar, mas não garantem a execução real. [5]
Freqtrade Lookahead Analysis compara testes repetidos e procura mudanças nos indicadores ou sinais. Pode revelar um cálculo que consulta linhas futuras. Porém, não verifica um ramo de decisão que nunca foi executado durante o teste. Por isso, precisamos conhecer a cobertura além do resultado. A documentação também alerta para falsos positivos, como quando a estratégia se comporta de forma diferente ao testar um mercado isolado ou um grupo inteiro. Um resultado limpo não certifica tudo, e uma diferença detectada precisa ser explicada. Investigar a origem dos dados continua fazendo parte do trabalho. [6]
Pedro remove a informação futura, e o resultado impressionante piora. Ele não pode continuar apresentando o relatório antigo como resultado do procedimento corrigido. A correção também não encerra todas as verificações. TradingView distingue Look-ahead Bias de Overfitting: no sobreajuste, a regra se adapta demais às particularidades dos dados usados para desenvolvê-la. Isso pode ocorrer sem informações futuras. Por outro lado, uma regra muito simples pode conter um erro temporal. A diferença entre o desempenho histórico e o posterior, sozinha, não revela qual problema ou mudança de mercado a causou. [5]
Um registro útil permite reconstruir o que Pedro sabia naquele instante: versão dos dados, regras, estado da conta, entradas disponíveis e ordens enviadas. Devem constar também as hipóteses de execução e os custos. Paper Trading, a prática sem dinheiro real, pode acrescentar registros em tempo real, mas uma simulação continua diferente de uma negociação real. A organização americana National Futures Association (NFA) destaca limites dos resultados hipotéticos ligados à liquidez, à diferença entre preço esperado e executado e às decisões sob pressão de perdas; suas regras de divulgação se aplicam a membros definidos. Remover o erro temporal produz um teste mais honesto, não uma promessa de lucro futuro. [7]
Quando o teste já sabe qual intervalo vai subir
Para ter uma visão mais completa, leia este verbete junto com Backtesting, Overfitting, Walk-forward Analysis, Survivorship Bias, Paper Trading. Também há referências a este verbete em Walk-forward Analysis, Overfitting, Survivorship Bias, On-chain Analysis.
01Basta deslocar os indicadores em uma linha?+
Isso pode corrigir um erro específico, mas não é uma solução universal. O dado pode ter sido publicado com atraso, revisado depois ou já usado na preparação de toda a tabela. O que importa é a disponibilidade de cada entrada no momento da decisão.
02Podemos usar um resultado posterior para avaliar uma previsão?+
Sim. Para avaliar uma previsão anterior, precisamos conhecer o resultado posterior. O erro aparece quando esse resultado volta ao passado e influencia decisões, treinamento ou escolha de regras anteriores, embora ainda não fosse conhecido.