Tem uma pequena estratégia de futuros de criptoativos que negoceia vários contratos e acabou de passar do backtest para a negociação simulada. O primeiro rebalanceamento pede 0.037 BTC. O simulador aceita a ordem; a plataforma rejeita-a porque o incremento de quantidade do contrato é 0.001 e a ordem, depois de arredondada, fica abaixo do valor nocional mínimo. A sua posição mantém-se neutra, enquanto o backtest regista uma execução.
É fácil desvalorizar esta diferença como um erro de formatação. Mas também pode alterar os ativos que detém, o momento do rebalanceamento e o risco que permanece após uma ordem falhar. Trate os filtros de negociação de cada plataforma como parte das regras de execução da estratégia e faça com que o backtest e o adaptador de simulação apliquem as mesmas regras pela mesma ordem.
Que filtros da exchange podem invalidar uma ordem?
Comece pelos metadados do instrumento de que a sua ordem precisa: incremento de quantidade, quantidade mínima, valor nocional mínimo, incremento de preço e eventuais limites de dimensão da ordem ou de banda de preços. Os nomes e o âmbito destes filtros variam consoante a plataforma. Um par à vista pode ter um mínimo diferente do respetivo contrato perpétuo; um filtro pode mudar enquanto a sua estratégia está em execução.
Considere uma posição-alvo no valor de $12 num contrato cujo valor mínimo de ordem é $10. Se o incremento de quantidade fizer com que a sua ordem seja arredondada para baixo até $9.80, a ordem é inválida, apesar de o alvo não arredondado ultrapassar o mínimo. Arredondar para cima até $10.20 pode torná-la válida, mas também excede o alvo em $0.20. Esta diferença pode ser significativa quando a conta é pequena ou a estratégia negoceia muitos instrumentos.
| Regra | O que condiciona | Consequência no backtest |
|---|---|---|
| Incremento de quantidade | Variações permitidas na dimensão da ordem | A dimensão arredondada difere do alvo |
| Quantidade ou valor nocional mínimo | Menor ordem aceite | Algumas operações não têm efeito ou exigem arredondamento para cima |
| Tick de preço | Preços limite e de ativação permitidos | O arredondamento do preço altera a probabilidade de execução da ordem |
| Banda de preços ou limite de dimensão | Limites definidos pela plataforma para os campos da ordem | As ordens podem ser rejeitadas durante mercados voláteis ou grandes rebalanceamentos |
Em que ponto do processo da ordem deve aplicar o arredondamento?
Arredonde os campos da ordem depois de calcular a variação de posição pretendida e antes de decidir se a vai submeter. Mantenha o alvo não arredondado para análise e, em seguida, derive uma ordem executável a partir da posição atual, do multiplicador do contrato e dos incrementos da plataforma. Com um incremento de quantidade de venda de 0.001, uma redução pretendida de 0.0017 passa a 0.001 ou 0.002, consoante a regra definida. Estas opções deixam posições residuais diferentes, pelo que «arredondar à precisão indicada» não é uma política completa.
Para as quantidades, arredondar por defeito em direção a zero evita aumentar acidentalmente a exposição para além da variação pedida, mas pode deixar resíduos pequenos que nunca chegam a ser negociados. Arredondar ao valor mais próximo reduz o erro médio, embora possa ultrapassar o alvo. O tratamento do valor nocional mínimo exige uma decisão própria: ignorar a operação, acumular até atingir o limite ou aumentar a dimensão e aceitar o excedente. Não alterne silenciosamente entre estas opções.
Registe também o motivo pelo qual uma ordem não foi executada. «Sem ordem: abaixo do valor nocional mínimo» significa algo diferente de «executada a zero». Num rebalanceamento de carteira, uma ordem ignorada pode deixar dinheiro parado ou manter exposição ao ativo anterior; registe esse resultado no estado da conta.
Como manter alinhadas a execução no backtest e na simulação?
Use a mesma função de validação de ordens nos dois percursos, sempre que a arquitetura do sistema o permita. Forneça-lhe as mesmas regras do instrumento válidas naquele momento, a ordem pretendida e o estado da conta. A função deve devolver uma ordem normalizada ou um motivo específico de rejeição. O simulador pode então aplicar os pressupostos de execução às ordens normalizadas, enquanto o adaptador de simulação envia campos equivalentes à plataforma.
Guarde uma cópia datada dos metadados dos filtros juntamente com cada execução. Se um incremento de quantidade ou um mínimo mudar, tem de saber que regra foi usada no backtest. Consultar os metadados de hoje para reproduzir uma estratégia de há um ano pode fazer com que ordens antigas pareçam inválidas ou com que ordens históricas pareçam possíveis quando não eram.
Quando a plataforma de simulação comunicar uma rejeição, compare os campos submetidos e a cópia dos filtros antes de alterar o sinal. Se o normalizador de ordens do backtest produziu 0.037 BTC, mas a plataforma permitia incrementos de 0.001 BTC, a discrepância está no adaptador ou nos metadados. Se a ordem submetida era válida, mas nunca foi executada, está perante um aspeto do comportamento da execução, como o preço, a liquidez ou a validade da ordem.
O que deve verificar antes de confiar na comparação?
Em cada rebalanceamento, mantenha um pequeno registo de auditoria: posição-alvo, posição atual, ordem em bruto, ordem normalizada, versão dos filtros aplicáveis e estado final. Depois, compare os registos da simulação e do backtest para o mesmo momento de decisão.
- Ambos os percursos usaram o mesmo multiplicador do contrato e as mesmas unidades de quantidade?
- Aplicaram a mesma direção de arredondamento e a mesma política de ordem mínima?
- Os valores dos filtros eram válidos quando a ordem foi criada?
- Uma ordem rejeitada ou ignorada deixou a mesma posição e o mesmo saldo em dinheiro nas duas contas?
A sua estratégia pode continuar a ser sólida mesmo que o primeiro rebalanceamento em simulação falhe. Mas, até o simulador conseguir explicar por que motivo essa ordem teria sido aceite, arredondada, ignorada ou rejeitada, a curva de capital descreve um sistema de execução diferente daquele que está a tentar pôr em prática.
← Todos os artigos

