# 💹 REXMULTITRADE - Robô de Trading Híbrido

Um robô de trading profissional que combina o melhor de dois sistemas: a análise de padrões horários do **REX** com a estratégia de múltiplas moedas e indicadores avançados do **MULTITRADE**.

## 🎯 Características

- ✅ **Múltiplas Moedas**: Trade simultâneo em 3+ moedas de forma independente
- ✅ **Análise de Padrões**: Identifica melhores horários de compra/venda (últimos 30 dias)
- ✅ **Triple RSI Strategy**: Indicadores avançados (RSI 5/14/21, ATR, Volume)
- ✅ **Trailing Stops Dinâmicos**: Proteção inteligente com stops adaptativos
- ✅ **Banco de Dados SQLite**: Histórico completo de trades com logs rotativos
- ✅ **Dashboard Web**: Monitoramento em tempo real com interface responsiva
- ✅ **Take Profit Dinâmico**: Baseado em análise de 30 dias de padrões históricos
- ✅ **Testnet & Produção**: Teste sem risco antes de usar dinheiro real
- ✅ **Reinvestimento Automático**: Reinveste 100% dos ganhos
- ✅ **Agressividade Configurável**: Ajusta uso de capital por moeda

## 🖥️ Interface Gráfica (GUI) ⭐ NOVO

O REXMULTITRADE agora oferece **3 formas diferentes de usar**:

1. **Interface Gráfica (GUI)** - Recomendada para iniciantes e produção
   - Dashboard em tempo real
   - Controlar robô (iniciar/parar) com cliques
   - Editar configuração sem editar JSON
   - Adicionar/remover moedas facilmente
   - Monitores logs coloridos

2. **Linha de Comando (CLI)** - Para SSH e servidores headless
   - Simples e direto
   - Funciona em qualquer terminal
   - Perfeito para scripts

3. **Dashboard Web** - Monitoramento remoto
   - Acesso via navegador
   - Funciona em mobile
   - Compartilhável

**👉 [Veja guia rápido em 5 minutos (QUICK_START_GUI.md)](QUICK_START_GUI.md)**

**👉 [Comparar 3 interfaces (INTERFACES.md)](INTERFACES.md)**

## 📋 Requisitos

- Python 3.8+
- PHP 7.4+
- SQLite3
- Tkinter (para Interface Gráfica - vem com Python)
- Conexão com internet (API Binance)
- XAMPP/Servidor web local

## 🚀 Instalação Rápida

### ⚡ Jeito Mais Fácil: Interface Gráfica (Recomendado)

```bash
# Windows
python rexmultitrade_gui.py
# ou duplo clique em iniciar.bat

# Linux
chmod +x iniciar_gui.sh
./iniciar_gui.sh

# macOS
chmod +x iniciar_gui_mac.sh
./iniciar_gui_mac.sh
```

Depois: Clique em [▶ Iniciar Robô] e pronto! ✓

Ou iniciar via linha de comando:
```bash
python rexmultitrade.py      # Windows/Linux/Mac
```

### 1. Configurar Binance API

1. Entre em https://www.binance.com/en/account/manage-api
2. Crie uma nova API key com permissões:
   - `Enable Reading` ✓
   - `Enable Spot & Margin Trading` ✓
3. **NÃO** ative "Restrict to trusted IPs" para teste local
4. Copie a API Key e Secret Key

### 2. Configurar o Robô

Edite `configuracoes.json`:

```json
{
  "binance_api_key": "SUA_API_KEY",
  "binance_secret_key": "SUA_SECRET_KEY",
  "moedas": [
    {
      "par": "TRX/USDT",
      "symbol": "TRXUSDT",
      "capital": 100,
      "agressividade": 0.98,
      "ativo": true
    }
  ]
}
```

### 3. Iniciar Python Virtual Environment

```bash
# Windows
python -m venv venv
venv\Scripts\activate

# Linux/Mac
python3 -m venv venv
source venv/bin/activate
```

### 4. Instalar Dependências

```bash
# Nenhuma dependência externa necessária!
# O robô usa apenas bibliotecas Python padrão:
# - json, logging, time, hmac, hashlib, urllib, socket, datetime
```

### 5. Iniciar o Robô

```bash
python rexmultitrade.py
```

Você verá:
```
================================================================================
REXMULTITRADE iniciado
Moedas: TRX/USDT, XRP/USDT, DOGE/USDT
Timeframe: 3m
Ciclo: 2s
================================================================================
```

### 6. Abrir Dashboard

Acesse no navegador:
```
http://localhost/projetos/rexmultitrade/rexmultitrade_dashboard.php
```

## 📊 Como Funciona

### Ciclo de Trading (Executa a cada 2-3 segundos)

Para **cada moeda**:

```
1. COLETA DE DADOS
   └─ Obtém 500 candles de 3 minutos
   └─ Calcula indicadores (RSI triple, ATR, Volume)
   └─ Analisa últimos 30 dias para padrões horários

2. ANÁLISE DE PADRÕES (cache 1 hora)
   └─ Agrupa candles de 1h em 6 períodos de 4 horas
   └─ Identifica melhor hora de compra (menor preço)
   └─ Identifica melhor hora de venda (maior preço)
   └─ Calcula confiança por frequência histórica

3. VERIFICAÇÃO DE COMPRA
   Condições (TODAS devem ser atendidas):
   ├─ RSI(5) ≤ 35 E RSI(14) ≤ 35 E Média(RSI14,21) ≤ 35
   ├─ Volume ≥ MA20 * 80%
   └─ Hora atual está no melhor período de compra (±1 período)
   
   → SE TODAS VERDADEIRAS: Executar BUY

4. GERENCIAMENTO DE POSIÇÃO
   Se em posição ativa:
   ├─ Atualizar trailing stop (28% inicial, 0.07% depois)
   └─ Verificar condições de venda

5. VERIFICAÇÃO DE VENDA
   Condições (UMA deve ser atendida):
   ├─ RSI(5) ≥ 65 E RSI(14) ≥ 65 + Melhor hora venda
   ├─ OU Preço ≤ Trailing Stop
   └─ E Hora atual está no melhor período de venda (±1 período)
   
   → SE VERDADEIRAS: Executar SELL

6. REGISTRO
   └─ Salvar trade em SQLite
   └─ Atualizar estado JSON
   └─ Log em arquivo rotativo
```

## 📁 Estrutura do Projeto

```
rexmultitrade/
├─ rexmultitrade.py              # Robô principal (estratégia + execução)
├── rexmultitrade_dashboard.php   # Interface web
├── api.php                    # API REST SQLite
├── configuracoes.json         # Configuração de moedas e indicadores
├── estado_robos.json          # Estado atual de cada moeda
├── trades.db                  # Banco SQLite (criado automaticamente)
│
├── logs/
│   └── log_trades.log         # Log rotativo (20MB max, 3 backups)
│
└── assets/
    ├── css/
    ├── js/
    └── img/
```

## ⚙️ Configuração Avançada

### Adicionar Novas Moedas

Em `configuracoes.json`, adicione ao array `moedas`:

```json
{
  "par": "BTC/USDT",
  "symbol": "BTCUSDT",
  "capital": 500,
  "capital_min": 5,
  "agressividade": 0.98,
  "ativo": true
}
```

### Ajustar Agressividade

- `0.98` = Usa 98% do capital em cada trade (MUITO agressivo)
- `0.80` = Usa 80% do capital (moderado)
- `0.50` = Usa 50% do capital (conservador)

### Modificar Indicadores

```json
"indicadores": {
  "rsi_periods": [5, 14, 21],      // Períodos RSI
  "rsi_minimo_compra": 35,         // RSI máximo para compra
  "rsi_maximo_venda": 65,          // RSI mínimo para venda
  "atr_period": 14,                // Período ATR
  "volume_ma_period": 20           // Período volume MA
}
```

### Trailing Stops

```json
"trailing_stop_inicial": 0.28,     // 28% após primeira entrada
"trailing_stop_posterior": 0.0007, // 0.07% depois
"take_profit_inicial": 0.0041,     // 0.41% inicial
"take_profit_posterior": 0.0007    // 0.07% depois
```

## 📊 Dashboard

O dashboard em tempo real mostra:

- **Cards por Moeda**
  - Capital atual
  - Ganho total (%)
  - Quantidade de trades
  - Status de posição
  - Preço de entrada (se em posição)

- **Tabela de Trades Recentes**
  - Data/hora de cada trade
  - Par negociado
  - Quantidade e preço
  - Total em USDT

- **Últimos Logs**
  - Eventos importantes
  - Erros e avisos
  - Atualizado a cada 5 segundos

## 🔍 API REST

### Registrar Trade
```
POST api.php
symbol=TRXUSDT&side=BUY&quantity=100&price=0.08&tipo=compra_padrao&timestamp=1234567890
```

### Obter Trades
```
GET api.php?acao=obter_trades&symbol=TRXUSDT&dias=7
```

### Obter Resumo
```
GET api.php?acao=obter_resumo&symbol=TRXUSDT
```

### Obter Status Completo
```
GET api.php?acao=obter_status
```

## 📝 Logs

Os logs são salvos em `logs/log_trades.log` com rotação automática:
- Máximo 20MB por arquivo
- 3 backups automáticos
- Timestamp completo em cada evento
- Níveis: INFO, WARNING, ERROR, DEBUG

Exemplo:
```
2024-01-15 14:32:45,123 - rexmultitrade - INFO - TRX/USDT: SINAL DE COMPRA - RSI:28.5/32.1/30.3
2024-01-15 14:32:46,456 - rexmultitrade - INFO - TRXUSDT: Order colocada: TRXUSDT BUY 1250.0
2024-01-15 14:32:47,789 - rexmultitrade - INFO - TRX/USDT: COMPRA EXECUTADA - 1250.00000000 @ 0.08012
```

## 🐛 Troubleshooting

### Erro -1021 (Timestamp fora de sincronização)

✅ O robô sincroniza automaticamente ao iniciar. Se persistir:
1. Sincronize relógio do PC: `time /t`
2. Reinicie o robô

### Nenhum trade executado

Verifique:
1. ✓ Credenciais Binance corretas
2. ✓ Moedas têm capital mínimo ($5+)
3. ✓ RSI está no intervalo correto (< 35 para compra)
4. ✓ Está no melhor horário de compra
5. ✓ Volume está alto
6. ✓ Verifique logs: `tail -f logs/log_trades.log`

### Database locked

SQLite travou? Remova:
```bash
rm trades.db
rm estado_robos.json
```

O robô recriará ao iniciar.

### API.php 500 Error

1. Verifique permissões da pasta: `chmod 755 .`
2. Verifique se PHP tem suporte SQLite: `php -m | grep sqlite`

## 💰 Gestão de Risco

⚠️ **ANTES DE USAR COM DINHEIRO REAL:**

1. **Teste com capital pequeno** ($50-100 por moeda)
2. **Monitore os primeiros 7 dias** de operação
3. **Verifique logs regularmente** para padrões estranhos
4. **Não aumente capital** sem validar performance
5. **Use apenas capital que pode perder** 100%

### Recomendações de Capital

- **Iniciante**: $50-100 total
- **Intermediário**: $300-500 total
- **Avançado**: $1000+ total

### Proteções do Robô

✅ Trailing stops dinâmicos
✅ Capital mínimo por moeda
✅ Logging completo de todas as operações
✅ Validação de ordem antes de executar
✅ Sincronização de timestamp

## � Documentação Completa

### 🔰 Para Começar (5 minutos)
- **[QUICK_START_GUI.md](QUICK_START_GUI.md)** - Guia rápido da Interface Gráfica

### 📖 Manuais Detalhados
- **[GUI.md](GUI.md)** - Manual completo da Interface Gráfica (Dashboard, Logs, Config, Stats)
- **[INTERFACES.md](INTERFACES.md)** - Comparação: GUI vs CLI vs Web Dashboard
- **[SETUP_LINUX.md](SETUP_LINUX.md)** - Instalação e configuração para servidor Linux
- **[TESTNET_PRODUCAO.md](TESTNET_PRODUCAO.md)** - Como testar sem risco antes de usar dinheiro real
- **[TAKE_PROFIT_DINAMICO.md](TAKE_PROFIT_DINAMICO.md)** - Como funciona o Take Profit Dinâmico

### 🤖 Escolher Seu Workflow
```
├─ Iniciante/Desktop → Use GUI (QUICK_START_GUI.md)
├─ Servidor Linux    → Use SETUP_LINUX.md
└─ Entender tudo     → Leia INTERFACES.md
```

## �📞 Suporte

- Verifique os logs: `logs/log_trades.log`
- Confirme credenciais Binance
- Valide configurações JSON
- Teste a API: `http://localhost/projetos/rexmultitrade/api.php?acao=obter_status`

## 📜 Licença

Uso pessoal e educacional.

---

**Última atualização**: 2024
**Versão**: 1.0.0
