AlgoVesta › Glossário › Idempotência

Execução de Ordens

Idempotência

Idempotência significa que realizar a mesma operação mais de uma vez tem o mesmo efeito que realizá-la uma única vez; na automação de negociação é a propriedade de que um sinal entregue duas vezes, ou uma requisição de ordem enviada duas vezes após um erro de rede, resulta em uma posição, não em duas.

Por que isso importa

Duplicatas são normais em sistemas de mensagens: o Telegram pode entregar uma mensagem editada como um novo evento, um remetente de webhook tenta novamente quando não recebe uma confirmação rápida, e um trader pode clicar em "enviar sinal de teste" duas vezes. Sem idempotência, cada duplicata se torna uma ordem real com margem real. O problema é pior justamente quando o sistema está sob estresse, durante lentidões e indisponibilidades da plataforma, que é quando as novas tentativas e entregas duplicadas se multiplicam.

Como a AlgoVesta lida com isso

A AlgoVesta aplica idempotência em vários pontos. As mensagens recebidas do Telegram são registradas pelo seu identificador de mensagem, para que a mesma mensagem não seja processada duas vezes. Uma proteção contra duplicidade rejeita um segundo sinal para a mesma conta, símbolo e direção dentro de uma janela curta, o que absorve republicações e cliques duplos; a rejeição é registrada com seu motivo em vez de ser descartada silenciosamente. As colocações de ordens não são repetidas cegamente após falhas ambíguas; a plataforma concilia com as posições e o histórico de negociações da exchange para decidir se uma ordem realmente existe antes de agir novamente. Cada estratégia tem seu próprio token de webhook, e cada execução está vinculada ao sinal que a causou, para que o mesmo sinal não possa ser executado por dois caminhos. Veja lógica de novas tentativas e a página do bot para TradingView.

Exemplo

Um alerta do TradingView é configurado em um gráfico de um minuto e, por causa de uma configuração da estratégia, dispara duas vezes dentro da mesma barra com uma mensagem idêntica. A primeira requisição abre uma posição comprada em ETHUSDT. A segunda chega 20 segundos depois e é rejeitada pela proteção contra duplicidade por ser o mesmo símbolo e direção dentro da janela; ela aparece no log de sinais como bloqueada com o motivo de duplicidade, e nenhuma segunda posição é aberta.

Erros comuns

Na prática

Veja como a AlgoVesta automatiza isso