# REXMULTITRADE - Guia de Customização

## 🔧 Como Adicionar Novas Funcionalidades

### 1. Adicionar Novo Indicador

Adicione no método `AnalisadorMercado`:

```python
def calcular_macd(self, closes, fast=12, slow=26, signal=9):
    """Calcula MACD"""
    # Implementação aqui
    return {'macd': macd_linha, 'signal': sinal_linha, 'histogram': histograma}
```

Depois use na estratégia:

```python
def dever_comprar(self, symbol, dados_candles, analise_padroes):
    # ... código existente ...
    
    # Adicionar verificação MACD
    macd = self.analisador.calcular_macd(dados_candles['closes'])
    if macd['histogram'] < 0:
        return False, "MACD negativo"
    
    return True, "Todas as condições atendidas"
```

### 2. Modificar Estratégia de Entrada

Em `EstrategiaTrading.dever_comprar()`:

```python
def dever_comprar(self, symbol, dados_candles, analise_padroes):
    rsi = self.analisador.calcular_triple_rsi(dados_candles['closes'])
    
    # Exemplo: Comprar quando RSI está entre 25-35 (mais agressivo)
    rsi_min = 25
    rsi_max = 35
    
    if not (rsi_min <= rsi['rsi_5'] <= rsi_max):
        return False, "RSI fora do intervalo"
    
    # ... resto do código ...
```

### 3. Adicionar Notificações (Discord/Telegram)

Crie novo módulo `notificacoes.py`:

```python
import requests

class NotificadorDiscord:
    def __init__(self, webhook_url):
        self.webhook_url = webhook_url
    
    def enviar(self, mensagem, tipo='info'):
        cor = {
            'info': 3447003,    # Azul
            'compra': 3066993,  # Verde
            'venda': 15158332   # Vermelho
        }[tipo]
        
        payload = {
            "embeds": [{
                "title": f"REXMULTITRADE - {tipo.upper()}",
                "description": mensagem,
                "color": cor
            }]
        }
        
        requests.post(self.webhook_url, json=payload)
```

Depois integre em `RoboTrader`:

```python
from notificacoes import NotificadorDiscord

class RoboTrader:
    def __init__(self, config_file):
        # ... código existente ...
        self.notificador = NotificadorDiscord(config['discord_webhook'])
    
    def processar_moeda(self, moeda_config):
        # ... ao executar ordem ...
        if order:
            self.notificador.enviar(
                f"✅ BUY {symbol} @ ${preco_atual}",
                tipo='compra'
            )
```

### 4. Adicionar Limite de Variação (Safety)

Modifique `dever_comprar()`:

```python
def dever_comprar(self, symbol, dados_candles, analise_padroes):
    # ... código existente ...
    
    # Limite de variação 24h
    ticker = self.analisador.binance.obter_ticker(symbol)
    if ticker:
        variacao_24h = float(ticker.get('priceChangePercent', 0))
        
        # Não comprar se variação > 20%
        if abs(variacao_24h) > 20:
            return False, f"Variação 24h muito alta: {variacao_24h:.1f}%"
    
    return True, "Todas as condições atendidas"
```

### 5. Backtesting (Análise Histórica)

Crie `backtest.py`:

```python
import json
from datetime import datetime, timedelta
from rexmultitrade import AnalisadorMercado, EstrategiaTrading, BinanceAPI

class Backtester:
    def __init__(self, symbol, data_inicio, data_fim):
        self.symbol = symbol
        self.data_inicio = data_inicio
        self.data_fim = data_fim
        
        # Carregar candles históricos
        # Simular trades
        # Calcular lucro/loss
    
    def executar(self):
        # Retornar estatísticas de performance
        pass

if __name__ == '__main__':
    bt = Backtester('TRXUSDT', '2024-01-01', '2024-01-31')
    resultado = bt.executar()
    print(f"Win Rate: {resultado['win_rate']:.1f}%")
    print(f"Lucro Total: ${resultado['lucro_total']:.2f}")
```

### 6. Adicionar Autenticação ao Dashboard

Modifique início de `rexmultitrade_dashboard.php`:

```php
<?php
session_start();

// Validar autenticação
if (!isset($_SESSION['autenticado'])) {
    header('Location: login.php');
    exit;
}
?>
```

Crie `login.php`:

```php
<?php
session_start();

if ($_POST) {
    $senha = md5($_POST['senha']);
    $senha_correta = md5('sua_senha_aqui'); // ⚠️ Nunca hardcode em produção!
    
    if ($senha === $senha_correta) {
        $_SESSION['autenticado'] = true;
        header('Location: dashboard.php');
    } else {
        $erro = "Senha incorreta";
    }
}
?>
<form method="POST">
    <input type="password" name="senha" placeholder="Senha">
    <button>Acessar</button>
    <?php if($erro): ?>
        <p style="color: red"><?= $erro ?></p>
    <?php endif; ?>
</form>
```

### 7. Exportar Dados para Excel

Crie `exportar.php`:

```php
<?php
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename="trades.csv"');

// Ler desde SQLite
$db = new PDO('sqlite:trades.db');
$stmt = $db->query('SELECT * FROM trades ORDER BY timestamp DESC');
$trades = $stmt->fetchAll(PDO::FETCH_ASSOC);

// Cabeçalho CSV
echo "Data,Símbolo,Tipo,Quantidade,Preço,Total\n";

foreach ($trades as $trade) {
    $data = date('Y-m-d H:i:s', $trade['timestamp']);
    $total = $trade['quantity'] * $trade['price'];
    echo "$data,{$trade['symbol']},{$trade['side']},{$trade['quantity']},{$trade['price']},$total\n";
}
?>
```

## 🚀 Otimizações Recomendadas

### Performance
- Aumentar cache de 30 dias: Modifique `timestamp_cache > 3600` para `7200`
- Reduzir ciclo: Altere `ciclo_segundos` de 2 para 1 (mais agressivo)
- Usar multithreading para múltiplas moedas

### Precisão
- Adicionar verificação de ordem parcialmente preenchida
- Implementar order cancellation se não preencher
- Adicionar slippage protection

### Segurança
- Criptografar credenciais Binance: Use variáveis de ambiente
- Rate limiting no API.php
- CORS headers no API.php

## 📚 Referências

### Indicadores
- RSI: Relative Strength Index (0-100, < 30 sobrevendido, > 70 sobrecomprado)
- ATR: Average True Range (volatilidade)
- MACD: Moving Average Convergence Divergence
- Bollinger Bands: Volatilidade
- Ichimoku: Suporte/Resistência

### Estratégias
- Mean Reversion: Compra quando RSI baixo
- Trend Following: Compra quando preço sobe
- Grid Trading: Ordens em intervalos de preço
- DCA (Dollar Cost Averaging): Investimento periódico

### APIs
- Binance REST API: https://binance-docs.github.io/apidocs/
- Timeframes: 1m, 3m, 5m, 15m, 30m, 1h, 4h, 1d

---

**Próximas ideias:**
- [ ] Adicionar suporte a outras exchanges (Kraken, Coinbase)
- [ ] Machine Learning para otimizar parâmetros
- [ ] Alertas em tempo real via Telegram
- [ ] Histórico de performance detalhado
- [ ] A/B testing de diferentes estratégias
