Um backtest pode parecer mais convincente depois de piorar os dados. Elimine os registos desagradáveis, preencha as lacunas com preços bem comportados e o Sharpe pode subir. Essa melhoria pode ser um aviso: a regra de limpeza talvez tenha apagado precisamente as condições de mercado que a sua estratégia precisa de suportar.
A qualidade dos dados é importante. Uma cotação cruzada ou uma operação duplicada pode criar uma execução que ninguém poderia ter obtido. Mas um filtro que faz desaparecer observações inconvenientes também é uma escolha de modelo. Trate-o com a mesma desconfiança que teria perante uma nova variável de sinal.
Quando é que um preço incorreto é realmente um dado incorreto?
Comece por perguntar o que representa a observação. Uma operação muito afastada do mercado prevalecente pode ser um registo corrompido, uma execução genuína num mercado com pouca liquidez ou um evento específico de uma plataforma. Uma vela de 1 minuto com uma barra de volume zero pode significar que não houve operações, enquanto uma vela em falta pode indicar uma falha na fonte de dados. Estes casos devem ser tratados de forma diferente.
Considere uma estratégia simples de reversão à média que compra quando o preço cai 1% abaixo de uma média móvel de curto prazo e sai ao atingir a média. Durante um período noturno de pouca liquidez, é registada uma operação 1,2% abaixo do preço anterior e, em seguida, o mercado recupera. Se o registo for genuíno, uma estratégia com uma ordem limitada em repouso poderia ter sido executada. Se for um tick incorreto que nenhuma cotação executável sustentava, contabilizar a execução inventa uma vantagem.
Eliminar a barra não é automaticamente mais seguro. A estratégia pode ainda ter tido uma ordem em repouso no mercado, e a operação real seguinte poderia executá-la. Uma reprodução defensável precisa de modelar o que a estratégia poderia observar e contra o que a sua ordem poderia plausivelmente ser executada.
Que efeito tem uma regra de limpeza nos resultados?
Execute a estratégia com tratamentos de dados explícitos e compare as alterações. Guarde a fonte original e registe cada exclusão ou correção, com a respetiva justificação. Depois, indique quanto dos resultados depende dessas decisões.
| Tratamento dos dados | Benefício potencial | Risco para o backtest |
|---|---|---|
| Remover um registo fora de um intervalo de erro documentado pela plataforma | Impede que um registo inválido conhecido determine um valor extremo | A regra pode classificar incorretamente operações legítimas durante um mercado rápido |
| Transportar o último preço ao longo de um intervalo em falta | Evita que os indicadores falhem perante lacunas | Cria um preço ao qual pode não ter ocorrido nenhuma operação |
| Usar cotações consolidadas em vez dos últimos preços de transação | Oferece uma melhor perspetiva dos preços de execução apresentados | A dimensão das cotações, o acesso à plataforma e a posição na fila continuam a ser relevantes |
| Eliminar todas as barras atípicas com base num limiar estatístico | Reduz a sensibilidade a valores extremos | Pode remover períodos reais de tensão em que a estratégia tem as maiores perdas |
Suponha que uma execução sem filtros tem um Sharpe de 0,9, enquanto uma execução que exclui 0,8% das barras sobe para 1,4. Isso, por si só, não representa uma vitória da qualidade dos dados. Verifique se as barras removidas se concentram em torno de picos de volatilidade, se representam uma parte significativa do P&L e se a regra de exclusão foi definida antes de ver os resultados.
Mantenha um registo de exceções de dados: fonte, carimbo temporal, campos afetados, motivo da ação e indicação sobre se a decisão foi tomada antes ou depois de analisar o desempenho da estratégia.
Como posso testar se a limpeza alterou a vantagem?
Congele a estratégia e compare vários tratamentos plausíveis para as mesmas datas. Inclua, sempre que possível, a reprodução dos dados originais, um conjunto de correções documentadas e um cenário de execução conservador para as observações que continuem ambíguas. Em cada execução, indique o número de operações, a rotação, a perda máxima e a contribuição para o P&L dos intervalos afetados, além do Sharpe.
Depois, analise as operações que mudam. Se os maiores ganhos da estratégia desaparecerem quando se exclui um pequeno grupo de registos suspeitos, examine esses registos um a um. Se forem as perdas a desaparecer, aplique o mesmo escrutínio. Uma regra que só é analisada com cuidado quando prejudica o backtest já está a influenciar a investigação.
Para um estudo reproduzível, controle as versões dos ficheiros do fornecedor ou dos respetivos checksums, do código de limpeza e da lista de exceções. Um fornecedor pode rever o histórico; a execução seguinte deve permitir perceber se foi a estratégia que mudou ou se foram os dados de entrada.
Mas a limpeza não é necessária?
Sim. Manter um registo claramente corrompido pode inventar uma operação, distorcer a volatilidade ou fazer falhar um indicador. E ninguém deve fingir que uma fonte de dados original é a verdade absoluta. O ponto prático é mais específico: a limpeza exige provas, uma regra congelada e uma análise de sensibilidade, porque pode alterar o mercado que o backtest afirma representar.
Quando uma correção dos dados melhora o desempenho, pergunte que observação foi removida e se teria tomado a mesma decisão sem ver a curva de capital. Se não tiver a certeza, mantenha ambas as versões no registo da investigação. A diferença entre elas faz parte dos resultados.
← Todos os artigos


