“not found consts”: a biblioteca não conhece esse ativo
A biblioteca traduz o nome do ativo (EURUSD) para o número que a corretora usa por dentro. Quando o nome não está na tabela dela, ela imprime isso e devolve nada.
De onde vem
Dentro da biblioteca existe um dicionário fixo ligando nome do ativo ao identificador numérico. Ele foi escrito à mão, num dia específico, com os ativos que existiam naquele dia. A corretora, porém, cria par novo, cria versão OTC, renomeia. Quando isso acontece, a tabela fica para trás e qualquer ativo novo cai nessa mensagem.
É um sintoma de biblioteca desatualizada, não de código errado — e por isso acontece igual com todo mundo que instalou a mesma versão.
Como resolver
Veja o que a tabela conhece hoje
from iqoptionapi.constants import ACTIVES
print(len(ACTIVES))
print([a for a in ACTIVES if 'EUR' in a])
Se o seu ativo não aparecer nessa lista, achamos a causa.
Pergunte o identificador certo à própria corretora
A tabela está velha, mas a API responde o estado atual. Dá para descobrir o nome exato dos ativos abertos agora:
abertos = api.get_all_open_time()
for nome, info in abertos['turbo'].items():
if info['open']:
print(nome)
Use o nome exatamente como ela devolveu — maiúsculas,
hífen e sufixo -OTC inclusive.
Complete a tabela em vez de editar a biblioteca
Editar o arquivo dentro de site-packages funciona até a próxima
reinstalação apagar tudo. Melhor acrescentar no seu próprio
código, que sobrevive:
from iqoptionapi.constants import ACTIVES
ACTIVES.setdefault('EURUSD-OTC', 76) # id conforme a corretora
Atualize a biblioteca antes de gambiarra
Se existe versão mais nova, ela provavelmente já traz o ativo. Vale checar antes de manter uma lista paralela sua para sempre.
Ativo desconhecido também dispara “asset is not available”. Se os dois aparecem juntos, resolva este primeiro.
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