Binaryzando Todos os erros →

“Order timed out waiting for server confirmation”

Timeout de confirmação não significa que a ordem não foi. Significa que você não sabe. São coisas bem diferentes, e tratar as duas como iguais é o que transforma um aviso chato em entrada duplicada.

Erro no comando: Order 1771590505434 timed out waiting for server confirmation

O que está acontecendo

O seu código mandou a ordem e ficou esperando a resposta com o id da operação. A resposta não chegou dentro do tempo que você (ou a biblioteca) definiu, e o programa desistiu de esperar.

Repare no que isso não diz: não diz que a corretora recusou, nem que a ordem falhou. A mensagem pode ter chegado lá, sido aceita, e só a confirmação ter se perdido no caminho de volta. Do lado de cá, sucesso e falha têm exatamente o mesmo sintoma.

Como resolver

NUNCA reenvie por reflexo

Este é o erro que custa dinheiro de verdade. Um retry automático em cima de timeout de ordem pode abrir a mesma entrada duas vezes — e você só vai descobrir olhando o extrato. Timeout de leitura de vela pode repetir à vontade; timeout de ordem não.

Consulte antes de decidir qualquer coisa

Depois do timeout, o passo certo é perguntar à corretora o que ela tem: liste as operações abertas ou o histórico recente da conta e procure uma entrada naquele par, naquele valor, naquele minuto. Só depois decida se manda de novo.

Grave a intenção ANTES de enviar

Escreva num arquivo “vou abrir X, no par Y, às Z” antes da chamada, não depois. Se o programa morrer no meio, ao voltar ele sabe o que precisa conferir. Sem esse registro, toda queda no meio de uma ordem vira dinheiro no mercado que o seu robô esqueceu.

Ajuste o tempo de espera pro que a rede realmente faz

Timeout curto demais transforma lentidão normal em erro. Se você roda de casa, com Wi-Fi, o tempo de ida e volta oscila muito mais do que num servidor. Meça quanto costuma demorar de verdade e deixe folga — em vez de chutar 2 segundos porque estava assim no exemplo que você copiou.

Se acontece o tempo todo, o problema é outro

Timeout ocasional é rede. Timeout constante costuma ser conexão pendurada — ver Connection is already closed — ou o servidor recusando por excesso de chamadas.

Erros parecidos

Antes de deixar o robó operar

Consertar o erro faz o robô rodar — não faz ele ganhar. O Binaryzando testa a sua estratégia no histórico real de velas antes de você arriscar dinheiro nela, e sela o resultado numa carta com código verificável — para o número não poder ser editado depois.

Testar minha estratégia