18 de Outubro de 2026 · pesquisa

Como faço backtest de uma estratégia que opera com um sinal diário?

Como faço backtest de uma estratégia que opera com um sinal diário?

Uma estratégia diária que calcula seu sinal com base no preço de fechamento de segunda-feira não pode enviar uma ordem nesse mesmo fechamento. Ela pode enviar a ordem depois que esse preço for conhecido e então operar a um preço executável posterior. Essa pequena escolha de horário pode mudar o resultado mais do que um indicador sofisticado.

Em um backtest diário, defina a sequência antes de escrever o sinal: quando o candle é concluído, quando a estratégia calcula o sinal, quando a ordem chega ao mercado e a que preço ela poderia plausivelmente ser executada. Se todos esses eventos acontecem no mesmo instante, o backtest pulou a parte difícil.

Posso usar o preço de fechamento de hoje para operar no fechamento de hoje?

Em geral, não. Um sinal que depende do fechamento final só fica disponível depois do leilão de fechamento ou da última negociação. Uma execução nesse mesmo preço pressupõe que a estratégia conhecia o resultado com antecedência suficiente para participar a um preço que ajudou a determinar esse resultado.

Considere uma regra simples: comprar quando o fechamento estiver acima da média móvel de 20 dias. No fechamento de segunda-feira, a regra passa a ser verdadeira. Um backtest que compra no fechamento de segunda usou o preço finalizado de segunda tanto para decidir quanto para executar. Em um modelo básico com candles diários, a aproximação honesta é gerar a ordem depois que o candle de segunda for concluído e executá-la, no mínimo, na abertura de terça, considerando os custos apropriados.

Há estratégias que enviam ordens para um leilão de fechamento com base em informações disponíveis antes do horário limite do leilão. É possível fazer backtest delas, mas o sinal deve usar somente dados anteriores ao horário limite, e a execução precisa refletir o leilão. A expressão “sinal diário”, por si só, não garante nenhuma dessas condições.

Qual é o preço de execução adequado para um backtest diário?

Não existe um único preço certo para todos os casos. A próxima abertura é uma hipótese inicial clara quando o sinal é formado a partir de um candle diário concluído e a ordem é enviada depois. Isso não é uma garantia: um gap durante a noite pode mover o mercado, e uma ordem a mercado pagará spread, taxas e possivelmente impacto.

Para o sinal de segunda-feira acima, suponha que o fechamento de segunda seja $100 e a abertura de terça seja $103. Um backtest de fechamento a fechamento pode mostrar um pequeno ganho se fingir que a compra ocorreu a $100. Uma entrada na próxima abertura começa em $103. A diferença de $3 não é “slippage” a ser eliminada por ajustes; é a consequência, em termos de preço, de conhecer o sinal depois do fechamento de segunda.

Quando o sinal fica disponívelExecução possívelHipótese do modelo
Depois do fechamento diárioAbertura da próxima sessãoA ordem pode chegar ao mercado antes da abertura ou no momento dela
Antes do horário limite do leilão de fechamentoLeilão de fechamentoO sinal usa apenas informações anteriores ao horário limite; a execução no leilão é modelada
Depois do fechamento diárioPreço intradiário posteriorA estratégia espera; a execução requer dados intradiários e um cronograma definido

Nos mercados de cripto, “fechamento diário” é uma convenção, pois as negociações continuam na virada do horário de referência. Ainda é possível usar um candle diário UTC concluído, mas é preciso esperar que o candle termine e que os dados cheguem. Se seu pipeline de dados finaliza um candle com vários segundos de atraso, é especialmente difícil justificar uma ordem ao preço da virada.

Como devo modelar as ordens quando só tenho candles diários?

Seja explícito sobre o que o candle permite ou não concluir. OHLCV diário pode sustentar uma aproximação pela próxima abertura, mas não revela o spread no momento em que você chega ao mercado, o percurso dos preços ao longo do dia nem se uma ordem limitada entrou na fila antes de o preço ser atingido.

Para uma ordem a mercado diária, comece pela próxima abertura e depois desconte da estratégia os custos que ela realmente enfrentaria: taxas da corretora ou bolsa, uma estimativa de spread e uma estimativa de impacto adequada ao tamanho da ordem. Faça testes de estresse desses custos. Se o resultado depender de supor spread zero ou impacto insignificante, os candles diários não justificam essa confiança.

Para uma ordem limitada, o fato de a mínima do dia ter atingido seu limite não prova que a ordem foi executada. O mercado pode ter negociado nesse preço antes da chegada da sua ordem, ou pode ter havido mais quantidade à sua frente na fila do que foi negociada. Em geral, candles diários são grosseiros demais para sustentar um modelo de fila confiável. Use dados mais detalhados se a conclusão depender da execução intradiária, ou adote uma hipótese de execução deliberadamente conservadora e identifique-a como tal.

Quais verificações de horário detectam lookahead em candles diários?

Gosto de algumas verificações diretas porque expõem as hipóteses rapidamente:

Deslocar uma sessão é um diagnóstico, não um modelo de execução universal. Um rebalanceamento lento de carteira, uma estratégia de leilão de fechamento e um sistema de cripto que opera continuamente precisam de relógios diferentes. A ideia é deixar o horário visível.

Dados diários tornam um backtest menos útil?

Não. Dados diários podem ser totalmente adequados para uma estratégia cujas decisões e períodos de manutenção sejam medidos em dias ou semanas. Eles são úteis para avaliar se vale a pena pesquisar uma regra geral. Tornam-se enganosos quando o backtest afirma ter precisão sobre execuções que os candles não permitem observar.

Já vi mais de uma estratégia melhorar drasticamente quando alguém trocou “sinal no fechamento, execução no fechamento” por “sinal no fechamento, execução na próxima abertura”. Esse resultado pode ser decepcionante, mas é valioso: mostra se a ideia resiste ao momento em que passa a ser possível operá-la. Mantenha o contrato de horário junto ao código da estratégia. Caso contrário, a próxima rodada de otimização vai reintroduzir silenciosamente a execução impossível.

sinais diárioshorário de execuçãobacktestingdados de mercado
← Todos os artigos