Se você já conseguiu logar na IQ Option com a iqoptionapi e puxar velas, o próximo passo natural é o que mais gera dúvida: como enviar uma ordem e depois saber se ganhou ou perdeu. Neste guia direto e honesto de 2026 você vai ver os métodos buy() (opções binárias) e buy_digital_spot() (opções digitais), como capturar o id da operação e como acompanhar o resultado com check_win_v4() — sempre em conta demo, que é onde esse tipo de teste deve viver.

Quer pular a parte chata de configurar tudo na mão e ver um fluxo de automação já montado para a IQ Option?

Ver o guia de automação da IQ Option em Python →

O que a iqoptionapi realmente é (e o que ela não é)

A iqoptionapi é uma biblioteca não oficial mantida pela comunidade que conversa com os servidores da IQ Option por WebSocket. Ela não é um produto da corretora, pode quebrar quando a plataforma muda algo internamente, e não tem qualquer garantia de funcionamento. Use-a como ferramenta de estudo de automação — não como “máquina de dinheiro”.

Antes de começar: instale com pip install -U iqoptionapi, use uma conta PRACTICE e nunca rode código de terceiros com credenciais da sua conta real sem entender cada linha.

Passo 1 — Conectar e escolher a conta demo

Tudo começa com o login e a troca para a conta de prática. Confirme que a conexão deu certo antes de enviar qualquer ordem:

from iqoptionapi.stable_api import IQ_Option
import time

api = IQ_Option("seu_email", "sua_senha")
status, reason = api.connect()
print("Conectado?", status, reason)

# SEMPRE em demo para testar
api.change_balance("PRACTICE")
print("Saldo demo:", api.get_balance())

Passo 2 — Enviar ordem binária com buy()

O método buy() serve para opções binárias clássicas. A assinatura é buy(valor, ativo, direcao, expiracao), onde direcao é "call" (alta) ou "put" (baixa) e expiracao é em minutos. Ele retorna uma tupla (status, id):

valor = 1          # valor da entrada
ativo = "EURUSD"   # par
direcao = "call"   # "call" ou "put"
expiracao = 1      # minutos

ok, order_id = api.buy(valor, ativo, direcao, expiracao)
if ok:
    print("Ordem enviada. ID:", order_id)
else:
    print("Falha ao enviar a ordem")
Dica: guarde sempre o order_id. Sem ele você não consegue consultar o resultado depois. Se ok vier False, normalmente é ativo fechado, payout indisponível ou valor abaixo do mínimo.

Passo 3 — Acompanhar o resultado com check_win_v4()

Depois de enviar, você espera a vela fechar e consulta o desfecho. O check_win_v4() é o método recomendado nas versões atuais: ele devolve o status da operação e o lucro/prejuízo. Faça isso de forma bloqueante apenas em estudo:

resultado, lucro = api.check_win_v4(order_id)

if lucro > 0:
    print(f"WIN — lucro de {lucro:.2f}")
elif lucro == 0:
    print("EMPATE (devolução)")
else:
    print(f"LOSS — perda de {abs(lucro):.2f}")

O retorno de lucro já vem líquido: positivo é ganho, zero é empate (stake devolvido) e negativo é perda. Em loops reais, prefira checar de forma assíncrona em vez de travar o programa esperando cada vela.

E as opções digitais? Use buy_digital_spot()

As digitais têm um fluxo separado. A entrada é feita com buy_digital_spot(ativo, valor, direcao, expiracao) e o resultado é consultado com check_win_digital_v2(id):

ok, order_id = api.buy_digital_spot("EURUSD", 1, "call", 1)

if ok:
    # aguarda fechar e consulta
    fechado = False
    while not fechado:
        fechado, lucro = api.check_win_digital_v2(order_id)
        time.sleep(1)
    print("Resultado digital:", lucro)
Binária x digital: não misture os métodos. buy() + check_win_v4() para binárias; buy_digital_spot() + check_win_digital_v2() para digitais. Trocar um pelo outro é a causa nº 1 de “id não encontrado”.

Erros comuns ao enviar ordens

Os tropeços mais frequentes são: tentar comprar com a sessão desconectada (cheque status do connect()), usar um ativo fechado no horário, valor abaixo do mínimo permitido, e esquecer de trocar para PRACTICE — o que faria a ordem ir para a conta real. Sempre valide o retorno booleano antes de seguir.

FAQ

A iqoptionapi é oficial? Não. É um projeto da comunidade, sem suporte da corretora, e pode parar de funcionar a qualquer momento.

Dá para garantir lucro automatizando? Não. Automação só executa regras; ela não muda o fato de que opções binárias têm valor esperado negativo para o trader na maioria dos cenários.

Posso testar sem arriscar dinheiro? Sim, e deve. Use change_balance("PRACTICE") e mantenha tudo em conta demo.

Qual a diferença entre buy() e buy_digital_spot()? O primeiro envia opções binárias; o segundo, opções digitais. Cada um tem seu próprio método de verificação de resultado.

Aviso: opções binárias e digitais são produtos de altíssimo risco e a maioria dos investidores de varejo perde dinheiro. Este conteúdo é educacional e técnico, não constitui recomendação de investimento, oferta ou promessa de retorno. Bibliotecas não oficiais podem violar os termos de uso da plataforma e parar de funcionar sem aviso. Teste sempre em conta demo antes de qualquer uso com dinheiro real.