Binaryzando Todos os erros →

“invalid instrument” ao abrir ordem digital

A ordem binária funciona e a digital não. Não é o par que está fechado: é que operação digital não usa o nome do par — usa o nome do instrumento, que inclui o horário de expiração. Se esse horário já passou, o instrumento simplesmente não existe mais.

Erro ao abrir a ordem {'code': 'error_place_digital_order', 'message': 'invalid instrument'}

O que está acontecendo

Operação binária (“turbo”) e operação digital são produtos diferentes por dentro. Na binária você manda par + duração e a corretora resolve o resto. Na digital, cada expiração é um instrumento próprio, com nome próprio, que nasce e morre no relógio — a expiração das 14h05 é um instrumento, a das 14h06 é outro.

Quando o seu código monta esse nome com o minuto errado, ou monta certo mas demora um pouco pra enviar, o instrumento que você pediu já expirou. A corretora responde a única coisa que pode responder: esse instrumento não é válido. Por isso o erro parece intermitente — funciona quando você roda no começo do minuto e falha quando roda no fim.

Como resolver

Confirme que você está mesmo querendo digital

Se a sua estratégia só precisa de “sobe ou desce em 1 minuto”, a operação binária resolve e não tem esse problema de nome. Muita gente foi parar na função digital copiando código de outra pessoa, sem precisar.

Monte a expiração pelo relógio do servidor, não pelo seu

O relógio do seu computador pode estar segundos à frente ou atrás. Se a biblioteca oferece o horário do servidor da corretora, use ele pra calcular o minuto de expiração — um deslocamento de poucos segundos já muda o instrumento.

Peça a lista de instrumentos abertos antes de mandar a ordem

Em vez de construir o nome e torcer, consulte quais instrumentos digitais estão disponíveis naquele momento e escolha um da lista. É uma chamada a mais e mata a classe inteira desse erro.

Não mande ordem nos últimos segundos do minuto

Se a sua lógica decide a entrada em cima da virada da vela, deixe uma margem. Enviar a 0,5 segundo do fecho é pedir pra cair na janela em que o instrumento acabou de expirar — e aí não é bug do seu código, é física.

Não confunda com “asset is not available”

Aquele erro fala do par (fechado, nome errado, OTC x aberto). Este fala do instrumento digital (expiração que não existe mais). Sintoma parecido, causa diferente — ver asset is not available.

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