← Notas
Quando a engine para
control·hil·operations

Quando a engine para

O algoritmo roda sozinho. Mas em três situações ele consulta o operador, e em mais uma simplesmente para. Veja como funcionam a fila HIL, os modos da estratégia e o kill switch — e onde fica a linha entre eles.

· Mikhail Savchenko · Atualizado

A promessa mais contraditória que qualquer stack algorítmico faz soa assim: “você controla o capital, mas não precisa fazer nada com as mãos.” Lê bem, desmonta na prática. Se o algoritmo realmente não pede nada ao operador, o operador é peso morto. Se pede em cada decisão, você voltou aos noventa botões dos quais a gente fugiu.

A linha se desenha em três camadas. Primeiro — os modos da estratégia. Segundo — a fila HIL para eventos específicos. Terceiro — o kill switch como freio de emergência. Cada camada cobre uma classe diferente de situações e existe exatamente porque ao longo de cinco anos a gente se queimou algumas vezes quando uma delas faltava.

Modos: o botão de volume grosso

Cada estratégia tem cinco estados: NORMAL, CAUTIOUS, MANUAL, PAUSED, EMERGENCY. A engine se comporta de forma diferente em cada um.

No NORMAL a estratégia vive sozinha. Calcula sinais, realoca pesos, manda ordens em maker mode, congela o deploy de capital sob o throttle de drawdown. O operador olha para a curva de patrimônio uma vez por semana e em geral não faz nada.

CAUTIOUS é o modo da paranoia. Os mesmos passos, mas qualquer rebalanceamento com movimento de capital acima de um limiar cai na fila HIL. A estratégia segue operando; só os deslocamentos grandes esperam aprovação. A gente liga isso antes do FOMC, antes do NFP, ou depois de uma noite ruim.

MANUAL significa que a estratégia para de abrir novas posições mas continua administrando as existentes. Útil quando você quer reforçar ou drenar exposição na mão sem desligar a estratégia toda. Stops e take-profits já parados continuam ativos.

PAUSED é uma parada completa. Sem novas operações, sem rebalanceamentos. As posições abertas ficam como estão até um comando explícito. Esse é o modo para viagens, férias, migrações de exchange, ou para quando você só quer observar o mercado sem suas mãos nele.

EMERGENCY é PAUSED automático mais force-close de todas as posições abertas. O algoritmo dispara isso sozinho em três casos: kill switch acionado, drawdown suavizado abaixo de −15%, ou a exchange devolveu 5+ erros num mesmo tick. Sair de EMERGENCY é manual, com aprovação explícita de admin.

A fila HIL: onde vive o seu “sim”

A fila HIL não é “o operador olha cada ordem.” É onde caem classes específicas de decisões — aquelas que a gente considerou pesadas demais para o automatismo.

São quatro. Qualquer movimento de capital entre cash, lado de portfólio e trading acima de um limiar — vai pra fila. Qualquer rebalanceamento de portfólio que mexa o peso de um ativo em mais de N pontos percentuais num tick — vai pra fila. Qualquer disparo de um limite manual que você mesmo configurou — vai pra fila. E qualquer tentativa da estratégia de sair das faixas de exposição predefinidas — também vai pra fila.

A fila vive no dashboard e no seu chat com Claude em paralelo. No dashboard você vê cards com a ação proposta, valor antigo e novo, e o raciocínio da engine. No Claude dá pra pegar a mesma fila com list_pending_approvals e resolver uma aprovação específica via approve_trade. As decisões caem no audit_log com uma marca de onde vieram — botão ou chat.

O que importa: enquanto uma aprovação fica pendente, a estratégia segue operando. Não bloqueia outras operações nem trava as outras engines. Só a ação específica que esbarrou num limite fica esperando.

Kill switch: o freio de emergência

O kill switch não é um modo. É uma flag global que joga uma estratégia (ou todas de uma vez) em EMERGENCY com force-close. Você aciona ela num caso só — quando alguma coisa parece errada e o motivo você descobre depois.

Arquiteturalmente o kill switch é uma linha no banco com dois campos: engaged: bool e reason: string. Todo tick da engine lê esse campo antes de qualquer sinal ou ação de trading. Se a flag está levantada, a engine primeiro fecha as posições a mercado (com notificação no chat), depois para. Sem problemas de ordem, sem race conditions.

Acionar o kill switch é de operador ou admin. Resetar é só admin, e apenas depois de comando explícito com motivo gravado. Isso é deliberado: você para o sistema com um gesto, religa com duas mãos e cabeça fria.

Onde fica a linha

A pergunta de desenho mais difícil: o que o algoritmo deve decidir sozinho e o que cai no operador. A gente chegou numa regra simples. O algoritmo decide tudo que cabe dentro de faixas predefinidas — bandas de pesos, limites de margem, tetos de turnover. O operador entra quando uma ação quer sair dessas faixas, ou quando as próprias faixas precisam mudar.

Em termos de responsabilidade: a metodologia responde pelas decisões trade-a-trade dentro das faixas. O operador responde pelas faixas e por qualquer mudança nelas. Algoritmo sem faixas é autotrading; faixas sem algoritmo é corretora eletrônica. inite.fund senta entre os dois.

Uma última coisa. Se uma semana passa sem nenhuma aprovação na fila HIL, isso não significa que você não é necessário. Significa que a engine está calibrada certo. O operador médio do inite.fund confirma 2-4 ações por semana; se sobe, a gente revisa as faixas. Se desce, a gente revisa também — um sistema que nunca pergunta normalmente não é um sistema onde você quer guardar dinheiro.

— inite team

Notas relacionadas
Todas as notas →