28 de setembro de 2026 · investigação

A sua estratégia de paper trading reiniciou com uma posição diferente: uma carta sobre recuperação de estado

A sua estratégia de paper trading reiniciou com uma posição diferente: uma carta sobre recuperação de estado

Disse-me que o seu processo de paper trading falhou durante a noite. Reiniciou-o antes da decisão seguinte, não viu erros e assumiu que tinha retomado de onde ficara. Depois, enviou uma ordem de compra para um ativo que já possuía. Quer saber se a estratégia tem um erro.

É possível. Mas, primeiro, confirme se o processo reiniciado conhece os mesmos dados que a conta de paper trading. Reiniciar é um problema de recuperação de estado: as posições, o saldo, as ordens em aberto e qualquer memória da estratégia que afete a decisão seguinte têm de estar sincronizados. Voltar a pôr o código a funcionar é a parte fácil.

Em que acreditava a estratégia antes de falhar?

Registe a última decisão tomada pelo processo antes de parar. Para cada instrumento negociado, anote a posição pretendida, a posição efetiva na conta, as ordens pendentes e o estado dos sinais que afetará a ação seguinte. Se esses registos não existirem, não consegue saber se o reinício restaurou o estado ou simplesmente inicializou uma estratégia nova.

Imagine que a sua estratégia horária compra 1 unidade quando o sinal de tendência passa a positivo e mantém a posição até o sinal passar a negativo. O processo envia a ordem de compra às 14:00, mas falha antes de registar que a ordem foi aceite. A plataforma de paper trading executa-a. Ao reiniciar, a estratégia não encontra uma posição registada e o sinal continua positivo, por isso envia outra ordem de compra. O sinal está a comportar-se de forma consistente. A memória da estratégia sobre o que a conta detém é que está desatualizada.

É por isso que a posição atual da conta tem de ser reconciliada com o estado persistido da estratégia antes de permitir novas ordens. Um registo local pode ser útil, mas a conta ou a plataforma é a fonte de verdade sobre o que foi efetivamente executado.

Que estado tem de sobreviver a um reinício?

Comece pelo estado que pode alterar a ordem seguinte. Mantenha um registo persistente, com uma data e hora e uma versão para cada atualização; faça uma cópia antes de alterar a lógica de recuperação para poder reproduzir a falha mais tarde.

EstadoPorque é importanteVerificação da recuperação
Posições e saldoDeterminam a exposição e o poder de compra disponívelCompare os valores persistidos com os da conta de paper trading
Ordens em abertoUma ordem pode ter sido executada enquanto o processo estava paradoConsulte o estado das ordens e reconcilie as execuções parciais
Memória dos sinaisCruzamentos, períodos de espera e durações de manutenção podem abranger várias decisõesRestaure os últimos dados de decisão confirmados
Último evento processadoDetermina onde a estratégia retoma o consumo de dadosReproduza os eventos posteriores a esse ponto sem os aplicar duas vezes

É fácil esquecer a memória dos sinais. Uma estratégia que negoceia com base num cruzamento pode guardar o valor do indicador do dia anterior para detetar um novo cruzamento. Se arrancar com esse valor vazio, pode confundir uma condição já existente com um novo evento. Um temporizador de espera tem o mesmo problema: o reinício não deve repor silenciosamente uma regra que devia persistir.

Como pode tornar a recuperação reproduzível?

Atribua a cada ordem um ID de cliente estável, derivado da execução da estratégia e da decisão que lhe deu origem. Se o processo voltar a tentar após um timeout, pode verificar se essa decisão já criou uma ordem, em vez de colocar uma duplicada. Registe as alterações de estado apenas depois de confirmar o evento correspondente na conta e guarde os IDs das ordens e execuções que explicam a alteração.

Depois, teste o ponto que causou o incidente. Execute a estratégia até uma decisão, guarde o estado, pare-a e restaure-a com as posições e o histórico de ordens da conta de paper trading. Compare a decisão seguinte e as ordens resultantes com uma execução contínua. Repita o teste com uma ordem parcialmente executada e com uma falha entre o envio e a confirmação. A execução retomada não deve inventar uma posição nem repetir uma ação concluída.

Mantenha um registo de recuperação: último evento processado, hora do instantâneo da conta, estados das ordens em aberto, versão restaurada da estratégia e primeira decisão após o reinício. Assim, “voltou a arrancar” passa a ser algo que pode auditar.

Em que deve confiar depois do reinício?

Confie no processo apenas quando o estado da conta e da estratégia estiver reconciliado, as ordens pendentes tiverem estados conhecidos e a decisão seguinte corresponder ao que esperaria de uma execução contínua. Se não conseguir explicar uma divergência, suspenda o envio de ordens em paper trading e analise o registo de eventos. Um processo em execução não prova que a estratégia foi recuperada.

Já encontrou algo útil na falha: revelou uma suposição com a qual a execução normal nunca o obrigou a lidar. Torne o reinício num cenário reproduzível e saberá de que se lembra a estratégia antes de lhe pedir que volte a negociar.

paper tradingestado da estratégiarecuperaçãobacktesting
← Todos os artigos