Saltar a contenido

Changelog#

Todos los cambios relevantes del proyecto se documentan en este archivo.

Formato basado en Keep a Changelog y versionado SemVer.

[Unreleased]#

Added#

  • Guía funcional publicada en docs: docs/guides/sdp_funcionalidades_y_funcionamiento.md con resumen por rol y operación end-to-end.
  • Smoke autenticado MATVARD (scripts/check_matvard_auth_endpoints.sh) integrado en deploy release con modo auto/true/false y soporte --auth-env-file.
  • UX frontend reforzada en páginas clave (dashboard, control-tower, matvard) con héroes consistentes, navegación más clara y chips de acceso rápido.
  • Analitica (/analytics) ahora muestra un bloque "Por que del trade" en el panel de trade seleccionado con decision AP, motivo humanizado, why_not_trade y señales clave extraidas de details_json.
  • Analitica incorpora bloque "Explicacion ejecutiva" por trade con texto listo para copia, orientado a revision humana rápida y handoff operativo.
  • Endpoint Ops GET /ops/binance/health para diagnostico rapido de conectividad Binance (server_time/account/open_orders) con fail_count y estado agregado.
  • Runbook operativo docs/operational/binance_health_runbook.md para troubleshooting de 401/credenciales y monitoreo de salud Binance.
  • Script scripts/alert_binance_endpoint_failures.py para alertar por Telegram cuando ops/binance/health falla de forma consecutiva.
  • Script scripts/pve_tmp_gc.sh para limpieza de tarballs signaldashpro-*.tgz en /tmp del host PVE.
  • Servicio de ingesta de microestructura Binance (trade/depth/kline_1m) para MATVARD v3 con persistencia en tablas dedicadas (microstructure_*).
  • Endpoint ops GET /ops/strategy/matvard/microstructure-health para salud/calidad de provider y checks de hard-stop.
  • Integración visual en Control Tower para Daily Auction Brief + salud microestructura MATVARD.
  • Guía operativa nueva: docs/guides/operational/senior_code_review_optimization_plan.md.
  • Timer systemd para smoke de autenticacion Binance Demo (signaldashpro-binance-demo-auth-smoke.timer).
  • Script operativo deploy/ops/binance_demo_auth_smoke.sh para verificar login + estado + cuenta Binance Demo.
  • Soporte opcional de webhook HTTP en el smoke de Binance Demo para alertar fallos (BINANCE_DEMO_AUTH_ALERT_*).
  • Bloque de acciones operativas de 24h en TODO.md para seguimiento post-auditoria.
  • Script scripts/run_paxg_tuning.py para grid search de parámetros paxg_mean_reversion sobre velas históricas M15.
  • Bitácora viva docs/matvard/archive/RESUMEN_ESTRATEGIA_EN_CONSTRUCCION.md para trazabilidad de la evolución MATVARD.
  • Script scripts/run_paxg_forward_guardrails.py para validar forward de PAXG (veredicto watch/hold/rollback) sobre runtime settings y ops/strategy/performance.
  • Script scripts/run_paxg_1y_compare.py para comparar 1 año de estrategias PAXG con velas públicas Binance M15.
  • Estrategia backend/services/strategies/paxg_matvard_hybrid.py para formalizar la variante combinada MATVARD en modo autónomo de autopilot.
  • Modo walk-forward en scripts/run_paxg_timeframe_sweep.py con ventanas train/test rodantes por timeframe y reporte storage/reports/paxg_timeframe_walkforward_binance.json.
  • Ranking automatico de promocion y plan de validacion forward dentro de scripts/run_paxg_timeframe_sweep.py para priorizar baseline M15 y candidato shadow M5 con veredictos promote/watch/reject.
  • Endpoint Ops GET /ops/reports/paxg-timeframe/latest para exponer en API el reporte walk-forward de PAXG con promotion_ranking y forward_validation_plan.
  • Panel humanizado en frontend/src/app/shadow-tests/page.tsx para mostrar baseline recomendado, candidato shadow y decision rapida (promote/watch) de forma operativa y entendible.
  • Refinado el panel humanizado de Shadow Tests con etiquetado legible de estrategias, timestamp del reporte y tarjetas top-3 (promover/observar/descartar) para decision operativa rapida.
  • Humanizacion extendida en todas las secciones de frontend/src/app/shadow-tests/page.tsx (titulos, botones, tablas, formularios y estados) para lectura operativa mas clara y menos tecnica.
  • Blueprint UX global en docs/design/archive/UX_HUMANIZATION_BLUEPRINT_2026_03_15.md con analisis y plan de humanizacion para todas las ventanas del frontend.

Changed#

  • MATVARD avanzado en modo strict quedó calibrado para reducir bloqueo no_signal en shadow (relajación controlada de min_context_score, forecast_min_confidence, max_poc_deviation_pct, min_expected_move_pct_net y require_value_extreme_for_entry).
  • scripts/run_solusdc_playbook_daily.sh usa SOLUSDT por defecto y ahora endurece autenticación con fallback OPS_AUTH_* + recuperación automática ante 401.
  • Endpoint de performance (/ops/strategy/performance) alinea kpis_matvard con estrategia activa autopilot:matvard_advanced_shadow (ya no agrega por default con shadow v1).
  • Corte documental "new day reset" (2026-04-09): se archivó material legacy en docs/archive/2026-04-09_new_day_reset/ y se estableció canon vNext en docs/matvard/IMPLEMENTATION_PLAN_VNEXT_SAM.md, docs/matvard/README.md, docs/TODO.md y docs/AUDIT_NEW_DAY_2026-04-09.md.
  • Actualiza la calibración predeterminada (runtime defaults) para la estrategia paxg_mean_reversion desde perfiles P99 (0.159% vol, 4.54x vol_ratio) hacia perfiles P75 más realistas (0.15% vol, 1.5x vol_ratio) basados en el último análisis backtest.
  • Analitica (/analytics) mejora la UX de búsqueda dividiendo el botón "Buscar simbolo activo" en dos acciones explícitas: "Actividad en Símbolo Actual" e "Ir al Símbolo Más Activo".
  • Analitica (/analytics) mejora el asistente de overlays con modo explícito de fetch (lookback vs rango visible) para reducir falsos vacíos al cambiar contexto de símbolo.
  • Analitica muestra estado de modo de fetch en UI (modo lookback forzado / rango visible activo|pendiente) para hacer trazable por qué no aparecen overlays.
  • Defaults de diagnostico en Analitica: symbol=BTCUSDT y timeframe=M15 para priorizar flujo intradia.
  • Analitica soporta parametros URL ?symbol=...&timeframe=... para abrir contexto exacto desde enlaces operativos.
  • Frontend /binance ahora soporta carga parcial (Promise.allSettled) y muestra errores por endpoint con causa (401, 403, 5xx) en lugar de fallo global opaco.
  • Frontend docs page (/docs) ahora resuelve docsUrl en runtime del navegador (no en scope de módulo), evitando que enlaces públicos apunten a 127.0.0.1 por render inicial no-local.
  • Config backend: DATABASE_URL fallback saneado para no incluir contraseña embebida en código fuente.
  • Frontend: resolución de backend base URL unificada en frontend/src/lib/backend.ts y reutilizada en api.ts + login/page.tsx para evitar drift de configuración (/api/proxy vs URL directa).
  • Hardening de tipado frontend en control-tower y lib/api: eliminación de any, tipado de respuestas paginadas (ApiWithMeta) y lectura segura de campos dinámicos (details).
  • Compose CT110 (deploy/docker-compose.ct110.yml) ahora respeta MATVARD_MICROSTRUCTURE_AUTO_RUN/MATVARD_ORDERBOOK_AUTO_RUN desde env y evita sobrescribirlos con valores fijos que bloqueaban microestructura real.

  • MATVARD v3 actualizado en documentación canónica de su momento (docs/matvard/README.md, docs/matvard/ESTRATEGIA_TECNICA_RUNTIME.md, docs/matvard/PLAYBOOK_SOLUSDC_REAL.md) con estado real CT110 al 2026-03-29.

  • docs/TODO.md y docs/HANDOFF.md alineados al cierre de fase MATVARD v3 y apertura de fase de revisión senior/optimización segura.
  • MATVARD consolidado a una sola estrategia/documentacion canónica (autopilot:paxg_matvard_v1_shadow) bajo docs/matvard/; documentos legacy movidos a docs/matvard/archive/ y navegación de MkDocs ajustada a la nueva estructura.
  • Documentacion principal alineada al estado real de runtime (README/HANDOFF/TODO) con fecha 2026-03-15.
  • Estado de Autopilot documentado como paxg_mean_reversion en M15 para PAXGUSDT.
  • Runbook de smokes actualizado para reflejar timers activos y verificacion operativa en CT110.
  • PAXG_DEPLOYMENT_STATUS.md reclasificado como snapshot histórico con guía explícita hacia estado vigente.
  • MULTI_STRATEGY_ARCHITECTURE.md formalizado como RFC (no runbook) con nota de vigencia y criterios de activación.
  • Ejecutado tuning de PAXGUSDT (grid de 6561 combinaciones) y aplicada en runtime la variante líder por score vía /settings/autopilot.
  • Ajuste posterior de robustez: promovida la mejor variante con mínimo 30 trades (bb_period=20, bb_std=1.8, rsi_period=21, rsi 35/65, tp/sl 1.5/0.5) en runtime settings.
  • Añadida comparación explícita entre la variante líder por score y la variante líder por robustez en PAXG_DEPLOYMENT_STATUS.md.
  • Ejecutado backtest anual (1 año, velas públicas Binance M15) para comparar variantes score_leader, robust_current y robust_candidate_sl04, con reporte en storage/reports/paxg_1y_variants_compare.json.
  • Promovida en runtime la variante anual candidata de la familia robusta ajustando AUTOPILOT_PAXG_SL_MULT de 0.5 a 0.4 (reason: paxg_1y_candidate_sl04_2026_03_15).
  • Documentado procedimiento de validación forward 72h y reporte inicial en storage/reports/paxg_forward_guardrails_latest.json.
  • Ejecutado comparativo anual de tres estrategias PAXG codificadas (ma_crossover, range_breakout, paxg_mean_reversion robust SL=0.4) con reporte en storage/reports/paxg_1y_three_strategies_binance.json.
  • Integrada paxg_matvard_hybrid en runtime (config, autopilot service, autopilot router) y ampliado comparativo anual para incluir su resultado 1y.
  • Operativa runtime ajustada a guardrail USDT-only para PAXG en Spot Demo: AUTOPILOT_ALLOW_SELL=false + TRADE_MANAGER_ENABLED=false + TRADE_MANAGER_AUTO_RUN=false (modo manual).
  • Documentación operativa alineada a estado real 2026-03-17 en AGENTE.md, HANDOFF.md y TODO.md.
  • Integrados filtros de volatilidad y volumen en estrategia paxg_mean_reversion para mejorar entrada de operaciones: _historical_volatility() (30-bar) y volume_ratio (current vs 20-bar MA). Filtros opcionales y configurables via /settings/autopilot con parámetros AUTOPILOT_PAXG_MAX_VOLATILITY_PCT y AUTOPILOT_PAXG_MIN_VOL_RATIO.
  • Backtest validación (90 días, M15 PAXGUSDT Binance): filtros reducen trades 61% (31→12), mejoran win-rate +22.8pp (35.5%→58.3%), convierte PnL negativo a positivo (-2.03%→+1.67%), incrementan Profit Factor +188% (1.55→4.47).
  • Desplegados filtros en runtime con valores MAX_VOLATILITY_PCT=0.159% y MIN_VOL_RATIO=4.54x vía endpoint /settings/autopilot (2026-03-17 14:30 UTC).

Fixed#

  • Corrección de parser en smoke autenticado MATVARD para endpoints con query-string compleja (= en parámetros), evitando falsos negativos de verificación.
  • Fix Analitica: Buscar simbolo activo ahora limpia rango visible y fuerza consulta por lookback para evitar estado overlays=0 causado por range:visible stale al cambiar símbolo.
  • Fix backend /analytics/overlay-activity: cuando se envía symbols=..., el scope queda restringido a esos símbolos para evitar que actividad global oculte el símbolo solicitado.
  • Hotfix en ingesta depth Binance combinada (@depth20@100ms) para payloads sin event_type explícito y soporte bids/asks además de b/a.
  • Backtest anual completo (365 días M15, balance $1000, Binance PAXGUSDT): ejecutado con filtros calibrados realísticamente a partir de análisis de 1 año de datos históricos. Resultados: 257 trades (69W/188L), 26.8% WR, +$124.62 PnL (+12.46%), PF=1.23, DD=7.43%. Calibración de filtros: MAX_VOL=0.15% (percentil 75 del dataset), MIN_VOL_RATIO=1.5x (percentil 75 vs 4.54x anterior que era percentil 99+ e inviable). Aprendizaje: posición sizing corregido para respetar balance disponible. Reporte: storage/reports/paxg_1y_with_filters_final_2026_03_17.json.
  • Correccion operativa en CT110: permiso de ejecucion faltante en scripts/check_binance_demo_auth.sh que causaba Permission denied en el timer de smoke.
  • Recuperacion de validacion de smoke Binance Demo a estado SMOKE_OK tras ajuste de permisos.
  • Mitigado patrón operativo de rechazos saldo_base_insuficiente en salidas SELL originadas por trade_manager, dejando el ciclo de auto-exit deshabilitado en runtime.
  • Hotfix deploy/ops/binance_demo_auth_smoke.sh: ejecucion robusta con bash scripts/check_binance_demo_auth.sh para evitar nuevos rc=126 por permisos y mantener signaldashpro-binance-demo-auth-smoke.timer en verde.
  • Hotfix deploy/ops/m15-autopromote.sh: fallback de credenciales (OPS_AUTH_EMAIL/OPS_AUTH_PASSWORD) cuando faltan AUTH_BOOTSTRAP_*, eliminando 401 Unauthorized recurrentes en signaldashpro-m15-autopromote.timer.
  • Fix de precedencia de entorno en deploy/docker-compose.ct110.yml: se elimino la sobreescritura de MATVARD_MICROSTRUCTURE_AUTO_RUN y MATVARD_ORDERBOOK_AUTO_RUN desde .env.compose para que backend y microstructure-worker tomen estos flags del perfil runtime persistente env/.env.binance.demo.month.
  • Ajuste adicional de estabilidad: backend queda forzado a MATVARD_MICROSTRUCTURE_AUTO_RUN=false y MATVARD_ORDERBOOK_AUTO_RUN=false; la ingesta/orderbook quedan solo en microstructure-worker para evitar bloqueo del API server.
  • Resiliencia WS MATVARD: binance_microstructure_ingestor y orderbook_engine ahora usan timeouts de ping configurables por entorno (MATVARD_WS_PING_INTERVAL_SECONDS, MATVARD_WS_PING_TIMEOUT_SECONDS, MATVARD_ORDERBOOK_WS_*) con default de timeout mas tolerante para reducir reconexiones por keepalive ping timeout.
  • GET /ops/strategy/matvard/microstructure-health alineado a runtime MATVARD: ahora respeta AUTOPILOT_PAXG_MAT_DEEP_PROFILE_HARD_STOP_ENABLED y umbrales configurables (MAX_PROVIDER_ERROR_RATE, MAX_FALLBACK_RATE, MIN_COVERAGE_PCT, MAX_FEED_RECENCY_SECONDS), e incluye policy_enabled + thresholds en la respuesta.
  • Frontend UI/UX: agregado sistema de temas globales con selector (light, dark, neon, stich) persistente en localStorage, aplicado desde layout/header/nav via tokens CSS (data-theme).

Security#

  • En este ajuste no se movieron credenciales entre archivos .env; solo se retiró un default sensible hardcodeado del código backend.
  • Se mantiene la recomendacion de no versionar secretos y operar credenciales solo por archivos env/* gitignored en servidor.

[0.1.0] - 2025-02-11#

Added#

  • Reestructura completa de documentacion (docs/ con C4, ADR, diseno, operacion, guias).
  • Nuevo rest-openapi.yaml (esqueleto) + validacion via spectral.
  • README.md simplificado con quickstart y enlaces clave.
  • Archivos base de gobernanza: CONTRIBUTING.md, CHANGELOG.md, LICENSE y plantilla de PR.
  • Integracion documental de script de alertas operativas.

Recomendacion operativa: agregar una entrada en Unreleased en cada PR que cambie comportamiento funcional, APIs, estrategia, despliegue o runbooks.