11 de novembro de 2026 · execução

A estratégia passou nos testes. Depois, a bolsa alterou o tamanho do tick.

A estratégia passou nos testes. Depois, a bolsa alterou o tamanho do tick.

Às 08:00 UTC de uma terça-feira, uma plataforma de cripto alterou o tamanho do tick de um contrato perpétuo de preço intermédio. A nossa estratégia de basis nem se apercebeu. O sinal continuou a detetar o mesmo diferencial entre o mercado à vista e os futuros, os limites de risco mantiveram-se e o backtest continuou a apresentar os mesmos resultados.

A negociação em simulação apercebeu-se disso por ela. O adaptador de ordens arredondou para baixo uma ordem limite de compra, até ao preço permitido mais próximo. A ordem ficou um tick abaixo do nível modelado no backtest. O mercado tocou no preço antigo, a ordem simulada foi executada e a ordem em simulação ficou por executar. Ao almoço, o inventário da estratégia estava desequilibrado.

O incidente parecia um pequeno erro de arredondamento. Na verdade, era um problema de fronteira do modelo: a estratégia conhecia os preços, mas o backtest desconhecia a grelha de preços da plataforma.

Estávamos a negociar um sinal simples de basis: comprar no mercado à vista e vender um perpétuo quando o prémio dos futuros ultrapassava um limiar. As ordens eram passivas, porque a vantagem esperada da basis era pequena. Bastavam alguns ticks para determinar se a entrada rendia o suficiente para cobrir as comissões e a saída posterior.

O que mudou quando mudou o tamanho do tick?

Antes da atualização, o perpétuo aceitava preços em incrementos de 0,01. Depois, passou a aceitar incrementos de 0,05 na banda de preços relevante. O sinal calculou um preço-alvo de venda de 42,318.03, válido segundo a regra antiga. Segundo a nova regra, esse preço era inválido.

A bolsa rejeitava preços inválidos, mas o nosso adaptador tinha uma alternativa: arredondava a venda para baixo, até 42,318.00. Esse preço também era inválido. Uma segunda alternativa voltava a arredondar, desta vez para 42,318.05, que era válido, mas menos agressivo para um vendedor. A ordem já não podia ser vendida ao preço modelado. A lógica tinha sido escrita para outro mercado e transformava silenciosamente uma rejeição numa ordem com preço ajustado.

Essa ordem levantava duas questões distintas. Primeiro, que preço pode a plataforma aceitar? Segundo, como deve a estratégia reagir quando o preço pretendido não está na grelha? A bolsa responde à primeira. A estratégia ou a política de execução tem de responder à segunda.

Intenção da ordemRegra da grelhaSentido habitual do arredondamentoO que pode alterar
Ordem limite de compraO preço tem de ser múltiplo do tickPara baixo, para não ultrapassar o limiteMenor probabilidade de execução
Ordem limite de vendaO preço tem de ser múltiplo do tickPara cima, para não ficar abaixo do limiteMenor probabilidade de execução
Ordem limite executávelTambém tem de respeitar os limites de preçoDepende do preço máximo aceitávelSe atravessa o spread

Não existe uma regra de arredondamento universalmente correta. Arredondar uma compra para baixo respeita o limite de preço do comprador, mas pode reduzir a probabilidade de execução. Arredondar para cima pode tornar a ordem executável de imediato, alterando as comissões e o impacto. Para a nossa entrada passiva de basis, alterar a ordem silenciosamente foi a decisão errada. A estratégia tinha definido um alvo; o adaptador alterou a sua economia.

Porque é que o backtest continuava a parecer saudável?

O nosso simulador histórico de ordens tratava os preços limite como valores contínuos. Se a mínima da barra atingisse o preço de compra, ou a máxima atingisse o preço de venda, contabilizava uma execução. Já é uma aproximação generosa para uma ordem passiva, porque uma transação ao preço limite não revela a posição na fila. Mas a alteração do tick tornou o problema mais básico: a ordem não podia sequer existir àquele preço.

Reproduzimos as mesmas decisões aplicando a nova grelha a partir do momento em que entrou em vigor. Várias execuções desapareceram. Algumas ordens foram arredondadas para preços que atravessavam o spread e passaram a pagar comissões de taker em vez de maker. A trajetória da posição divergiu e, por isso, também mudaram as coberturas e saídas posteriores. Uma regra que parecia ser apenas metadados alterou toda a sequência de transações.

E a atualização não era uma surpresa escondida num gráfico. A plataforma tinha publicado uma alteração às regras do instrumento, com uma data e hora de entrada em vigor. Armazenávamos cuidadosamente os dados de mercado, mas os metadados dos instrumentos ficavam numa cache atualizada no arranque. O backtest usava as regras de hoje para todas as datas históricas; a negociação em simulação usava regras desatualizadas até o processo ser reiniciado. Nenhum dos ambientes representava o que a plataforma permitia em cada momento.

Como deve um backtest modelar alterações no tamanho do tick?

Atribua versões às regras dos instrumentos, com intervalos de validade, tal como a outras entradas disponíveis em cada momento. No mínimo, guarde a data e hora de entrada em vigor e os valores necessários para validar uma ordem: tamanho do tick, incremento da quantidade, quantidade mínima e eventuais bandas de preços. O simulador deve carregar o conjunto de regras disponível no momento da decisão simulada.

Depois, torne explícito o tratamento das ordens. Se um preço-alvo for inválido, rejeite-o, arredonde-o segundo uma política documentada ou recalcule o alvo na grelha. Registe o que aconteceu. Um backtest que corrige automaticamente todas as ordens pode ser útil para estimar uma política de execução específica, mas não deve apresentar essa política como se fosse uma execução da bolsa.

Nas ordens passivas, um preço válido segundo o tick é apenas a primeira condição para haver execução. Continua a ser necessário modelar se o mercado negociou além do seu preço, a fila à sua frente, os cancelamentos e o escalão de comissões que teria obtido.

Adicionámos duas verificações. Uma valida cada ordem gerada segundo as regras do instrumento disponíveis naquele momento e falha de forma explícita se o preço ou a quantidade forem inválidos. A outra compara a ordem final normalizada pelo adaptador do backtest com a do adaptador de simulação: lado, preço, quantidade, validade temporal e intenção quanto à comissão. Se houver divergências, a execução não é considerada comparável.

Depois disso, reproduzimos a alteração de terça-feira. O backtest deixou de contabilizar execuções a 42,318.03 após a atualização da grelha. A negociação em simulação e a simulação tomaram a mesma decisão para cada preço-alvo inválido, mesmo quando essa decisão era não enviar a ordem.

O sinal não tinha falhado. Tinham ficado desatualizadas as suas premissas sobre o instrumento que podia negociar. Uma estratégia pode adaptar-se a um novo tamanho do tick, desde que o sistema de investigação trate as regras da plataforma como parte do mercado que está a simular.

regras da bolsatamanho do tickarredondamento de ordensbacktestingnegociação em simulação
← Todos os artigos