# OrbiQuant Trading Agents Sistema de agentes de trading automático con diferentes perfiles de riesgo. ## Agentes Disponibles ### Atlas - El Guardián (Conservador) - **Perfil:** Conservador - **Target mensual:** 3-5% - **Max Drawdown:** 5% - **Pares:** BTC/USDT, ETH/USDT - **Estrategias:** Mean Reversion, Grid Trading - **Max Posiciones:** 3 - **Trades/día:** 2-5 ### Orion - El Explorador (Moderado) - **Perfil:** Moderado - **Target mensual:** 5-10% - **Max Drawdown:** 10% - **Pares:** Top 10 cryptos - **Estrategias:** Trend Following, Momentum - **Max Posiciones:** 5 - **Trades/día:** 5-15 ### Nova - La Estrella (Agresivo) - **Perfil:** Agresivo - **Target mensual:** 10%+ - **Max Drawdown:** 20% - **Pares:** Todos disponibles - **Estrategias:** Momentum, Scalping, Trend Following - **Max Posiciones:** 10 - **Trades/día:** 20+ ## Estructura del Proyecto ``` apps/trading-agents/ ├── src/ │ ├── agents/ │ │ ├── base.py # BaseAgent class │ │ ├── atlas.py # Atlas agent (Conservative) │ │ ├── orion.py # Orion agent (Moderate) │ │ └── nova.py # Nova agent (Aggressive) │ ├── strategies/ │ │ ├── base.py # BaseStrategy │ │ ├── mean_reversion.py # Mean reversion strategy │ │ ├── grid_trading.py # Grid trading strategy │ │ ├── trend_following.py # Trend following strategy │ │ └── momentum.py # Momentum strategy │ ├── execution/ │ │ └── risk_manager.py # Risk management │ ├── exchange/ │ │ └── binance_client.py # Binance API client │ ├── signals/ │ │ └── ml_consumer.py # ML signals consumer │ └── api/ │ └── main.py # FastAPI app ├── config/ │ ├── agents.yaml # Agents configuration │ ├── strategies.yaml # Strategies configuration │ └── risk.yaml # Risk parameters ├── requirements.txt ├── Dockerfile └── docker-compose.yml ``` ## Instalación ### 1. Requisitos - Python 3.11+ - Docker (opcional) - Binance Testnet API keys (para paper trading) ### 2. Instalación local ```bash cd apps/trading-agents # Crear entorno virtual python -m venv venv source venv/bin/activate # Linux/Mac # o venv\Scripts\activate # Windows # Instalar dependencias pip install -r requirements.txt ``` ### 3. Configuración Crear archivo `.env`: ```bash # Binance API BINANCE_API_KEY=your_testnet_api_key BINANCE_API_SECRET=your_testnet_api_secret BINANCE_TESTNET=true # ML Engine ML_ENGINE_URL=http://localhost:8000 ML_ENGINE_API_KEY=dev_ml_key # Database DATABASE_URL=postgresql+asyncpg://user:pass@localhost:5432/orbiquant # API API_PORT=8003 API_HOST=0.0.0.0 ``` ## Uso ### Iniciar el servicio ```bash # Local python -m src.api.main # Docker docker-compose up -d ``` ### API Endpoints #### Listar agentes ```bash curl http://localhost:8003/agents ``` #### Iniciar un agente ```bash curl -X POST http://localhost:8003/agents/atlas/start \ -H "Content-Type: application/json" \ -d '{ "agent_name": "atlas", "initial_equity": 1000.0 }' ``` #### Ver estado del agente ```bash curl http://localhost:8003/agents/atlas/status ``` #### Enviar señal de trading ```bash curl -X POST http://localhost:8003/agents/atlas/signal \ -H "Content-Type: application/json" \ -d '{ "agent_name": "atlas", "symbol": "BTCUSDT", "action": "buy", "confidence": 0.85, "price": 45000.0 }' ``` #### Ver posiciones abiertas ```bash curl http://localhost:8003/agents/atlas/positions ``` #### Ver métricas detalladas ```bash curl http://localhost:8003/agents/atlas/metrics ``` #### Pausar agente ```bash curl -X POST http://localhost:8003/agents/atlas/pause ``` #### Reanudar agente ```bash curl -X POST http://localhost:8003/agents/atlas/resume ``` #### Detener agente ```bash curl -X POST http://localhost:8003/agents/atlas/stop ``` ## Paper Trading con Binance Testnet ### 1. Obtener API Keys de Testnet 1. Ir a [Binance Testnet](https://testnet.binancefuture.com/) 2. Crear cuenta de testnet 3. Generar API keys 4. Agregar keys al archivo `.env` ### 2. Configurar agente para testnet ```python from src.exchange.binance_client import BinanceClient from src.agents.atlas import AtlasAgent # Crear cliente de Binance async with BinanceClient( api_key="your_testnet_key", api_secret="your_testnet_secret", testnet=True ) as client: # Verificar conectividad healthy = await client.health_check() print(f"Binance Testnet: {'OK' if healthy else 'FAIL'}") # Iniciar agente agent = AtlasAgent(equity=1000.0) await agent.start() ``` ## Estrategias ### Mean Reversion - Compra cuando precio < SMA - N*STD - Vende cuando precio > SMA + N*STD - Ideal para mercados laterales ### Grid Trading - Crea grid de niveles de precio - Compra en niveles bajos, vende en niveles altos - Ideal para mercados con rango definido ### Trend Following - Sigue tendencias usando EMAs y MACD - Compra en tendencia alcista, vende en bajista - Ideal para mercados con tendencia ### Momentum - Detecta movimientos fuertes con ROC - Confirma con volumen - Ideal para breakouts ## Gestión de Riesgo ### Límites por Agente | Agente | Max DD | Max Pos | Pos Size | SL | TP | |--------|--------|---------|----------|-----|-----| | Atlas | 5% | 3 | 10% | 2% | 3% | | Orion | 10% | 5 | 15% | 3% | 6% | | Nova | 20% | 10 | 20% | 4% | 8% | ### Circuit Breakers - **Max pérdidas consecutivas:** 5 (pausa 1h) - **Drawdown rápido:** 3% en 15min (pausa 2h) - **Kill switch:** Activado en 10% pérdida diaria ## Monitoreo ### Logs Los logs se guardan en: - `logs/trading-agents.log` - `logs/agents/atlas.log` - `logs/agents/orion.log` - `logs/agents/nova.log` ### Métricas Cada agente reporta: - Total trades - Win rate - Profit factor - Sharpe ratio - Max drawdown - Current drawdown - Posiciones abiertas ## Testing ```bash # Run tests pytest tests/ # Run with coverage pytest --cov=src tests/ # Run specific test pytest tests/test_agents.py::test_atlas_agent ``` ## Desarrollo ### Agregar nueva estrategia 1. Crear archivo en `src/strategies/` 2. Heredar de `BaseStrategy` 3. Implementar método `generate_signal()` ```python from src.strategies.base import BaseStrategy, Signal, SignalType class MyStrategy(BaseStrategy): def generate_signal(self, data): # Tu lógica aquí return Signal( symbol="BTCUSDT", signal_type=SignalType.BUY, confidence=0.8, entry_price=45000.0 ) ``` ### Agregar nuevo agente 1. Crear archivo en `src/agents/` 2. Heredar de `BaseAgent` 3. Implementar métodos requeridos ## Troubleshooting ### Error: "Binance API error" - Verificar API keys - Verificar que estés usando testnet keys con `BINANCE_TESTNET=true` ### Error: "Max drawdown exceeded" - El agente se pausó automáticamente - Verificar equity y performance - Reanudar con `/resume` cuando esté listo ### Error: "Insufficient data" - Las estrategias requieren datos históricos - Esperar a que se acumule suficiente data ## Licencia Propietario - OrbiQuant IA ## Contacto - Email: support@orbiquant.ai - Docs: https://docs.orbiquant.ai