Uma estratégia diária que calcula o sinal a partir do preço de fecho de segunda-feira não pode colocar uma ordem ao fecho de segunda-feira. Pode enviá-la depois de conhecer esse preço e, em seguida, negociar a um preço executável posterior. Esta pequena escolha de timing pode alterar o resultado mais do que um indicador engenhoso.
Num backtest diário, registe a sequência antes de escrever o sinal: quando a barra fica completa, quando a estratégia faz o cálculo, quando a ordem chega ao mercado e a que preço poderia ser plausivelmente executada. Se todos estes eventos ocorrerem no mesmo instante, o backtest saltou a parte difícil.
Posso usar o preço de fecho de hoje para negociar ao fecho de hoje?
Em geral, não. Um sinal que depende do fecho final só fica disponível depois de terminar o leilão de fecho ou de ocorrer a última transação. Uma execução ao 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.
Consideremos uma regra simples: comprar quando o fecho está acima da média móvel de 20 dias. Ao fecho de segunda-feira, a regra passa a ser verdadeira. Um backtest que compra ao fecho de segunda-feira usou o preço final de segunda-feira para decidir e para executar a ordem. Num modelo básico com barras diárias, a aproximação honesta é gerar a ordem depois de concluída a barra de segunda-feira e executá-la, no mínimo, à abertura de terça-feira, com os custos adequados.
Há estratégias que enviam ordens para um leilão de fecho com base em informação disponível antes do limite de participação no leilão. É possível fazer o backtest dessas estratégias, mas o sinal tem de usar apenas dados anteriores ao limite e a execução tem de refletir o leilão. A expressão «sinal diário» não garante nenhuma destas condições.
Qual é o preço de execução adequado para um backtest diário?
Não existe um único preço universalmente correto. A abertura seguinte é um ponto de partida claro quando o sinal é formado a partir de uma barra diária concluída e a ordem é enviada depois. Não é uma garantia: uma variação durante a noite pode mover o mercado, e uma ordem a mercado pagará o spread, as comissões e, potencialmente, o impacto.
Para o sinal de segunda-feira acima, suponhamos que o fecho de segunda-feira é $100 e a abertura de terça-feira é $103. Um backtest de fecho a fecho pode mostrar um pequeno ganho se fingir que compra a $100. Uma entrada à abertura seguinte começa nos $103. A diferença de $3 não é «slippage» para ajustar até desaparecer; é a consequência, em termos de preço, de só conhecer o sinal depois do fecho de segunda-feira.
| Disponibilidade do sinal | Execução possível | Pressuposto do modelo |
|---|---|---|
| Depois do fecho diário | Abertura da sessão seguinte | A ordem pode chegar ao mercado antes da abertura ou no momento da abertura |
| Antes do limite do leilão de fecho | Leilão de fecho | O sinal usa apenas informação anterior ao limite; a execução no leilão é modelada |
| Depois do fecho diário | Preço intradiário posterior | A estratégia aguarda; a execução exige dados intradiários e um horário definido |
Nos mercados de criptoativos, o «fecho diário» é uma convenção, porque a negociação continua para lá da mudança de data e hora. Ainda assim, uma estratégia pode usar uma vela diária UTC concluída, mas tem de aguardar que a vela fique completa e que os dados cheguem. Se o seu pipeline de dados só finalizar uma barra vários segundos depois, é especialmente difícil justificar uma ordem ao preço de transição.
Como devo modelar as ordens quando só tenho barras diárias?
Seja explícito quanto ao que a barra permite ou não concluir. Os dados OHLCV diários permitem uma aproximação à abertura seguinte, mas não revelam o spread no momento em que a ordem chega, o percurso do preço ao longo do dia, nem se uma ordem limitada entrou na fila antes de o preço a atingir.
Para uma ordem diária a mercado, comece pela abertura seguinte e depois contabilize os custos que a estratégia enfrentaria na realidade: comissões da plataforma, uma estimativa do spread e uma estimativa do impacto adequada ao tamanho da ordem. Teste cenários com custos mais elevados. Se o resultado depender de assumir um spread nulo ou um impacto insignificante, as barras diárias não justificam essa confiança.
No caso de uma ordem limitada, o facto de a mínima do dia ter atingido o seu limite não prova que a ordem foi executada. O mercado pode ter negociado nesse preço antes de a ordem chegar, ou pode ter havido mais quantidade à sua frente do que a quantidade negociada. Muitas vezes, as barras diárias são demasiado grosseiras para sustentar um modelo credível da fila. Use dados mais granulares se a conclusão depender da execução intradiária, ou adote deliberadamente um pressuposto de execução conservador e identifique-o como tal.
Que verificações de timing detetam lookahead em barras diárias?
Gosto de algumas verificações diretas, porque expõem rapidamente os pressupostos:
- Atrase em 1 sessão todas as ordens derivadas do sinal. Se o desempenho cair a pique, verifique se a versão original usou o fecho da barra do sinal como preço de execução.
- Registe separadamente a hora do sinal, a hora de envio da ordem e a hora de execução. Os carimbos temporais devem contar uma história plausível sem precisarem de interpretação.
- Compare execuções à abertura seguinte com um preço de execução posterior e conservador. Uma estratégia que só funciona no ponto mais favorável da barra tem um problema de execução.
- Verifique como os feriados, as barras em falta e os encerramentos do mercado afetam a «sessão seguinte». O dia seguinte no calendário pode não ser uma sessão de negociação.
Um desfasamento de 1 sessão é um diagnóstico, não um modelo de execução universal. O rebalanceamento lento de uma carteira, uma estratégia de leilão de fecho e um sistema de criptoativos que negoceia continuamente precisam de relógios diferentes. O importante é tornar o relógio visível.
Os dados diários tornam um backtest menos útil?
Não. Os dados diários podem ser perfeitamente adequados para uma estratégia cujas decisões e períodos de detenção se medem em dias ou semanas. São úteis para avaliar se vale a pena investigar uma regra geral. Tornam-se enganadores quando o backtest alega uma precisão nas execuções que as barras não conseguem demonstrar.
Já vi mais do que uma estratégia melhorar drasticamente quando alguém trocou «sinal ao fecho, execução ao fecho» por «sinal ao fecho, execução na abertura seguinte». O resultado pode ser dececionante, mas é valioso: diz-lhe se a ideia resiste ao momento em que se torna negociável. Mantenha o acordo de timing junto ao código da estratégia. Caso contrário, na próxima ronda de otimização, a execução impossível voltará a aparecer sem dar por isso.
← Todos os artigos


