Como o DPO pode ser testado retrospectivamente de forma responsável?
Defina o DPO e o cálculo testável retrospectivamente
DPO geralmente se refere a um indicador baseado em média móvel, construído para comparar o valor de hoje com um valor deslocado para trás por um offset escolhido. Para testá-lo retrospectivamente de forma responsável, comece escrevendo o cálculo exato em termos simples: qual tipo de média móvel é usado (por exemplo, simples ou exponencial), o comprimento do lookback, o deslocamento/offset e como o valor do indicador é mapeado para decisões.
Dois mal-entendidos comuns causam testes ruins: (1) diferentes definições de “DPO” entre ferramentas e (2) confusão entre a linha do indicador e qualquer regra de decisão que você possa aplicar. Para backtesting, trate o DPO como uma série de inputs que você calcula a partir de OHLC histórico (ou quaisquer campos de preço que você use). Em seguida, mantenha a regra de decisão separada para que você possa testá-la de forma consistente sem alterar a definição do indicador.
Ao calcular o DPO a partir de barras históricas, declare premissas como: se você usa apenas o fechamento, como lida com barras ausentes e se o indicador é calculado no fechamento da barra ou na abertura da barra. Essas premissas determinam quais informações estariam disponíveis no momento.
Separe a mecânica estável das condições variáveis
Um backtest responsável distingue entre a mecânica estável do indicador e as condições variáveis que podem mudar dos resultados em papel para execuções reais.
A mecânica estável inclui: a fórmula do indicador, a interpretação do deslocamento/offset e qualquer transformação determinística (por exemplo, normalizar ou converter o indicador em features). As condições variáveis incluem: regimes de mercado, volatilidade, liquidez e como os spreads e o slippage se comportam ao longo do tempo.
Como o backtest não tem dados ao vivo, você deve modelar os custos de forma conservadora e transparente. Os custos podem incluir aproximações de spread/comissão e premissas de slippage. Mesmo que você não tenha dados exatos no nível de negociação, você ainda deve especificar uma regra: por exemplo, assumir que os custos são aplicados na entrada e na saída e definir se você os modela como fixos por negociação ou proporcionais ao movimento do preço.
As premissas de execução importam tanto quanto o indicador. Decida como você traduz uma observação do indicador em um resultado de negociação no tempo: se sua decisão é formada usando valores de DPO no fechamento da barra, então sua entrada não deve assumir conhecimento intrabar. Alinhe o timing do sinal com o timing do preço para evitar look-ahead acidental.
Adicione controles de viés para que os resultados não sejam apenas overfitting
O backtesting torna-se não confiável quando as escolhas são ajustadas à mesma janela histórica que você “avalia” posteriormente. Para reduzir isso, use controles de viés.
As verificações principais incluem:
- Prevenção de look-ahead: garanta que cada valor do indicador usado no tempo t seja calculado apenas a partir de dados disponíveis até t. Features de deslocamento podem tentá-lo a deslocar séries incorretamente.
- Disciplina de parâmetros: se você pesquisar sobre o comprimento ou offset do indicador, você precisa de um período de avaliação separado. Caso contrário, você mede a capacidade de corresponder ao ruído.
- Testes walk-forward ou rolantes: reestime apenas o que você tem permissão para reestimar (por exemplo, escolhas de parâmetros) usando dados passados e avalie no próximo segmento.
Também teste a robustez: se pequenas mudanças nos parâmetros do indicador alterarem drasticamente os resultados, a relação provavelmente é instável. Um fluxo de trabalho responsável documenta o espaço de busca de parâmetros, os tamanhos dos passos e os critérios de seleção e, em seguida, verifica como o desempenho muda quando você sai do intervalo originalmente otimizado.
Abordagem de evidência ou exemplo sem superestimar
Um fluxo de trabalho de exemplo limpo é:
- Escolha uma única definição explícita de DPO (fórmula, tipo de MA, comprimento, offset).
- Escolha uma regra simples e alinhada ao tempo para traduzir o DPO em uma ação hipotética. Mantenha a regra fixa ao validar o pipeline de dados.
- Calcule o DPO em todo o conjunto de dados e, em seguida, verifique o timing confirmando que o valor do indicador usado para a barra t depende apenas de barras anteriores.
- Execute uma avaliação ciente de custos usando um modelo de custos de transação declarado e uma regra de timing de execução.
- Use testes fora da amostra (um ou mais segmentos não vistos) para estimar se os resultados persistem.
Essa estrutura produz evidências sobre a repetibilidade da relação modelada, não uma promessa de desempenho futuro.
Limitações e modos de falha que você deve considerar
O desempenho histórico pode enganar por vários motivos:
- Dependência de regime: os indicadores geralmente funcionam em certas condições de mercado e falham em outras. Um backtest que mistura regimes pode esconder quando um indicador quebra. - Sensibilidade a custos: se a estratégia depende de mudanças frequentes, pequenas mudanças nas premissas de spread ou slippage podem superar a vantagem do indicador. - Overfitting: buscas de parâmetros, re-execuções repetidas e ajustes flexíveis de regras podem se ajustar ao ruído.