【CJ 续篇 02/30 · Edição nº 30】

O que mais se teme após um recomeço de estratégia não é atrasar alguns segundos, e sim esquecer o que já foi feito.

Quando muitos programas são reiniciados, fazem apenas duas coisas: restabelecer a conexão da API e continuar a leitura do fluxo (market data). O que realmente precisa ser restaurado primeiro é o estado do ambiente: quais ordens ainda estão ativas, quais ordens já foram executadas parcialmente, o que de fato existe na conta, e se o estado que o programa salvou na última vez é consistente com o estado retornado pela bolsa.

Se o registro local disser “não há posição”, mas a bolsa tiver executado metade, ao reiniciar o programa ele pode acabar abrindo uma nova posição. Ao contrário, se o registro local mantiver uma ordem antiga, e a bolsa já tiver cancelado essa ordem há tempo, o sistema pode ficar travado por não receber a resposta esperada.

Ao restaurar, também é preciso distinguir dois momentos: o da última vez que o local foi salvo e o da atualização mais recente da plataforma. Ter as duas versões gravadas não significa que elas descrevam o mesmo ambiente. Diferenças que não possam ser explicadas devem ser registradas; não é aceitável “pular” isso silenciosamente com o reinício.

A ordem de recuperação mais confiável é: primeiro buscar as ordens e posições reais e depois fazer a conciliação com o estado local; a parte que não puder ser confirmada deve ser congelada, sem pressa de executar novas ações. Reiniciar não é apenas abrir um processo, e sim trazer o sistema de volta de um estado incerto para um estado explicável.

Próximo artigo: o que o grid mais teme não é a oscilação, e sim você tratar uma tendência unidirecional como se fosse oscilação.

#交易机器人 #程序风控