🐍 Tutorial Avançado

Python + Deriv API: Como Criar Seu Primeiro Robô de Trading Automatizado

Por Dan Machado · Atualizado em Abril 2026 · Leitura: 20 min · Nível: Avançado

📋 Resumo Rápido

  • A Deriv oferece API oficial com WebSocket — a única corretora de opções com API documentada
  • Você pode criar robôs em Python que operam automaticamente na conta demo ou real
  • A IA (ChatGPT/Claude) pode gerar o código do robô inteiro para você
  • Este tutorial vai do zero ao robô funcionando com código pronto para copiar
  • Tudo testado em conta demo — sem risco

⚠️ Pré-requisitos

Este tutorial é para nível avançado. Você precisa ter Python instalado no computador e noções básicas de linha de comando. Se nunca programou, comece pelo Deriv Bot (sem código).

⚡ Para seguir este tutorial, você precisa de uma conta Deriv + token de API.

Criar Conta Deriv Grátis →

1. Por que a Deriv API?

A Deriv é a única corretora de opções binárias com API oficial. Isso significa:

RecursoDeriv APIIQ Option API
TipoOficialNão-oficial (comunidade)
DocumentaçãoCompleta (api.deriv.com)Parcial (GitHub)
AutenticaçãoOAuth 2.0 + TokenLogin/senha direto
Risco de bloqueioZero — incentivadaPossível
ProtocoloWebSocket (tempo real)WebSocket
SuporteOficial + comunidadeApenas comunidade

2. Configuração inicial

01

Crie sua conta Deriv

Acesse deriv.com e crie uma conta. A conta demo é ativada automaticamente.

02

Gere um API Token

Vá para api.deriv.com → Dashboard → API Token Manager. Crie um token com permissões: Read, Trade, Payments. Copie e guarde — você vai usar no código.

03

Instale as dependências Python

Abra o terminal e rode:

Terminal 📋 Copiar
pip install websockets asyncio

3. Seu primeiro robô — código completo

Este robô se conecta à Deriv via WebSocket, verifica o saldo da conta demo e executa uma operação Rise/Fall no Volatility 75 Index.

Python — Robô Deriv API 📋 Copiar
"""
Robô de Trading — Deriv API + Python
IA Trader Pro — iatraderpro.com
Autor: Dan Machado
 
IMPORTANTE: Use apenas em conta DEMO!
"""
 
import asyncio
import json
import websockets
 
# ============================================
# CONFIGURAÇÕES — Edite aqui
# ============================================
API_TOKEN = "SEU_TOKEN_AQUI"  # Cole seu token da Deriv API
SYMBOL = "R_75"               # Volatility 75 Index
CONTRACT_TYPE = "CALL"        # CALL = Rise, PUT = Fall
DURATION = 5                  # Duração em ticks
DURATION_UNIT = "t"           # t = ticks, s = seconds, m = minutes
STAKE = 1.0                   # Valor da aposta em USD
CURRENCY = "USD"              # Moeda da conta
NUM_TRADES = 5                # Número de trades para executar
 
API_URL = "wss://ws.derivws.com/websockets/v3?app_id=1089"
 
# ============================================
# FUNÇÕES DO ROBÔ
# ============================================
 
async def connect_and_trade():
    """Conecta à Deriv API e executa trades."""
    
    async with websockets.connect(API_URL) as ws:
        
        # 1. Autenticar com token
        print("🔐 Autenticando...")
        await ws.send(json.dumps({
            "authorize": API_TOKEN
        }))
        auth_response = json.loads(await ws.recv())
        
        if "error" in auth_response:
            print(f"❌ Erro de autenticação: {auth_response['error']['message']}")
            return
        
        balance = auth_response["authorize"]["balance"]
        account = auth_response["authorize"]["loginid"]
        print(f"✅ Conectado! Conta: {account} | Saldo: ${balance}")
        
        # 2. Verificar se o ativo está disponível
        print(f"\n📊 Verificando ativo {SYMBOL}...")
        await ws.send(json.dumps({
            "active_symbols": "brief",
            "product_type": "basic"
        }))
        symbols_response = json.loads(await ws.recv())
        
        symbol_found = False
        for sym in symbols_response.get("active_symbols", []):
            if sym["symbol"] == SYMBOL:
                symbol_found = True
                print(f"✅ Ativo encontrado: {sym['display_name']}")
                break
        
        if not symbol_found:
            print(f"❌ Ativo {SYMBOL} não encontrado ou indisponível")
            return
        
        # 3. Executar trades
        wins = 0
        losses = 0
        total_profit = 0
        
        for i in range(NUM_TRADES):
            print(f"\n{'='*40}")
            print(f"🤖 Trade {i+1}/{NUM_TRADES}")
            print(f"{'='*40}")
            
            # Comprar contrato
            print(f"📈 Comprando {CONTRACT_TYPE} | Stake: ${STAKE} | Duração: {DURATION}{DURATION_UNIT}")
            
            await ws.send(json.dumps({
                "buy": 1,
                "price": STAKE,
                "parameters": {
                    "contract_type": CONTRACT_TYPE,
                    "symbol": SYMBOL,
                    "duration": DURATION,
                    "duration_unit": DURATION_UNIT,
                    "currency": CURRENCY,
                    "basis": "stake",
                    "amount": STAKE
                }
            }))
            
            buy_response = json.loads(await ws.recv())
            
            if "error" in buy_response:
                print(f"❌ Erro na compra: {buy_response['error']['message']}")
                continue
            
            contract_id = buy_response["buy"]["contract_id"]
            buy_price = buy_response["buy"]["buy_price"]
            print(f"✅ Contrato aberto! ID: {contract_id} | Preço: ${buy_price}")
            
            # Aguardar resultado
            print("⏳ Aguardando resultado...")
            
            # Subscrever para atualizações do contrato
            await ws.send(json.dumps({
                "proposal_open_contract": 1,
                "contract_id": contract_id,
                "subscribe": 1
            }))
            
            # Esperar até o contrato fechar
            while True:
                response = json.loads(await ws.recv())
                
                if "proposal_open_contract" in response:
                    contract = response["proposal_open_contract"]
                    
                    if contract.get("is_sold"):
                        profit = contract["profit"]
                        total_profit += profit
                        
                        if profit > 0:
                            wins += 1
                            print(f"🟢 LUCRO: +${profit:.2f}")
                        else:
                            losses += 1
                            print(f"🔴 PERDA: ${profit:.2f}")
                        
                        # Cancelar subscrição
                        if "id" in response.get("subscription", {}):
                            await ws.send(json.dumps({
                                "forget": response["subscription"]["id"]
                            }))
                            await ws.recv()
                        break
            
            # Pausa entre trades
            await asyncio.sleep(2)
        
        # 4. Resumo final
        print(f"\n{'='*40}")
        print(f"📊 RESUMO FINAL")
        print(f"{'='*40}")
        print(f"Total de trades: {NUM_TRADES}")
        print(f"Vitórias: {wins} ✅")
        print(f"Derrotas: {losses} ❌")
        print(f"Taxa de acerto: {(wins/NUM_TRADES)*100:.1f}%")
        print(f"Lucro/Prejuízo total: ${total_profit:.2f}")
        print(f"{'='*40}")
 
# ============================================
# EXECUTAR
# ============================================
if __name__ == "__main__":
    print("🤖 IA Trader Pro — Robô Deriv API")
    print("📌 MODO: Conta Demo")
    print("⚠️  Use apenas para fins educacionais\n")
    asyncio.run(connect_and_trade())

4. Como rodar

01

Salve o código

Crie um arquivo chamado deriv_bot.py e cole o código acima. Substitua SEU_TOKEN_AQUI pelo seu token real.

02

Execute no terminal

python deriv_bot.py — O robô vai conectar, autenticar e executar 5 trades automaticamente.

03

Analise os resultados

No final, o robô mostra: trades executados, taxa de acerto, lucro/prejuízo total. Tudo em conta demo.

5. Personalizando com IA

Agora que você tem a base funcionando, use ChatGPT ou Claude para turbinar:

🤖 Prompt para a IA

Tenho este robô Python para a Deriv API [cole o código]. Modifique para: 1. Adicionar RSI como indicador (comprar CALL quando RSI < 30, PUT quando RSI > 70) 2. Implementar stop loss de $50 total 3. Implementar take profit de $25 total 4. Salvar resultados em um arquivo CSV 5. Adicionar Martingale (dobrar stake após perda, voltar ao original após lucro, máximo 3 dobras) Mantenha os comentários em português e adicione logs detalhados.

A IA vai reescrever o código inteiro com todas essas funcionalidades. Esse é o poder de combinar Python + Deriv API + IA.

6. Referência da API

EndpointO que faz
authorizeAutenticar com token
active_symbolsListar ativos disponíveis
ticksStream de preços em tempo real
buyComprar contrato (opção/CFD)
sellVender contrato antes do vencimento
proposalSimular preço de contrato
proposal_open_contractStatus de contrato aberto
balanceConsultar saldo
transactionStream de transações
profit_tableHistórico de lucros/perdas

Documentação completa: api.deriv.com

⚠️ Aviso importante

Este código é para fins educacionais. Sempre use em conta demo primeiro. Robôs de trading podem perder dinheiro. Nunca opere com capital que não pode perder. Teste extensivamente antes de considerar conta real.

🚀 Precisa de conta Deriv + token API? Crie grátis em 2 minutos.

Criar Conta Deriv Grátis →

IQ Option? Veja Python + IQ Option API (não-oficial)

DM

Dan Machado

Especialista em IA + Trading. Mais em Comece Aqui.

⚠️ Trading envolve risco. Código educacional. Contém links de afiliado para Deriv. Disclaimer.

Posts Similares