Configuração Multi-Exchange (Binance, Bybit, OKX, MEXC) para o Bot Claude + TradingView

Configuração Multi-Exchange (Binance, Bybit, OKX, MEXC) para o Bot Claude + TradingView

 


Guia Completo: Bot de Trading com Claude, TradingView e Multi-Exchange (2026)

Este tutorial mostra como configurar o seu bot para trabalhar com Binance, Bybit, OKX ou MEXC de forma fácil e segura, usando uma única base de código.

1. Configuração da API Key na Binance (Passo a Passo Atualizado 2026)

O que você vai obter

  • API Key
  • Secret Key
  • Sem Passphrase

Passos detalhados:

  1. Acesse binance.com e faça login na sua conta.

  2. Clique no ícone do perfil (canto superior direito) → API Management.

  3. Clique no botão azul Create API → escolha System generatedNext.

  4. Dê um nome claro à chave, por exemplo: claude-trading-bot-prod.

  5. Complete a verificação de segurança (e-mail + 2FA).

  6. Configure as permissões com cuidado:

    PermissãoStatusRecomendação
    Enable ReadingONObrigatório
    Enable Spot & Margin TradingONPara trading spot
    Enable Futures TradingONPara futures/perpétuos
    Enable WithdrawalsOFFNunca ative (segurança)
    Restrict access to trusted IPsONAltamente recomendado
    • Ative a restrição de IP:
      • Abra outra aba e pesquise “what is my IP address”.
      • Copie seu IP atual e clique em Add IPConfirm.
  7. Clique em Save e confirme a verificação novamente.

  8. Copie imediatamente a API Key e a Secret Key (a secret aparece só uma vez!).

⚠️ Aviso de Segurança: Nunca compartilhe essas chaves. Use um gerenciador de senhas (Bitwarden, 1Password, etc.).


2. Atualização do Arquivo .env

env
# ====================== # EXCHANGE CONFIGURATION # ====================== EXCHANGE=binance # Opções: binance, bybit, okx, mexc TRADE_MODE=paper # paper ou live # ====================== # BINANCE API KEYS # ====================== BINANCE_API_KEY=xxxxxxxxxx BINANCE_API_SECRET=xxxxxxxxxx BINANCE_PASSPHRASE= # Deixe vazio # ====================== # BYBIT (se for usar) # ====================== # BYBIT_API_KEY=... # BYBIT_API_SECRET=... # ====================== # OUTRAS CONFIGURAÇÕES # ====================== MAX_POSITION_PERCENT=1.5 MAX_DAILY_DRAWDOWN_PERCENT=5.0 TELEGRAM_BOT_TOKEN=... TELEGRAM_CHAT_ID=...

3. Arquivo exchange/client.py (Versão Completa Multi-Exchange)

Python
# exchange/client.py
import ccxt
import os
import logging
from typing import Optional

logger = logging.getLogger(__name__)

def get_exchange() -> ccxt.Exchange:
    """
    Retorna instância configurada do CCXT para a exchange selecionada.
    Suporta: binance, bybit, okx, mexc
    """
    exchange_name = os.getenv("EXCHANGE", "binance").lower().strip()
    trade_mode = os.getenv("TRADE_MODE", "paper").lower()
    
    # Carrega credenciais dinamicamente
    api_key = os.getenv(f"{exchange_name.upper()}_API_KEY")
    api_secret = os.getenv(f"{exchange_name.upper()}_API_SECRET")
    passphrase = os.getenv(f"{exchange_name.upper()}_PASSPHRASE")

    if not api_key or not api_secret:
        raise ValueError(f"API Key/Secret não configuradas para {exchange_name}")

    config = {
        'apiKey': api_key,
        'secret': api_secret,
        'enableRateLimit': True,
        'options': {
            'defaultType': 'future' if trade_mode == 'futures' else 'spot',
        }
    }

    if passphrase:
        config['password'] = passphrase  # Usado por OKX e BitGet

    # === Criação da exchange ===
    exchanges = {
        "binance": ccxt.binance,
        "bybit": ccxt.bybit,
        "okx": ccxt.okx,
        "mexc": ccxt.mexc,
    }

    if exchange_name not in exchanges:
        raise ValueError(f"Exchange '{exchange_name}' não suportada. Use: {list(exchanges.keys())}")

    exchange_class = exchanges[exchange_name]
    exchange = exchange_class(config)

    # === Modo Paper Trading (Testnet) ===
    if trade_mode == "paper":
        if exchange_name == "binance":
            exchange.set_sandbox_mode(True)
            logger.info("🔬 Binance Testnet (Paper Trading) ativado")
        elif exchange_name == "bybit":
            exchange.urls['api']['rest'] = 'https://testnet-api.bybit.com'
            logger.info("🔬 Bybit Testnet ativado")
        elif exchange_name == "okx":
            exchange.urls['api']['rest'] = 'https://www.okx.com/api/v5'
            # OKX usa flag separada para demo
            exchange.options['sandbox'] = True
            logger.info("🔬 OKX Demo (Paper) ativado")
        else:
            logger.warning(f"Paper trading para {exchange_name} ainda não totalmente implementado")

    logger.info(f"✅ Exchange carregada: {exchange_name.upper()} | Modo: {trade_mode.upper()}")
    return exchange


# Função auxiliar para testar conexão
async def test_connection():
    exchange = get_exchange()
    try:
        balance = exchange.fetch_balance()
        print(f"✅ Conexão OK - Saldo disponível: {balance.get('total', {})}")
    except Exception as e:
        print(f"❌ Erro de conexão: {e}")

4. Atualização do requirements.txt

txt
fastapi==0.115.0 uvicorn[standard]==0.30.6 python-dotenv==1.0.1 httpx==0.27.0 sqlalchemy==2.0.35 alembic==1.13.2 psycopg2-binary==2.9.9 pandas==2.2.2 python-telegram-bot==21.4 pillow==10.4.0 ccxt==4.4.0 # Versão atualizada tenacity==9.0.0 structlog==24.4.0 httpx[http2] # Melhor performance

5. Atualizações Recomendadas no README.md

Adicione esta seção no início do README:

Markdown
## 🌐 Suporte Multi-Exchange

O bot agora suporta nativamente:
- **Binance** (recomendado para alta liquidez)
- **Bybit** (melhor para futures)
- **OKX**
- **MEXC** (taxas muito baixas)

### Como trocar de exchange
1. Altere `EXCHANGE=binance` no arquivo `.env`
2. Coloque as chaves da exchange escolhida
3. Reinicie o container Docker

### Exchanges suportadas atualmente
| Exchange | Spot | Futures | Paper Trading | Recomendado para |
|----------|------|---------|---------------|------------------|
| Binance  | Yes  | Yes     | Yes           | Liquidez         |
| Bybit    | Yes  | Yes     | Excelente     | Futures          |
| OKX      | Yes  | Yes     | Good          | Performance      |
| MEXC     | Yes  | Yes     | Good          | Taxas baixas     |
Compartilhar:

Comentários