Erros comuns em robôs de opções binárias
Quase todo erro que trava um robô de binárias em Python é de ambiente ou de biblioteca — e não do código que você escreveu. São os mesmos punhados de mensagens, porque todo mundo instalou as mesmas bibliotecas. Aqui estão elas, com o conserto de cada uma.
Não instala / não roda
- Versão do Python incompatívelPor que bibliotecas de corretora quebram no Python 3.12+ e qual versão usar sem virar refem de uma instalação antiga.
- pip install não funciona'pip não é reconhecido', permissão negada, erro de build, instalou mas não importa: as causas comuns e o conserto de cada uma.
- ta-lib não instalaPor que pip install ta-lib falha, como instalar no Windows e no Linux, e quando trocar por uma alternativa em Python puro.
- websocket-client versão erradaPor que a biblioteca da corretora exige websocket-client 0.59.0 e como consertar sem quebrar seus outros projetos.
- not found constsPor que a biblioteca da corretora imprime 'not found consts' e como adicionar o ativo que falta na tabela de constantes.
Não conecta, ou cai no meio
- Conecta no navegador mas o robô não conectaPor que o login funciona no site e falha na biblioteca: sessão presa, protocolo alterado, bloqueio por IP e versão desatualizada.
- Diz que a senha ou e-mail está incorreto, mas está certoPor que o login do robô falha com credencial correta: caracteres invisíveis no arquivo, verificação em duas etapas e sessão presa.
- Connection is already closedPor que o WebSocket da corretora cai no meio da operação e como reconectar sem perder o robô rodando.
- JSONDecodeErrorPor que o erro de JSON quase nunca é erro de JSON — e como ver o que a corretora realmente respondeu.
A ordem não sai (ou sai errada)
- asset is not availablePor que a corretora recusa o ativo, a diferença entre par normal e OTC e como checar o horário de abertura antes de operar.
- invalid instrument (error_place_digital_order)Por que a ordem digital é recusada com ‘invalid instrument’ mesmo com o par aberto, e como montar o nome do instrumento certo.
- Order timed out waiting for server confirmationO que fazer quando a ordem sai mas a confirmação não volta — e por que reenviar é o erro mais caro dessa situação.
- A expiração sai 1 hora em vez de 1 minutoPor que a ordem entra com expiração muito maior que a pedida — segundos x minutos, horário de fecho e a janela em que a corretora só aceita a próxima.
- robô para de operar depois da primeira entradaPor que o loop principal para de gerar sinal depois da primeira ordem, e como diferenciar isso de um erro de conexão de verdade.
- robô simula a entrada mas não executa na corretoraDiferença entre chamar a função de compra de verdade e só registrar a intenção de entrada — o erro mais silencioso do nicho, porque o robô parece estar funcionando.
O resultado não bate
- check_win_v4 travadoPor que o método que confere win/loss pendura o robô e como apurar o resultado pela vela em vez de esperar a corretora responder.
- A vela fechou da cor certa mas a operação deu lossPor que o resultado da operação não segue a cor da vela do gráfico: preço de referência, atraso de milissegundos e empate.
- Entrada recusada sendo contada como lossPor que ordem recusada, par fechado e queda de conexão viram derrota no placar, e como separar ‘perdeu’ de ‘não operou’.
- get_candles retorna None (NoneType não é iterável)Por que a busca de velas devolve None em vez da lista, por que tratar com um if resolve pela metade e o que fazer pra não ficar sem nenhum ativo no fim.
- catalogador atualiza os pares mas as entradas continuam nos antigosPor que o loop de entrada pode estar lendo uma lista de pares que ficou em memória, separada da lista que o catalogador acabou de atualizar.
Lentidão e limites
- Robô travando ou muito lentoPor que o robô fica lento ou parece congelar: espera bloqueante, varredura em série, gráfico no laço principal e threads mal colocadas.
- Delay de vários segundos entre o robô e a corretoraDe onde vem o atraso entre decidir e a ordem chegar, quanto disso é rede e quanto é o seu código, e como medir em vez de chutar.
- Telegram 429: Too Many RequestsComo respeitar o retry_after do Telegram, quais são os limites reais de mensagens e como enfileirar envios sem tomar bloqueio.
Não achou o seu erro?
Esta lista cobre os erros de ambiente — os que são iguais para todo mundo. Erro que depende da lógica particular do seu robô não entra aqui, porque a resposta seria diferente para cada pessoa.
Se a sua dúvida não é de código e sim de estratégia — quanto de assertividade presta, se backtest em OTC vale alguma coisa, como funciona o Masaniello — ela está em perguntas do pessoal.
Conhecer o Binaryzando