Um backtest de mercado preditivo pode usar um ticker que parece certo, o histórico de preços certo e o contrato errado. É fácil deixar passar esse erro porque os nomes dos mercados são curtos, as páginas dos eventos são atualizadas e uma cota YES sempre parece ter um preço entre zero e um.
Considere um mercado hipotético chamado “O Ato de Transporte Limpo será aprovado?”. Uma estratégia compra YES a 0.42 após um sinal de notícia. Mais tarde, o backtest marca a posição a 1.00. Antes de confiar nesse ganho, quero saber exatamente o que o contrato prometia: qual projeto de lei, o que contava como “aprovação”, o prazo e a fonte que determinou o resultado.
O título: “O Ato de Transporte Limpo será aprovado?”
Um título é um texto de exibição, não um identificador estável do instrumento. Dois mercados podem usar textos quase idênticos e se referir a sessões legislativas, projetos emendados ou prazos diferentes. A plataforma também pode alterar um título para deixar o mercado mais claro sem mudar os termos subjacentes.
Por isso, o backtest deve vincular a posição ao ID imutável do mercado ou contrato na plataforma e guardar o texto completo das regras e sua versão. Se os dados históricos contêm apenas um título e um ticker, não é possível confirmar que a série de preços pertence ao contrato que a estratégia pretendia negociar.
| Campo de identidade | O que identifica | Falha se omitido |
|---|---|---|
| Plataforma e ID do mercado | O mercado específico listado | Títulos semelhantes são agrupados |
| Versão das regras | Os termos aceitos pelos participantes | Uma edição posterior é aplicada a negociações anteriores |
| ID do token de resultado | A cota YES ou NO negociada | Os preços de YES e NO são trocados ou combinados |
| Fonte de resolução | Evidência usada para determinar o resultado | O backtest presume uma autoridade diferente |
As regras: o que significa “aprovação”?
Suponha que a regra diga que o projeto precisa ser aprovado pela Câmara e pelo Senado até 30 de junho e, depois, sancionado pelo presidente. Um backtest que considera a aprovação por qualquer uma das casas um sucesso mudou a aposta. O mesmo vale para um backtest que conta um projeto com o mesmo nome na sessão seguinte.
Leia os critérios reais de resolução como condições executáveis. Registre o prazo e o fuso horário, o evento que se qualifica, quaisquer exceções e a fonte de resolução indicada. A ambiguidade também importa: se as regras da plataforma deixam sem resposta um cenário plausível, não escolha silenciosamente a interpretação que coincide com o resultado histórico.
Há uma parte maravilhosamente pouco glamorosa desse trabalho: salvar a página das regras antes que algo interessante aconteça. Uma página capturada só depois da resolução pode mostrar a redação final, enquanto sua estratégia entrou sob uma versão anterior.
A linha do tempo: quando a estratégia poderia saber?
Agora suponha que as regras estejam corretas e que o sinal de notícia tenha disparado às 14:05 UTC. O feed histórico informa que houve uma negociação às 14:05, ao preço de 0.42. Esse horário, por si só, não diz se a informação estava disponível antes da negociação, se o preço registrado ainda podia ser executado depois nem se a barra representa uma cotação, uma negociação ou um resumo do intervalo.
Mantenha separado o horário em que o sinal ficou disponível e o horário do evento de mercado. Depois, envie a ordem somente quando a estratégia pudesse calculá-la e submetê-la. Em um mercado com pouca liquidez, a próxima negociação registrada pode ocorrer minutos depois; isso não prova que sua ordem teria sido executada àquele preço.
O preço: cotação não é execução
YES a 0.42 implica um preço de 42 centavos por cota, mas uma série baseada na última negociação esconde o spread e o volume disponível. Se a melhor oferta de venda for 0.45 para 20 cotas, uma compra simulada de 100 cotas não pode ser executada integralmente a 0.42. A ordem pode consumir vários níveis do livro, ficar aguardando ou não ser executada.
Os preços de mercados preditivos também convidam a um atalho contábil: tratar 0.42 como uma probabilidade de 42% e esquecer que esse também é o desembolso inicial. Uma posição de 100 cotas YES custa $42 antes das taxas. Se for liquidada a $1, o valor bruto recebido será $100; se for liquidada a $0, será zero. Taxas, execuções parciais e qualquer regra de liquidação específica da plataforma precisam constar no registro.
A liquidação: o que encerra a negociação?
Um backtest muitas vezes encerra a posição usando o preço final de mercado. Mas um contrato mantido até a resolução paga conforme as regras, e seu último preço cotado pode estar defasado, ter um spread amplo ou ficar longe do pagamento final. Modele a resolução como um evento próprio: o resultado, o horário da liquidação e o movimento de caixa devem vir do registro do contrato.
Considere também um mercado resolvido como inválido ou contestado, caso as regras da plataforma prevejam essa possibilidade. Isso pode devolver o valor apostado, pagar um valor diferente ou exigir uma espera. Uma hipótese de pagamento binário não representa todas as formas de resolução.
A conclusão sobre o backtest
Neste exemplo, eu só aceitaria o ganho informado depois de conferir o ID imutável do mercado, a versão das regras vigente no momento da entrada, o token YES, o horário em que o sinal ficou disponível, as ofertas de venda e os volumes executáveis, as taxas e a liquidação registrada. Se o arquivo de preços não permitir essas verificações, o resultado honesto é uma faixa de cenários ou um resultado não verificado.
Isso pode parecer rigoroso para uma única negociação pequena. Repita o mesmo erro de associação em milhares de mercados e o backtest pode acabar medindo cuidadosamente contratos que sua estratégia nunca negociou.
← Todos os artigos


