Binaryzando Todos os erros →

“asset is not available”: o par está fechado, não quebrado

Na maioria das vezes não há nada errado com o seu código: o par simplesmente não está aberto neste momento, ou você pediu o nome errado dele.

asset is not available / ERROR: the asset EURUSD is not available at this moment

As três causas, em ordem de frequência

1. O mercado está fechado

Pares de moeda real seguem o horário do mercado mundial: fecham na sexta à noite e abrem no domingo à noite, com pausas diárias. Robô que roda 24 horas vai bater nisso todo fim de semana.

2. Você pediu o par normal, mas o aberto é o OTC (ou o contrário)

Fim de semana quase sempre só tem OTC — e OTC é um ativo diferente, com nome diferente e preço próprio. EURUSD e EURUSD-OTC não são o mesmo ativo, e uma estratégia medida num raramente vale no outro.

3. A biblioteca não conhece o ativo

Se o ativo é novo, o nome dele pode não existir na tabela de constantes da biblioteca. Isso costuma vir junto com “not found consts”.

Como resolver

Pergunte à corretora o que está aberto, em vez de supor

A própria API responde. Consulte antes de cada ciclo e opere só no que estiver aberto de verdade:

abertos = api.get_all_open_time()

# 'turbo', 'binary' ou 'digital', conforme o que você opera
if abertos['turbo']['EURUSD']['open']:
    print('pode operar')
else:
    print('fechado agora')

Escolha o nome certo automaticamente

Em vez de escrever o par fixo no código, deixe o robô cair pro OTC quando o normal estiver fechado — e saiba em qual dos dois está:

def par_disponivel(api, base='EURUSD', tipo='turbo'):
    abertos = api.get_all_open_time()
    for nome in (base, base + '-OTC'):
        info = abertos.get(tipo, {}).get(nome)
        if info and info['open']:
            return nome
    return None

Trate o fechado como estado normal, não como falha

Mercado fechado não é erro: é sábado. O robô deve dormir e tentar depois, sem derrubar o processo nem encher o log de exceção.

O detalhe que muda o resultado

Backtest feito em dado do par normal não vale para o OTC. O OTC tem comportamento próprio e volatilidade própria. Se a sua estratégia foi medida em EURUSD e o robô opera EURUSD-OTC no fim de semana, o número que você confiava não descreve o que está acontecendo.

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