Shadow Tests (MVP)#
Shadow Tests permite evaluar variantes del sistema sin ejecutar operaciones reales.
Que incluye#
- Multiples configuraciones de shadow test.
- Ejecucion manual por configuracion.
- Reporte baseline vs shadow por run.
- Historial de runs.
UI#
- Ruta:
/shadow-tests - Acceso desde menu:
Analisis -> Shadow Tests.
API#
GET /shadow-tests/configsPOST /shadow-tests/configsPATCH /shadow-tests/configs/{id}DELETE /shadow-tests/configs/{id}POST /shadow-tests/configs/{id}/runGET /shadow-tests/runs?config_id=&limit=
Campos de configuracion#
name: nombre de la variante.enabled: activa/inactiva.symbols: lista de simbolos.timeframes: lista de timeframes (M5,M15,H1, etc).decision_scope:blocked_only,allow_only,all.include_reasons/exclude_reasons: filtros por reason.min_favorable_move_pct: umbral para clasificar potencial favorable.min_adverse_move_pct: umbral para clasificar potencial adverso.horizon_multiplier: multiplicador de horizonte por timeframe.min_decisions: muestra minima requerida.infer_side_from_details: permite reconstruir un lado hipotetico cuando la decision guardo diagnosticos pero noBUY/SELL.notes: notas operativas.
Como interpreta resultados (MVP)#
- Si la decision ya genero trade real (
queue_entry_idenlazado), usapnl_usdtreal. - Si no hay trade real, proyecta resultado con velas dentro del horizonte y clasifica:
expected_winexpected_lossexpected_flat- Si
infer_side_from_details=true, el shadow puede usar diagnosticos estructurados del strategy payload para inferir una direccion hipotetica. Hoy esto se usa sobre todo parano_signaldepaxg_mean_reversion, donde la estrategia ya deja trazas de condiciones buy/sell. - Desde
2026-03-13,paxg_mean_reversiontambien persistehypothetical_sideyhypothetical_side_reasoncuando el setup estaba inclinado pero aun no alcanzaba señal accionable. Eso reduce la dependencia de inferencia posterior y mejora la trazabilidad.
Diagnostico operativo#
- API:
GET /ops/strategy/no-signal-diagnostics - Uso recomendado:
symbol=PAXGUSDTtimeframe=M15strategy_name=paxg_mean_reversion
Este resumen separa:
with_explicit_hypothetical_sideinferable_nowblind
Con eso puedes saber si el problema esta en los gates o en que la estrategia no esta
dejando suficiente contexto para auditar los no_signal.
Persistencia#
- Archivo local:
storage/reports/shadow_tests.json
Scheduler automatico#
Variables env:
SHADOW_TESTS_AUTO_RUN(true/false)SHADOW_TESTS_INTERVAL_MINUTESSHADOW_TESTS_DAYSSHADOW_TESTS_MAX_DECISIONSSHADOW_TESTS_MAX_CONFIGS_PER_CYCLE
Cuando esta activo, el backend ejecuta ciclos periodicos sobre todas las configs enabled.
Tambien puedes disparar ciclo manual con:
POST /shadow-tests/run-enabled
Limites del MVP#
- No hay scheduler por config (solo run manual).
- No reemplaza backtests formales; es evaluacion operativa paralela.
- PnL shadow proyectado depende de cobertura de velas y calidad del contexto de decision.
- La inferencia de lado no sustituye un backtest formal; sirve para priorizar que gates o variantes merecen promotion o analisis mas profundo.