O robô mostra a entrada no log mas ela não aparece na corretora
O sintoma existe quando o código registra a decisão de entrar (log, print, contador) num ponto anterior à chamada real de compra — e essa chamada real falha, cai num except silencioso, ou nem existe ainda.
Onde procurar primeiro
Ache no código a linha que efetivamente chama a compra (tipicamente algo como
api.buy(...) ou api.buy_digital_spot(...)). Se o log “entrada
feita” aparece antes dessa chamada, ou se a chamada está dentro de um
try/except que engole o erro sem imprimir nada, o log está mentindo pro
usuário — ele registra a intenção, não o resultado.
print('entrada feita:', ativo) # roda sempre
try:
api.buy(valor, ativo, direcao, exp)
except Exception:
pass # <- erro real desaparece aqui
Como resolver
Loggue o RETORNO da compra, nunca a tentativa
A maioria das bibliotecas devolve um par (sucesso, id_ordem). Só
imprima “entrada feita” quando sucesso for verdadeiro:
ok, id_ordem = api.buy(valor, ativo, direcao, exp)
if ok:
print('entrada confirmada:', id_ordem)
else:
print('entrada RECUSADA:', id_ordem)
Nunca deixe um except sem imprimir o erro
Troque todo except: pass por, no mínimo,
except Exception as e: print('falhou:', e). Erro escondido é o
motivo mais comum de robô parecer funcionar sem funcionar.
Confira se a conta usada é a mesma da tela
Bot autenticado na conta demo enquanto a corretora está aberta na conta real (ou vice-versa) produz exatamente esse sintoma: opera em algum lugar, só que não no que você está olhando.
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