ML Engine Updates: - Updated BTCUSD with Polygon API data (2024-2025): 215,699 new records - Re-trained all ML models: Attention (R²: 0.223), Base, Metamodel (87.3% confidence) - Backtest results: +176.71R profit with aggressive_filter strategy Documentation Consolidation: - Created docs/99-analisis/_MAP.md index with 13 new analysis documents - Consolidated inventories: removed duplicates from orchestration/inventarios/ - Updated ML_INVENTORY.yml with BTCUSD metrics and training results - Added execution reports: FASE11-BTCUSD, correction issues, alignment validation Architecture & Integration: - Updated all module documentation with NEXUS v3.4 frontmatter - Fixed _MAP.md indexes across all folders - Updated orchestration plans and traces Files: 229 changed, 5064 insertions(+), 1872 deletions(-) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
880 lines
22 KiB
YAML
880 lines
22 KiB
YAML
# ============================================================================
|
|
# MATRIZ-DEPENDENCIAS.yml - Trading Platform Trading Platform
|
|
# ============================================================================
|
|
# Proposito: Mapa completo de dependencias entre todos los componentes
|
|
# Ultima actualizacion: 2025-12-05
|
|
# Version: 1.0.0
|
|
# ============================================================================
|
|
|
|
version: "1.0.0"
|
|
project: "Trading Platform Trading Platform"
|
|
last_updated: "2025-12-05"
|
|
|
|
# ============================================================================
|
|
# DEPENDENCIAS POR COMPONENTE
|
|
# ============================================================================
|
|
|
|
components:
|
|
# --------------------------------------------------------------------------
|
|
# FRONTEND
|
|
# --------------------------------------------------------------------------
|
|
frontend:
|
|
name: "Frontend Web App"
|
|
tech_stack: "React 18 + TypeScript + Vite"
|
|
port: 3000
|
|
|
|
depends_on:
|
|
services:
|
|
- backend-api
|
|
|
|
external:
|
|
- stripe-js
|
|
- tradingview-lightweight-charts
|
|
- claude-code-widgets
|
|
|
|
integrations:
|
|
- name: backend-api
|
|
protocol: REST + WebSocket
|
|
endpoints:
|
|
- /auth/*
|
|
- /education/*
|
|
- /trading/*
|
|
- /investment/*
|
|
- /payments/*
|
|
- /ml/*
|
|
- /agent/*
|
|
|
|
- name: stripe-checkout
|
|
protocol: HTTPS
|
|
usage: "Hosted checkout page"
|
|
|
|
- name: websocket-server
|
|
protocol: WSS
|
|
channels:
|
|
- ticker:{symbol}
|
|
- signals:{symbol}
|
|
- user:{id}:trades
|
|
- chat:{conversation_id}
|
|
|
|
environment_variables:
|
|
- VITE_API_URL: "http://localhost:3001"
|
|
- VITE_WS_URL: "ws://localhost:3001"
|
|
- VITE_STRIPE_PUBLIC_KEY: "pk_test_..."
|
|
|
|
deploys_to:
|
|
- cloudflare-pages
|
|
- vercel
|
|
- netlify
|
|
|
|
criticidad: ALTA
|
|
epic_mapping: [OQI-001, OQI-002, OQI-003, OQI-004, OQI-005, OQI-006, OQI-007, OQI-008]
|
|
|
|
# --------------------------------------------------------------------------
|
|
# BACKEND API
|
|
# --------------------------------------------------------------------------
|
|
backend-api:
|
|
name: "Backend API (Express.js)"
|
|
tech_stack: "Express.js + TypeScript + Node.js 20"
|
|
port: 3001
|
|
|
|
depends_on:
|
|
databases:
|
|
- postgresql
|
|
- redis
|
|
|
|
services:
|
|
- ml-engine
|
|
- data-service
|
|
|
|
external:
|
|
- stripe-api
|
|
- claude-api
|
|
- twilio-api
|
|
|
|
integrations:
|
|
- name: postgresql
|
|
protocol: TCP (libpq)
|
|
port: 5432
|
|
schemas:
|
|
- public
|
|
- education
|
|
- trading
|
|
- investment
|
|
- financial
|
|
- ml
|
|
- audit
|
|
|
|
- name: redis
|
|
protocol: TCP (RESP)
|
|
port: 6379
|
|
usage:
|
|
- "Session storage"
|
|
- "Rate limiting"
|
|
- "Cache (predictions, prices)"
|
|
- "Pub/Sub (signals, trades)"
|
|
|
|
- name: ml-engine
|
|
protocol: HTTP (REST)
|
|
port: 8000
|
|
endpoints:
|
|
- POST /predictions
|
|
- POST /signals
|
|
- GET /indicators
|
|
|
|
- name: stripe-api
|
|
protocol: HTTPS
|
|
endpoints:
|
|
- POST /v1/checkout/sessions
|
|
- POST /v1/customers
|
|
- POST /v1/subscriptions
|
|
webhooks:
|
|
- checkout.session.completed
|
|
- invoice.payment_succeeded
|
|
- customer.subscription.deleted
|
|
|
|
- name: claude-api
|
|
protocol: HTTPS
|
|
endpoint: "https://api.anthropic.com/v1/messages"
|
|
usage: "LLM Agent (OQI-007)"
|
|
|
|
environment_variables:
|
|
- DATABASE_URL: "postgresql://..."
|
|
- REDIS_URL: "redis://..."
|
|
- JWT_SECRET: "..."
|
|
- STRIPE_SECRET_KEY: "sk_test_..."
|
|
- STRIPE_WEBHOOK_SECRET: "whsec_..."
|
|
- ML_ENGINE_URL: "http://ml-engine:8000"
|
|
- CLAUDE_API_KEY: "sk-ant-..."
|
|
- TWILIO_ACCOUNT_SID: "..."
|
|
- TWILIO_AUTH_TOKEN: "..."
|
|
|
|
modules:
|
|
- auth
|
|
- users
|
|
- education
|
|
- trading
|
|
- investment
|
|
- payments
|
|
- admin
|
|
- llm-agent
|
|
|
|
criticidad: CRITICA
|
|
epic_mapping: [OQI-001, OQI-002, OQI-003, OQI-004, OQI-005, OQI-006, OQI-007, OQI-008]
|
|
|
|
# --------------------------------------------------------------------------
|
|
# ML ENGINE
|
|
# --------------------------------------------------------------------------
|
|
ml-engine:
|
|
name: "ML Engine (TradingAgent)"
|
|
tech_stack: "Python 3.11 + FastAPI + XGBoost"
|
|
port: 8000
|
|
|
|
depends_on:
|
|
databases:
|
|
- postgresql
|
|
- redis
|
|
|
|
services:
|
|
- data-service
|
|
|
|
hardware:
|
|
- nvidia-gpu
|
|
|
|
integrations:
|
|
- name: postgresql
|
|
protocol: TCP (asyncpg)
|
|
port: 5432
|
|
schemas:
|
|
- market_data
|
|
- ml_predictions
|
|
- ml
|
|
usage:
|
|
- "Read OHLCV data for features"
|
|
- "Write predictions"
|
|
- "Write signals"
|
|
|
|
- name: redis
|
|
protocol: TCP (aioredis)
|
|
port: 6379
|
|
usage:
|
|
- "Cache predictions (TTL 5min)"
|
|
- "Publish signals to channel signals:{symbol}"
|
|
|
|
- name: data-service
|
|
protocol: HTTP
|
|
port: 8001
|
|
dependency: "Requires fresh OHLCV data"
|
|
|
|
models:
|
|
- name: "XGBoost Range Predictor"
|
|
files:
|
|
- models/phase2/range_predictor/15m/model_high.json
|
|
- models/phase2/range_predictor/15m/model_low.json
|
|
metrics:
|
|
mae: 0.0024
|
|
accuracy: 0.693
|
|
|
|
- name: "TPSL Classifier"
|
|
files:
|
|
- models/phase2/tpsl_classifier/15m_rr_2_1.json
|
|
- models/phase2/tpsl_classifier/15m_rr_3_1.json
|
|
metrics:
|
|
auc: 0.94
|
|
|
|
- name: "AMD Detector"
|
|
source: src/strategies/amd_detector.py
|
|
phases: [accumulation, manipulation, distribution, unknown]
|
|
|
|
environment_variables:
|
|
- DATABASE_URL: "postgresql://..."
|
|
- REDIS_URL: "redis://..."
|
|
- MODEL_PATH: "/app/models"
|
|
- CUDA_VISIBLE_DEVICES: "0"
|
|
- SUPPORTED_SYMBOLS: "BTCUSDT,ETHUSDT,XAUUSD"
|
|
|
|
criticidad: CRITICA
|
|
epic_mapping: [OQI-006]
|
|
|
|
# --------------------------------------------------------------------------
|
|
# DATA SERVICE
|
|
# --------------------------------------------------------------------------
|
|
data-service:
|
|
name: "Data Service (Sync + Spreads)"
|
|
tech_stack: "Python 3.11 + APScheduler"
|
|
port: 8001
|
|
|
|
depends_on:
|
|
databases:
|
|
- postgresql
|
|
|
|
external:
|
|
- polygon-api
|
|
- metaapi
|
|
|
|
integrations:
|
|
- name: postgresql
|
|
protocol: TCP (asyncpg)
|
|
port: 5432
|
|
schemas:
|
|
- market_data
|
|
- data_sources
|
|
- broker_integration
|
|
usage:
|
|
- "Insert OHLCV from Polygon"
|
|
- "Track sync status"
|
|
- "Log spreads from MT4"
|
|
|
|
- name: polygon-api
|
|
protocol: HTTPS
|
|
endpoint: "https://api.polygon.io"
|
|
endpoints:
|
|
- GET /v2/aggs/ticker/{ticker}/range/5/minute/{from}/{to}
|
|
- GET /v2/snapshot/locale/global/markets/forex/tickers/{ticker}
|
|
rate_limit: "5 req/min (basic plan)"
|
|
|
|
- name: metaapi
|
|
protocol: HTTPS + WebSocket
|
|
endpoint: "https://mt-client-api-v1.new-york.agiliumtrade.ai"
|
|
usage:
|
|
- "Get broker prices (bid/ask)"
|
|
- "Execute trades"
|
|
- "Track spread statistics"
|
|
|
|
scheduled_jobs:
|
|
- name: "sync_ohlcv_5m"
|
|
schedule: "*/5 * * * *"
|
|
description: "Sincronizar datos cada 5 minutos"
|
|
|
|
- name: "calculate_spreads_daily"
|
|
schedule: "0 0 * * *"
|
|
description: "Calcular estadisticas de spread diarias"
|
|
|
|
- name: "backfill_historical"
|
|
schedule: "Manual"
|
|
description: "Rellenar datos historicos"
|
|
|
|
environment_variables:
|
|
- DATABASE_URL: "postgresql://..."
|
|
- POLYGON_API_KEY: "..."
|
|
- METAAPI_TOKEN: "..."
|
|
- METAAPI_ACCOUNT_ID: "..."
|
|
- SYNC_INTERVAL_MINUTES: "5"
|
|
|
|
criticidad: ALTA
|
|
epic_mapping: [OQI-006, OQI-008]
|
|
|
|
# --------------------------------------------------------------------------
|
|
# POSTGRESQL
|
|
# --------------------------------------------------------------------------
|
|
postgresql:
|
|
name: "PostgreSQL Primary Database"
|
|
tech_stack: "PostgreSQL 15"
|
|
port: 5432
|
|
|
|
depends_on:
|
|
external:
|
|
- backup-storage
|
|
|
|
schemas:
|
|
- name: public
|
|
tables: 7
|
|
purpose: "Usuarios, perfiles, sesiones"
|
|
|
|
- name: education
|
|
tables: 11
|
|
purpose: "Cursos, lecciones, quizzes"
|
|
|
|
- name: trading
|
|
tables: 10
|
|
purpose: "Bots, signals, paper trading"
|
|
|
|
- name: investment
|
|
tables: 8
|
|
purpose: "Cuentas de inversion, productos"
|
|
|
|
- name: financial
|
|
tables: 11
|
|
purpose: "Pagos, suscripciones, wallets"
|
|
|
|
- name: ml
|
|
tables: 8
|
|
purpose: "Modelos, predicciones, metricas"
|
|
|
|
- name: audit
|
|
tables: 7
|
|
purpose: "Logs de auditoria"
|
|
|
|
- name: market_data
|
|
tables: 4
|
|
purpose: "OHLCV, indicadores tecnicos"
|
|
partitioned: true
|
|
|
|
- name: ml_predictions
|
|
tables: 3
|
|
purpose: "Predicciones, senales"
|
|
|
|
- name: data_sources
|
|
tables: 3
|
|
purpose: "Configuracion de APIs externas"
|
|
|
|
- name: broker_integration
|
|
tables: 5
|
|
purpose: "Integracion con MT4/MT5"
|
|
|
|
extensions:
|
|
- uuid-ossp
|
|
- pgcrypto
|
|
- pg_trgm
|
|
|
|
backup_strategy:
|
|
full_backup: "Daily 2am"
|
|
incremental: "Every 6 hours"
|
|
retention: "30 days"
|
|
destination: "S3/Cloudflare R2"
|
|
|
|
replication:
|
|
type: "Streaming replication"
|
|
replicas: 1
|
|
lag_threshold: "5s"
|
|
|
|
environment_variables:
|
|
- POSTGRES_DB: "trading_platform"
|
|
- POSTGRES_USER: "trading_user"
|
|
- POSTGRES_PASSWORD: "..."
|
|
|
|
criticidad: CRITICA
|
|
epic_mapping: [OQI-001, OQI-002, OQI-003, OQI-004, OQI-005, OQI-006, OQI-007, OQI-008]
|
|
|
|
# --------------------------------------------------------------------------
|
|
# REDIS
|
|
# --------------------------------------------------------------------------
|
|
redis:
|
|
name: "Redis Cache + Pub/Sub"
|
|
tech_stack: "Redis 7"
|
|
port: 6379
|
|
|
|
depends_on: []
|
|
|
|
use_cases:
|
|
- name: "Session storage"
|
|
pattern: "session:{userId}:{sessionId}"
|
|
ttl: "7 days"
|
|
|
|
- name: "Rate limiting"
|
|
pattern: "ratelimit:{ip}:{endpoint}"
|
|
ttl: "15 minutes"
|
|
|
|
- name: "ML predictions cache"
|
|
pattern: "ml:prediction:{symbol}:{horizon}"
|
|
ttl: "5 minutes"
|
|
|
|
- name: "Real-time prices"
|
|
pattern: "realtime:{symbol}"
|
|
ttl: "1 second"
|
|
|
|
- name: "Pub/Sub signals"
|
|
channels:
|
|
- signals:{symbol}
|
|
- trades:{user_id}
|
|
|
|
persistence:
|
|
enabled: true
|
|
strategy: "RDB + AOF"
|
|
snapshot: "Every 1 hour"
|
|
|
|
environment_variables:
|
|
- REDIS_PASSWORD: "..."
|
|
- REDIS_MAXMEMORY: "2gb"
|
|
- REDIS_MAXMEMORY_POLICY: "allkeys-lru"
|
|
|
|
criticidad: ALTA
|
|
epic_mapping: [OQI-001, OQI-003, OQI-006]
|
|
|
|
# ============================================================================
|
|
# DEPENDENCIAS EXTERNAS
|
|
# ============================================================================
|
|
|
|
external_services:
|
|
# --------------------------------------------------------------------------
|
|
# STRIPE
|
|
# --------------------------------------------------------------------------
|
|
- name: stripe-api
|
|
provider: "Stripe"
|
|
purpose: "Procesamiento de pagos y suscripciones"
|
|
protocol: HTTPS
|
|
endpoint: "https://api.stripe.com"
|
|
|
|
used_by:
|
|
- backend-api
|
|
- frontend (Stripe.js)
|
|
|
|
webhooks:
|
|
endpoint: "https://api.trading.com/payments/webhook"
|
|
events:
|
|
- checkout.session.completed
|
|
- invoice.payment_succeeded
|
|
- invoice.payment_failed
|
|
- customer.subscription.deleted
|
|
|
|
api_keys:
|
|
- STRIPE_SECRET_KEY (backend)
|
|
- STRIPE_PUBLIC_KEY (frontend)
|
|
- STRIPE_WEBHOOK_SECRET (webhook verification)
|
|
|
|
pricing: "$0.029 + 2.9% per transaction"
|
|
epic_mapping: [OQI-005]
|
|
|
|
# --------------------------------------------------------------------------
|
|
# CLAUDE API
|
|
# --------------------------------------------------------------------------
|
|
- name: claude-api
|
|
provider: "Anthropic"
|
|
purpose: "LLM Strategy Agent"
|
|
protocol: HTTPS
|
|
endpoint: "https://api.anthropic.com/v1/messages"
|
|
|
|
used_by:
|
|
- backend-api (LLM Service)
|
|
|
|
model: "claude-3-5-sonnet-20250929"
|
|
|
|
features:
|
|
- Function calling (tools)
|
|
- Streaming responses
|
|
- Vision (future)
|
|
|
|
rate_limits:
|
|
- "50 req/min (tier 1)"
|
|
- "500k tokens/min"
|
|
|
|
api_keys:
|
|
- CLAUDE_API_KEY
|
|
|
|
pricing: "$0.003/1k input tokens, $0.015/1k output tokens"
|
|
epic_mapping: [OQI-007]
|
|
|
|
# --------------------------------------------------------------------------
|
|
# POLYGON.IO
|
|
# --------------------------------------------------------------------------
|
|
- name: polygon-api
|
|
provider: "Polygon.io"
|
|
purpose: "Market data (Forex, Crypto, Stocks)"
|
|
protocol: HTTPS
|
|
endpoint: "https://api.polygon.io"
|
|
|
|
used_by:
|
|
- data-service
|
|
|
|
plans:
|
|
- name: "Currencies Basic"
|
|
price: "$0/month"
|
|
rate_limit: "5 req/min"
|
|
|
|
- name: "Currencies Starter"
|
|
price: "$29/month"
|
|
rate_limit: "100 req/min"
|
|
|
|
api_keys:
|
|
- POLYGON_API_KEY
|
|
|
|
epic_mapping: [OQI-006]
|
|
|
|
# --------------------------------------------------------------------------
|
|
# METAAPI
|
|
# --------------------------------------------------------------------------
|
|
- name: metaapi
|
|
provider: "MetaAPI.cloud"
|
|
purpose: "MT4/MT5 broker integration"
|
|
protocol: HTTPS + WebSocket
|
|
endpoint: "https://mt-client-api-v1.new-york.agiliumtrade.ai"
|
|
|
|
used_by:
|
|
- data-service
|
|
- ml-engine (indirectly)
|
|
|
|
features:
|
|
- Cloud MT4 (no terminal needed)
|
|
- REST API + WebSocket
|
|
- Trade execution
|
|
- Price streaming
|
|
|
|
plans:
|
|
- name: "Free"
|
|
price: "$0/month"
|
|
accounts: 1
|
|
|
|
- name: "Premium"
|
|
price: "$49/month"
|
|
accounts: 10
|
|
|
|
api_keys:
|
|
- METAAPI_TOKEN
|
|
- METAAPI_ACCOUNT_ID
|
|
|
|
epic_mapping: [OQI-004, OQI-006, OQI-008]
|
|
|
|
# --------------------------------------------------------------------------
|
|
# TWILIO
|
|
# --------------------------------------------------------------------------
|
|
- name: twilio-api
|
|
provider: "Twilio"
|
|
purpose: "SMS, WhatsApp OTP"
|
|
protocol: HTTPS
|
|
endpoint: "https://api.twilio.com"
|
|
|
|
used_by:
|
|
- backend-api (Phone verification)
|
|
|
|
features:
|
|
- SMS sending
|
|
- WhatsApp Business API
|
|
- Verify API (OTP)
|
|
|
|
api_keys:
|
|
- TWILIO_ACCOUNT_SID
|
|
- TWILIO_AUTH_TOKEN
|
|
|
|
pricing: "$0.0075 per SMS"
|
|
epic_mapping: [OQI-001]
|
|
|
|
# ============================================================================
|
|
# DEPENDENCIAS DE DESARROLLO
|
|
# ============================================================================
|
|
|
|
development:
|
|
# --------------------------------------------------------------------------
|
|
# DOCKER
|
|
# --------------------------------------------------------------------------
|
|
- name: docker-compose
|
|
purpose: "Orquestacion de servicios locales"
|
|
file: "docker-compose.yml"
|
|
|
|
services:
|
|
- frontend (port 3000)
|
|
- backend (port 3001)
|
|
- ml-engine (port 8000)
|
|
- data-service (port 8001)
|
|
- postgresql (port 5432)
|
|
- redis (port 6379)
|
|
|
|
networks:
|
|
- trading-network
|
|
|
|
volumes:
|
|
- postgres_data
|
|
- redis_data
|
|
- ml_models
|
|
|
|
# --------------------------------------------------------------------------
|
|
# JENKINS
|
|
# --------------------------------------------------------------------------
|
|
- name: jenkins
|
|
purpose: "CI/CD pipeline"
|
|
|
|
pipelines:
|
|
- name: "frontend-build"
|
|
trigger: "Push to main"
|
|
steps:
|
|
- npm install
|
|
- npm run build
|
|
- npm run test
|
|
- Deploy to Cloudflare Pages
|
|
|
|
- name: "backend-build"
|
|
trigger: "Push to main"
|
|
steps:
|
|
- npm install
|
|
- npm run build
|
|
- npm run test
|
|
- Build Docker image
|
|
- Push to registry
|
|
- Deploy to production
|
|
|
|
- name: "ml-engine-deploy"
|
|
trigger: "Manual"
|
|
steps:
|
|
- pip install -r requirements.txt
|
|
- pytest tests/
|
|
- Build Docker image (GPU)
|
|
- Deploy to GPU instance
|
|
|
|
- name: "database-migration"
|
|
trigger: "Manual"
|
|
steps:
|
|
- Backup database
|
|
- Run migrations
|
|
- Verify schema
|
|
|
|
# ============================================================================
|
|
# DEPENDENCIAS POR EPICA
|
|
# ============================================================================
|
|
|
|
epic_dependencies:
|
|
OQI-001:
|
|
name: "Fundamentos y Auth"
|
|
status: "Completado"
|
|
depends_on: []
|
|
blocks:
|
|
- OQI-002
|
|
- OQI-003
|
|
- OQI-004
|
|
- OQI-005
|
|
|
|
components:
|
|
- frontend (Auth UI)
|
|
- backend-api (Auth module)
|
|
- postgresql (public schema)
|
|
- redis (sessions)
|
|
- stripe-api (customer creation)
|
|
|
|
external_apis:
|
|
- Google OAuth
|
|
- Facebook OAuth
|
|
- Apple OAuth
|
|
- GitHub OAuth
|
|
- Twilio (SMS)
|
|
|
|
OQI-002:
|
|
name: "Modulo Educativo"
|
|
status: "En Progreso"
|
|
depends_on:
|
|
- OQI-001
|
|
blocks:
|
|
- OQI-007
|
|
|
|
components:
|
|
- frontend (Education pages)
|
|
- backend-api (Education module)
|
|
- postgresql (education schema)
|
|
|
|
external_apis:
|
|
- YouTube API (embeds)
|
|
- Vimeo API (optional)
|
|
|
|
OQI-003:
|
|
name: "Trading y Charts"
|
|
status: "Pendiente"
|
|
depends_on:
|
|
- OQI-001
|
|
blocks:
|
|
- OQI-006
|
|
- OQI-007
|
|
|
|
components:
|
|
- frontend (Chart component)
|
|
- backend-api (Trading module)
|
|
- postgresql (trading schema, market_data)
|
|
- redis (WebSocket pub/sub)
|
|
- data-service
|
|
|
|
external_apis:
|
|
- Polygon.io (historical data)
|
|
|
|
OQI-004:
|
|
name: "Cuentas de Inversion"
|
|
status: "Pendiente"
|
|
depends_on:
|
|
- OQI-001
|
|
- OQI-005
|
|
blocks:
|
|
- OQI-006
|
|
- OQI-008
|
|
|
|
components:
|
|
- frontend (Investment dashboard)
|
|
- backend-api (Investment module)
|
|
- postgresql (investment schema)
|
|
- metaapi
|
|
|
|
external_apis:
|
|
- MetaAPI (broker connection)
|
|
|
|
OQI-005:
|
|
name: "Pagos y Stripe"
|
|
status: "Pendiente"
|
|
depends_on:
|
|
- OQI-001
|
|
blocks:
|
|
- OQI-004
|
|
|
|
components:
|
|
- frontend (Checkout UI)
|
|
- backend-api (Payment module)
|
|
- postgresql (financial schema)
|
|
- stripe-api
|
|
|
|
webhooks:
|
|
- Stripe webhook handler
|
|
|
|
OQI-006:
|
|
name: "ML Signals"
|
|
status: "Pendiente"
|
|
depends_on:
|
|
- OQI-003
|
|
- OQI-004
|
|
blocks:
|
|
- OQI-007
|
|
- OQI-008
|
|
|
|
components:
|
|
- frontend (Signal cards)
|
|
- backend-api (ML proxy)
|
|
- ml-engine
|
|
- data-service
|
|
- postgresql (ml, ml_predictions schemas)
|
|
- redis (cache, pub/sub)
|
|
|
|
external_apis:
|
|
- Polygon.io (data source)
|
|
- MetaAPI (broker prices)
|
|
|
|
OQI-007:
|
|
name: "LLM Strategy Agent"
|
|
status: "Pendiente"
|
|
depends_on:
|
|
- OQI-002
|
|
- OQI-003
|
|
- OQI-006
|
|
blocks: []
|
|
|
|
components:
|
|
- frontend (Chat UI)
|
|
- backend-api (LLM module)
|
|
- ml-engine (tools)
|
|
- postgresql (llm schema - future)
|
|
- redis (conversation cache)
|
|
- claude-api
|
|
|
|
tools:
|
|
- get_ml_signal
|
|
- analyze_chart
|
|
- execute_paper_trade
|
|
- search_education
|
|
|
|
OQI-008:
|
|
name: "Portfolio Manager"
|
|
status: "Pendiente"
|
|
depends_on:
|
|
- OQI-004
|
|
- OQI-006
|
|
blocks: []
|
|
|
|
components:
|
|
- frontend (Portfolio dashboard)
|
|
- backend-api (Portfolio module)
|
|
- postgresql (investment schema)
|
|
- ml-engine (projections)
|
|
|
|
algorithms:
|
|
- Rebalancing optimizer
|
|
- Monte Carlo simulation
|
|
- Risk metrics (Sharpe, Sortino)
|
|
|
|
# ============================================================================
|
|
# GRAFOS DE DEPENDENCIAS
|
|
# ============================================================================
|
|
|
|
dependency_graph:
|
|
critical_path:
|
|
- OQI-001 (Auth)
|
|
- OQI-005 (Payments)
|
|
- OQI-004 (Investment Accounts)
|
|
- OQI-006 (ML Signals)
|
|
- OQI-008 (Portfolio Manager)
|
|
|
|
parallel_tracks:
|
|
education_track:
|
|
- OQI-001 (Auth)
|
|
- OQI-002 (Education)
|
|
- OQI-007 (LLM Agent)
|
|
|
|
trading_track:
|
|
- OQI-001 (Auth)
|
|
- OQI-003 (Charts)
|
|
- OQI-006 (ML Signals)
|
|
- OQI-007 (LLM Agent)
|
|
|
|
# ============================================================================
|
|
# MATRIZ DE RIESGOS
|
|
# ============================================================================
|
|
|
|
risks:
|
|
- risk_id: RISK-001
|
|
description: "Fallo en ML Engine afecta senales"
|
|
probability: MEDIA
|
|
impact: ALTO
|
|
mitigation: "Cache de predicciones en Redis (TTL 1h)"
|
|
affected_epics: [OQI-006, OQI-007, OQI-008]
|
|
|
|
- risk_id: RISK-002
|
|
description: "Stripe webhook no llega"
|
|
probability: BAJA
|
|
impact: CRITICO
|
|
mitigation: "Polling manual cada 5 min como fallback"
|
|
affected_epics: [OQI-005]
|
|
|
|
- risk_id: RISK-003
|
|
description: "Rate limit de Polygon.io"
|
|
probability: ALTA
|
|
impact: MEDIO
|
|
mitigation: "Usar datos MySQL legacy como fallback"
|
|
affected_epics: [OQI-006]
|
|
|
|
- risk_id: RISK-004
|
|
description: "Claude API timeout/error"
|
|
probability: MEDIA
|
|
impact: MEDIO
|
|
mitigation: "Respuestas template, fallback a GPT-4"
|
|
affected_epics: [OQI-007]
|
|
|
|
- risk_id: RISK-005
|
|
description: "MetaAPI conexion falla"
|
|
probability: MEDIA
|
|
impact: ALTO
|
|
mitigation: "Switch a modo investor (solo tracking)"
|
|
affected_epics: [OQI-004, OQI-008]
|
|
|
|
# ============================================================================
|
|
# FIN DE MATRIZ DE DEPENDENCIAS
|
|
# ============================================================================
|