Trading Bot: Nômade da Corte

A Engenharia de Elite Aplicada ao Mercado Financeiro

1. Arquitetura do Sistema

O Trading Bot não é apenas um script, mas um ecossistema complexo que une análise técnica, inteligência artificial e execução em tempo real. Ele foi projetado para operar 24/7 sem intervenção humana, utilizando uma "Blindagem de Integridade" para evitar operações em momentos de falha de dados.

Camada de Dados (Bybit API) Conexão direta com a exchange para buscar preços (Candles), Livro de Ordens (Order Book) e Saldo Real.
Camada Analítica (Motor Quantitativo) Processamento matemático de indicadores como EMA200, RSI, ADX e ATR para definir o regime de mercado.
Camada de Decisão (Tribunal de IA) O Google Gemini 1.5 Flash atua como o JUIZ final, validando se a análise técnica faz sentido com o contexto macro.

2. O Motor Python (Backend)

O coração do projeto está em backend/services/bybit_service.py. Ele gerencia toda a comunicação com a exchange. Abaixo está o código real da classe de integração, com as credenciais protegidas.

Python / Bybit ServiceCORE
import os
from pybit.unified_trading import HTTP

class BybitEngine:
    def __init__(self):
        # Credenciais carregadas de variáveis de ambiente por segurança
        self.api_key = os.getenv("BYBIT_API_KEY") # SUBST_SUA_CHAVE
        self.api_secret = os.getenv("BYBIT_API_SECRET") # SUBST_SEU_SECRET

        # Inicialização da Sessão Unificada (UTA)
        self.session = HTTP(
            testnet=False,
            api_key=self.api_key,
            api_secret=self.api_secret,
        )

    def get_candles(self, symbol="BTCUSDT", interval="1h", limit=100):
        """Busca velas históricas para análise técnica"""
        res = self.session.get_kline(
            category="spot",
            symbol=symbol,
            interval="60", # 1 hora
            limit=limit
        )
        return res['result']['list'] # Retorna lista de velas (OHLCV)

Análise para Iniciantes:

O código acima cria um "telefone" para falar com a corretora Bybit. O método get_candles pede para a corretora o histórico de preços (velas). Sem esse histórico, o bot não saberia se o preço subiu ou desceu.

3. Inteligência de Indicadores

No arquivo indicators.py, transformamos preços brutos em decisões lógicas. O bot utiliza a EMA200 (Média Móvel Exponencial de 200 períodos) para saber se a tendência de longo prazo é de alta ou baixa.

Python / Quantitative EngineMATH
def calculate_all(candles_1h):
    df = pd.DataFrame(candles_1h)

    # Média de 200 períodos: O divisor de águas
    df['ema200'] = df['close'].ewm(span=200, adjust=False).mean()

    # RSI: Indica se o mercado está "caro" ou "barato"
    # RSI > 70 (Sobrecompra) | RSI < 30 (Sobrevenda)
    delta = df['close'].diff()
    gain = (delta.where(delta > 0, 0)).rolling(window=14).mean()
    loss = (-delta.where(delta < 0, 0)).rolling(window=14).mean()
    df['rsi'] = 100 - (100 / (1 + (gain / loss)))

    # Regime de Mercado:
    last = df.iloc[-1]
    if last['close'] > last['ema200']:
        regime = "TENDÊNCIA DE ALTA"
    else:
        regime = "TENDÊNCIA DE BAIXA"
⚠️ Regra de Segurança: Se o bot detectar que o preço está muito longe da EMA200 ou que o volume está baixo (RVOL < 0.1), ele entra em modo de segurança e não abre ordens.

4. O Tribunal de IA (Gemini 1.5)

O grande diferencial deste projeto é o uso de Inteligência Artificial para filtrar sinais falsos. O bot envia todos os dados técnicos para o Gemini e pergunta: "Vale a pena entrar?".

Python / Gemini ServiceAI
class GeminiAnalyst:
    def analyze_trend(self, indicators):
        prompt = f"""
        Você é o JUIZ SUPREMO do Tribunal Nômade.
        Analise os dados e responda se devemos COMPRAR ou ESPERAR.
        DADOS: {indicators}
        Responda em JSON: {{"signal": "BUY", "score": 85, "reasoning": "..."}}
        """
        response = self.model.generate_content(prompt)
        return response.text

5. Dashboard Front-end

O controle do bot é feito via uma interface web de alta tecnologia, utilizando trading.html e market.html. Ela se conecta ao Firebase para mostrar os dados em tempo real sem que você precise atualizar a página.

HTML5 / JS / FirebaseUI/UX
<!-- Exemplo da lógica de monitoramento em tempo real -->
<script type="module">
    import { db } from './firebase-config.js';
    import { ref, onValue } from "https://www.gstatic.com/firebasejs/10.12.0/firebase-database.js";

    // Ouve o preço atual do Bitcoin no banco de dados
    onValue(ref(db, 'market/BTCUSDT/current'), (snapshot) => {
        const data = snapshot.val();
        document.getElementById('btc-price').innerText = `$ ${data.price}`;
    });
</script>
← Voltar para Documentos Adquirir este Projeto