Uma estratégia envia uma ordem limitada às 10:00. O sinal muda às 10:03. O backtest substitui discretamente a ordem às 10:04 e, depois, contabiliza uma execução às 10:05. Em paper trading, a ordem original pode continuar pendente na plataforma. Se for executada enquanto a ordem substituta também está ativa, a estratégia tem 2 ordens e um modelo de posição que finge que só havia 1.
As ordens abertas precisam de ter estado e relógio próprios. Um backtest deve saber quando cada ordem foi enviada, quando pode ser cancelada, se o cancelamento chegou à plataforma e o que acontece se uma execução coincidir com esse cancelamento. Há 3 atalhos que apagam regularmente estes factos.
Erro 1: Tratar um novo sinal como um cancelamento instantâneo
Muitos backtests recalculam a posição-alvo a cada barra e, depois, substituem a ordem pendente pelo que o sinal mais recente indicar. Assim, a ordem desaparece no exato momento em que a estratégia muda de ideias. As plataformas reais não funcionam assim. Um pedido de cancelamento demora tempo e a ordem pode ser executada antes de a plataforma o processar.
Considere uma ordem de compra limitada de 100 ações a $50.00. Às 10:03, o sinal enfraquece e a estratégia envia um pedido de cancelamento. Às 10:03:00.080, são executadas 60 ações; o cancelamento é confirmado às 10:03:00.110. As 40 ações restantes são canceladas, mas a posição passa a incluir 60 ações. Um backtest baseado em barras que elimina a ordem às 10:03 pode indicar 0. Um que assume um cancelamento imediato e, ainda assim, regista uma execução posterior inventou exposição na direção oposta.
Acompanhe explicitamente o ciclo de vida da ordem: enviada, confirmada, parcialmente executada, com cancelamento pendente, cancelada ou totalmente executada. Mantenha as execuções que ocorram antes da confirmação do cancelamento. Numa simulação com barras grosseiras, escolha e indique uma regra de ordenação conservadora para os casos em que ambos os eventos possam ocorrer dentro da mesma barra.
Erro 2: Dar à ordem pendente um prazo de validade infinito
Uma ordem limitada definida a partir de um sinal às 10:00 pode ficar desatualizada, mesmo que o sinal não tenha uma regra de saída explícita. O livro de ordens muda, a volatilidade varia e o valor de mercado do instrumento pode afastar-se. Ainda assim, um simulador que mantém a ordem ativa até ser executada pode acabar por registá-la como executada meses mais tarde e atribuí-la a uma tese que já deixou de existir.
Defina uma política de validade das ordens que corresponda à estratégia. Um sinal de 1 minuto pode usar uma expiração de 30 segundos; um rebalanceamento diário pode manter uma ordem ativa até ao fecho. São escolhas da estratégia, não predefinições universais. Se a estratégia atualizar os preços a cada barra, modele a sequência de cancelamento e substituição, em vez de fazer a ordem saltar magicamente para o novo preço.
| Política da ordem | Utilização típica | Questão para o backtest |
|---|---|---|
| Imediata ou cancelar | Executar a liquidez disponível e parar | Que quantidade poderia ser executada no envio? |
| Expiração curta | Sinal rápido com uma janela de execução breve | A ordem ainda era válida quando o preço regressou? |
| Até ao fim da sessão | Rebalanceamento lento ou intenção de participar no leilão de fecho | A plataforma suporta realmente essa duração? |
Erro 3: Contabilizar cada toque no preço como uma execução
Se o mínimo de uma vela atingir uma ordem limitada de compra, isso não significa necessariamente que a ordem tenha sido executada. Pode haver uma fila de ordens à sua frente, pouco volume negociado a esse preço ou um negócio breve que ocorreu antes de a ordem chegar. Um modelo de ordens desatualizado combina muitas vezes os 3 erros: mantém a ordem ativa durante demasiado tempo, assume que estava à frente na fila e, depois, atribui-lhe uma execução total quando o preço toca no limite.
No mínimo, impeça execuções anteriores à chegada da ordem e limite a quantidade simulada ao volume negociado plausível no preço-limite. Nas estratégias em que a posição na fila é relevante, use dados de negócios e do livro de ordens ou um modelo de fila deliberadamente conservador. Considerar que uma ordem é executada quando o preço toca no limite pode ser útil numa análise preliminar, mas identifique-o como uma aproximação otimista e compare-o com uma hipótese mais exigente.
Auditoria prática: registe a hora de criação de cada ordem, o período de atividade, o pedido e a confirmação de cancelamento, a hora e a quantidade executada e a quantidade restante. Depois, reproduza alguns negócios em torno das inversões de sinal. Se não conseguir explicar por que motivo cada ordem ainda estava ativa quando foi executada, é preciso rever a contagem de execuções do backtest.
Modele a ordem que pretende testar em paper trading
O estado da ordem liga a intenção da estratégia à exposição efetiva. A posição deve mudar quando há execuções, e não quando mudam os objetivos do sinal ou são enviados pedidos de cancelamento. As substituições devem deixar um registo auditável e as execuções parciais devem transitar para a decisão seguinte. Isto torna o backtest mais trabalhoso, mas também dá significado à comparação com o paper trading: é possível identificar as razões pelas quais os 2 sistemas divergem na execução.
Quando o modelo de ordens for incerto, reflita essa incerteza nos resultados. Teste ordens de curta e longa duração, varie o atraso do cancelamento e mostre quanto do desempenho depende de hipóteses otimistas sobre a fila. A estratégia pode estar bem. Mas a sua vantagem aparente também pode ser o rendimento de uma ordem que o sistema real teria cancelado há horas.
← Todos os artigos


