Walk-forward Analysis avalia um procedimento de seleção em ordem cronológica. As regras são escolhidas ou ajustadas com o passado disponível e testadas em dados posteriores que não participaram daquela escolha.
Pedro tem várias versões de uma regra de negociação. Quer usar a que funcionou melhor recentemente. Walk-forward Analysis permite percorrer essa ideia passo a passo: escolher com base na história conhecida, registrar o resultado seguinte e escolher de novo. QuantConnect descreve esse ajuste periódico. O teste avalia também a forma de escolher, não apenas uma versão fixa. Por isso, candidatos, critério e data da próxima revisão precisam ser definidos antes. [1]
Se Pedro escolheu uma versão pelo lucro passado, esse mesmo lucro não valida a escolha de forma independente. QuantConnect explica que esses dados já pertencem ao desenvolvimento. A pergunta correta é como a versão se saiu depois da escolha. O teste atual não pode escolher seu próprio vencedor. Após o período terminar e os resultados ficarem disponíveis, regras predefinidas podem usá-los numa seleção posterior. Isso não reescreve a decisão registrada antes. [2]
A janela de seleção é o trecho da história usado naquele momento. Uma janela móvel mantém a duração e descarta dados mais antigos; uma janela expansiva conserva o início e acrescenta observações. TimeSeriesSplit do scikit-learn expande por padrão, mas permite limitar o tamanho. Defina duração e frequência das atualizações antes do teste. A documentação exige observações igualmente espaçadas para métricas comparáveis; em registros irregulares, confira também a duração real no calendário. [3]
Imagine que o resultado ligado à última observação de treinamento só termine durante o teste seguinte. Ele ainda não é conhecido no momento da escolha. Ordenar a tabela por data não resolve isso. O parâmetro gap de TimeSeriesSplit pode excluir observações no fim do treinamento. A separação necessária deve seguir a disponibilidade das entradas e o término dos resultados, não a curva mais bonita. Mesmo um intervalo adequado não demonstra independência entre períodos vizinhos nem elimina todo viés. [3]
O vazamento não precisa estar na regra de negociação. Uma média usada para mudar a escala dos valores pode ter sido calculada com o arquivo inteiro, incluindo o teste futuro. scikit-learn alerta para o mesmo problema ao preencher valores ausentes ou selecionar variáveis. Aprenda essas transformações só nos dados de treinamento e depois aplique-as ao teste. Repita a separação a cada avanço; dividir uma tabela já transformada não desfaz o vazamento. Preserve também versões e horários de disponibilidade dos dados. [4]
Após testar cada período, é preciso juntar os resultados corretamente. QuantConnect descreve modelos de preço e quantidade executada que podem incluir spread e Slippage. Nossa avaliação então precisa de contas coerentes: não creditar lucros de desenvolvimento na conta de teste nem contar testes sobrepostos repetidamente sem explicar. Ao mudar de versão, diga o que acontece com posições abertas, capital e custos da troca. O exemplo abaixo simplifica isso encerrando toda posição ao final de cada período. [5]
Pedro pode trocar repetidamente janelas, objetivos ou candidatos até o teste ficar bonito. Nesse caso, também usou a série de teste no desenvolvimento. Bailey e seus coautores estudam sucessos por acaso em buscas repetidas nos mesmos dados. Registre todos os procedimentos tentados e separe eventual validação em história ainda não usada. Avançar no tempo não é garantia estatística nem estimativa da probabilidade de sobreajuste, isto é, adaptação excessiva aos dados passados. [6]
Guarde limites das janelas, candidatos, pontuações de seleção, escolhas feitas e resultados seguintes após custos. Apresente o total junto das perdas, quantidade de observações e comparação em condições iguais. A NFA dos EUA lembra que resultados hipotéticos não captam todos os problemas de liquidez, deslizamento e comportamento diante de perdas reais; suas regras promocionais abrangem membros específicos. Um pequeno exemplo negativo não invalida o método inteiro. Tampouco um total positivo prova vantagem futura. [7]
O vencedor anterior pode perder na próxima vez
Para ter uma visão mais completa, leia este verbete junto com Backtesting, Overfitting, Look-ahead Bias, Trading Plan, Trading Journal. Também há referências a este verbete em Backtesting, Overfitting, Look-ahead Bias, Survivorship Bias.
01Um teste anterior pode depois ser usado na seleção?+
Sim, quando o período terminar, os dados necessários estiverem disponíveis e o procedimento predefinido permitir. Isso não pode alterar retroativamente a versão ou o resultado registrados para aquele teste.
02Walk-forward Analysis impede o sobreajuste?+
Não sozinho. Janelas, candidatos ou todo o procedimento ainda podem ser ajustados repetidamente aos mesmos resultados. Registre os ensaios, verifique vazamentos de informação e diferencie desenvolvimento adicional de validação realmente nova.