--- id: RF-MKT-004 title: Visualizacion Premium type: requirement status: Draft priority: High epic: OQI-009 project: trading-platform version: 1.0.0 dates: created: 2026-01-04 updated: 2026-01-04 tags: - marketplace - visualization - charts - indicators - tradingview --- # RF-MKT-004: Visualizacion Premium ## Descripcion El modulo de Visualizacion Premium ofrece herramientas graficas avanzadas tipo TradingView, incluyendo indicadores ML exclusivos, backtesting visual y alertas avanzadas. Complementa el modulo base de charts con funcionalidades premium. ## Objetivo Monetizar las capacidades de visualizacion ofreciendo indicadores ML exclusivos y herramientas avanzadas de analisis que diferencien la plataforma de competidores. ## Pricing ### Visualizacion Premium | Caracteristica | Valor | |----------------|-------| | Precio | $19/mes USD | | Tipo | Subscription | | Alternativa | Incluido en Plan Pro+ | ## Indicadores Disponibles ### Indicadores Basicos (Plan Free) | Indicador | Descripcion | |-----------|-------------| | SMA | Simple Moving Average | | EMA | Exponential Moving Average | | RSI | Relative Strength Index | | MACD | Moving Average Convergence Divergence | | Bollinger Bands | Bandas de volatilidad | | Volume | Volumen de operaciones | ### Indicadores ML Exclusivos (Premium) #### 1. Predictor de Rango ```yaml name: Range Predictor id: ml_range_predictor description: Predice rangos de precio para las proximas 4-24 horas features: - Rango esperado (high/low) - Probabilidad de breakout - Volatilidad esperada - Zonas de soporte/resistencia dinamicas visualization: - Bandas de rango proyectadas - Colores por probabilidad - Flechas direccionales ``` #### 2. AMD Detector ```yaml name: AMD Pattern Detector id: ml_amd_detector description: Detecta patrones Accumulation-Manipulation-Distribution features: - Identificacion de fase actual - Alertas de cambio de fase - Volumen institucional estimado - Zonas de interes visualization: - Overlay en chart principal - Colores por fase (A=verde, M=amarillo, D=rojo) - Marcadores de eventos ``` #### 3. Signal Overlay ```yaml name: Signal Overlay id: ml_signal_overlay description: Muestra senales ML directamente en el grafico features: - Puntos de entrada/salida - Stop loss y take profit - Confidence por senal - Historial de senales visualization: - Flechas de BUY/SELL - Lineas de SL/TP - Panel de stats ``` #### 4. Smart Money Tracker ```yaml name: Smart Money Tracker id: ml_smart_money description: Rastrea movimientos de ballenas y institucionales features: - Deteccion de ordenes grandes - Flujo de capital - Zonas de liquidez - Divergencias retail vs institucional visualization: - Histograma de flujo - Overlay de zonas - Alertas de movimiento ``` ## Funcionalidades Premium ### Backtesting Visual ```gherkin Feature: Backtesting Visual Scenario: Ejecutar backtest Given tengo Visualizacion Premium activa And estoy en chart de BTC/USDT When configuro backtest: | parametro | valor | | estrategia | AMD + Signals | | periodo | 90 dias | | capital | $10,000 | Then veo resultados en el grafico And veo trades simulados marcados And veo metricas de performance Scenario: Ver estadisticas de backtest Given he ejecutado un backtest Then veo: | metrica | ejemplo | | Total trades | 45 | | Win rate | 67% | | Profit factor | 2.3 | | Max drawdown | -12% | | Sharpe ratio | 1.8 | ``` ### Alertas Avanzadas ```gherkin Feature: Alertas de Indicadores Scenario: Crear alerta de indicador Given tengo Premium activo When creo alerta para AMD Detector And configuro: "Notificar cambio de fase a Distribution" Then la alerta se activa And recibo notificacion cuando detecte fase D Scenario: Alertas combinadas Given tengo multiples indicadores When creo alerta combinada: | condicion | | AMD en fase Accumulation | | AND Signal Overlay muestra BUY | | AND Range Predictor < 5% volatil | Then recibo alerta solo si todas se cumplen ``` ### Multi-Chart Layout ```gherkin Feature: Multi-Chart Scenario: Layout personalizado Given tengo Premium activo When creo layout de 4 charts And asigno BTC, ETH, SOL, AVAX Then veo 4 charts sincronizados And puedo guardar layout And el zoom/scroll es sincronizado ``` ## Integracion con OQI-003-trading-charts ```mermaid flowchart LR subgraph OQI-003 [Trading Charts Base] A[Chart Engine] B[Basic Indicators] end subgraph OQI-009 [Marketplace Premium] C[ML Indicators] D[Backtesting] E[Advanced Alerts] end A --> C A --> D B --> E C --> A ``` ### Extension del Chart Engine ```typescript // Interfaz para indicadores premium interface PremiumIndicator { id: string; name: string; type: 'overlay' | 'panel'; requiresSubscription: boolean; calculate(data: OHLCV[]): IndicatorResult; render(ctx: CanvasRenderingContext2D): void; } // Registro de indicadores premium const premiumIndicators: PremiumIndicator[] = [ new RangePredictorIndicator(), new AMDDetectorIndicator(), new SignalOverlayIndicator(), new SmartMoneyIndicator() ]; ``` ## Modelo de Datos ### Tabla: `visualization_subscriptions` | Campo | Tipo | Descripcion | |-------|------|-------------| | id | UUID | Identificador unico | | user_id | UUID | FK a users | | product_id | UUID | FK a products | | subscription_id | UUID | FK a subscriptions | | started_at | TIMESTAMP | Inicio suscripcion | | expires_at | TIMESTAMP | Expiracion | | is_active | BOOLEAN | Estado activo | ### Tabla: `user_chart_layouts` | Campo | Tipo | Descripcion | |-------|------|-------------| | id | UUID | Identificador unico | | user_id | UUID | FK a users | | name | VARCHAR(100) | Nombre del layout | | layout_config | JSONB | Configuracion de charts | | indicators | JSONB | Indicadores activos | | is_default | BOOLEAN | Layout por defecto | | created_at | TIMESTAMP | Fecha creacion | ### Tabla: `indicator_alerts` | Campo | Tipo | Descripcion | |-------|------|-------------| | id | UUID | Identificador unico | | user_id | UUID | FK a users | | indicator_id | VARCHAR(50) | ID del indicador | | symbol | VARCHAR(20) | Par de trading | | conditions | JSONB | Condiciones de alerta | | notification_channels | JSONB | Canales de notificacion | | is_active | BOOLEAN | Alerta activa | | last_triggered | TIMESTAMP | Ultimo trigger | | created_at | TIMESTAMP | Fecha creacion | ### Tabla: `backtest_results` | Campo | Tipo | Descripcion | |-------|------|-------------| | id | UUID | Identificador unico | | user_id | UUID | FK a users | | symbol | VARCHAR(20) | Par de trading | | strategy_config | JSONB | Configuracion estrategia | | period_start | TIMESTAMP | Inicio periodo | | period_end | TIMESTAMP | Fin periodo | | initial_capital | DECIMAL(15,2) | Capital inicial | | final_capital | DECIMAL(15,2) | Capital final | | total_trades | INT | Total de trades | | win_rate | DECIMAL(5,2) | Porcentaje ganadores | | profit_factor | DECIMAL(5,2) | Factor de beneficio | | max_drawdown | DECIMAL(5,2) | Drawdown maximo | | sharpe_ratio | DECIMAL(5,2) | Ratio Sharpe | | trades | JSONB | Detalle de trades | | created_at | TIMESTAMP | Fecha ejecucion | ## Reglas de Negocio 1. **RN-001**: Indicadores basicos disponibles en plan Free 2. **RN-002**: Indicadores ML requieren suscripcion Premium o Plan Pro+ 3. **RN-003**: Backtesting limitado a 30 dias en Free, ilimitado en Premium 4. **RN-004**: Maximo 3 alertas en Free, ilimitadas en Premium 5. **RN-005**: Multi-chart (hasta 4) solo en Premium 6. **RN-006**: Layouts guardados: 1 en Free, ilimitados en Premium ## Comparativa de Planes | Feature | Free | Premium ($19/m) | Pro+ | |---------|------|-----------------|------| | Indicadores basicos | Si | Si | Si | | Indicadores ML | No | Si | Si | | Backtesting | 30 dias | Ilimitado | Ilimitado | | Alertas | 3 | Ilimitadas | Ilimitadas | | Multi-chart | No | 4 charts | 8 charts | | Layouts guardados | 1 | Ilimitados | Ilimitados | ## Criterios de Aceptacion - [ ] Indicadores ML renderizados correctamente - [ ] Backtesting funcional con resultados visuales - [ ] Sistema de alertas avanzadas - [ ] Multi-chart sincronizado - [ ] Guardado de layouts personalizados - [ ] Verificacion de suscripcion para features premium - [ ] Degradacion graceful cuando expira suscripcion ## Dependencias - **OQI-003-trading-charts**: Motor de graficos base - **OQI-006-ml-signals**: Datos de senales ML - **OQI-004-payments**: Suscripciones ## Referencias - [US-MKT-004: Activar Visualizacion](../historias-usuario/US-MKT-004-activar-visualizacion.md) - [ET-MKT-001: Database](../especificaciones/ET-MKT-001-database.md)