“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.
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.
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.
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