branch fix/capital-reconcile-all-bots commit 181aefc built last · auto: refresh dashboard data (2026-06-13 00:20)
GUÍA DEL SALTO DE CALIDAD · análisis de 18 agentes · 2026-06-11
Los modelos no son el problema: el plan para convertir el edge en dólares
Diagnóstico forense + 8 debilidades metodológicas + 6 mejoras de proceso (W) + 6 tests de honestidad (T) + 10 direcciones nuevas verificadas adversarialmente (D) + escalera de capital con gates.
Fuente: workflow de 18 agentes especializados (3 diagnóstico + 3 scouts + verificación adversarial propuesta-a-propuesta contra ~270 rondas cerradas y restricciones duras). Todo verificado contra ROUNDS_LOG, memoria del proyecto y logs vivos.

1. El diagnóstico honesto: por qué "no sacan gran rentabilidad"

El forense en vivo cuantificó las causas, ordenadas por tamaño. Ninguna es "el modelo es malo" — y eso cambia dónde hay que invertir el esfuerzo.

# Causa Tamaño ¿Arreglable?
1 Capital minúsculo: $20/bot × expectancy 2.63%/trade × 3.4 trades/mes = techo $1.6–2.2/mes/bot ($10–12/mes el fleet) aunque el backtest se cumpla al 100% Causa #1 de los DÓLARES bajos SÍ — único lever real de dólares: escalera de capital gateada (§6)
2 Ilusión de compounding: +76.725% = (1,078)^88 meses. >99% del titular es reinversión a 7,3 años; el edge percibible es ~8–11%/mes en régimen MEDIO Domina la percepción Re-encuadrar: medir α mensual vs B&H, no el compound a 9 años
3 Régimen: la ventana viva (mayo–jun 2026) es bear −18%. El propio backtest dice que en lateral/bear el sistema gana ~+0,6%/mes ≈ $0,12/mes/bot. El alpha real apareció como pérdida-evitada: fleet −4,5% vs B&H −18,1% = +13,6 pts de α en 24 días, POR ENCIMA del backtest Grande mientras dure el bear No se fuerza el régimen. Medir α-vs-BH, no PnL absoluto
4 Muestra sin potencia: 8 round-trips ≈ 3 apuestas independientes (ρ≈0,9 entre bots). SE del edge ±2,1%/trade → IC95 ±4,2% incluye tanto +2,6% como −2,6% Bloquea la decisión de capital SÍ con tiempo: gate de 40 RTs (~2 meses)
5 Fees+slippage: RT 0,08–0,14% ($0,02/trade). Slip real medido −2,9 bps (FAVORABLE) Pequeña a $20; crítica al escalar Verificar fee tier real + post-only
6 Ruido contable de arranque (V7 sintético, reinicios) Distorsiona diagnóstico, no wallet Ya en curso (reconcile + ledger)

Conclusión central: la ejecución en vivo es casi perfecta (fills a ±4 bps de la señal), el alpha defensivo se está manifestando por encima del backtest, y el sistema NO está roto. La baja rentabilidad es aritmética del tamaño + régimen + ventana corta. El salto de calidad no saldrá de otro modelo: saldrá de (a) honestidad estadística, (b) proceso, (c) capital gateado, (d) un puñado de direcciones genuinamente nuevas.


2. Análisis en detalle de los modelos actuales: las 8 debilidades reales

La auditoría metodológica encontró dónde cojean de verdad los modelos/medidas actuales:


3. Nueva forma de trabajar (multiplica la calidad de TODAS las rondas futuras)

Seis piezas de infraestructura, ordenadas por ratio impacto/coste. Esto es lo que un equipo cuántico profesional tiene y nosotros no:

# Pieza Qué bug histórico habría evitado Coste
W1 Motor de backtest ÚNICO canónico (src/simulation/) con golden-tests que reproducen R188/R204 al dólar R173 (phantom pyramid), R203 (4 bugs), R210, R251 2–3 días
W2 Pre-registro de hipótesis: yaml con gate falsable commiteado ANTES de ejecutar R195→R196, R227→R227b, R250→R250b (ciclo "win aparente → invalidación" pasa de 3 rondas a 1) medio día
W3 Biblioteca obligatoria de controles (shift-random, future-zero, bar-aligned, bootstrap CI, sane-base) como módulo el y_mdd leak (R230), CVD vs base rota (R252) 1–2 días
W4 CI anti-lookahead: pre-push hook que corre golden tests + controles en fixture pequeño regresiones silenciosas de las reglas de CLAUDE.md 1 día
W5 Ledger permanente de slippage/fees + modo slip='empirical' en el motor la divergencia backtest→producción entera 1–2 días
W6 Pipeline de promoción: paper-trading obligatorio 30d + dashboard diario de divergencia live-vs-backtest V7 se desplegó sin baseline de divergencia cuantificado 2–3 días

4. Tests de honestidad sobre el campeón actual (ANTES de buscar nada nuevo)

Pre-registrados. Si el campeón no los pasa, ninguna dirección nueva importa.

Test Qué mide Gate pre-registrado Coste
T1 — Fragilidad de thresholds Perturbar ±10%/±20% los ~30 parámetros de V115_CMP (200 muestras Sobol), motor honesto, 4 folds Si la mediana de min-α de los vecinos < +150 → el +266 es una cima estrecha (sobreajuste); esperanza deflactada = mediana de vecinos, no el pico CPU 1–2 h
T2 — DSR / winner's curse Contar trials por familia (ROUNDS_LOG) y computar Deflated Sharpe del campeón DSR > 0 con n_trials honesto; publicar la "expectativa deflactada" junto al titular CPU 30–60 min
T3 — Purge/embargo Medir el solape de labels en la frontera train/test y re-correr R188 con purge de H barras Si min-α cae >15% con purge → todas las cifras históricas llevan ese descuento CPU 10 min
T4 — Bootstrap de gates Block bootstrap por-bar 5000 reps de V5 y V66: P(min-α(V5)>min-α(V66)), P(min-α(V5)<0) Adoptar gate estándar: promoción exige p5(min-α) > 0 CPU 15 min
T5 — Scale-aware Re-correr V5 honesto con cap=$20, minNotional, stepSize Delta vs $10K = coste real de operar pequeño; publicarlo CPU 15 min
T6 — PBO/CSCV (López) Probabilidad de backtest overfitting del campeón sobre el set de configs de T1 PBO < 50% para mantener el statu quo de deploy CPU 1 h

5. Direcciones nuevas que SOBREVIVIERON a la verificación adversarial

De 18 propuestas, 10 sobrevivieron (cada una fue atacada por un refutador con acceso a todo el historial). Ordenadas por EV honesto:

Tier A — alta certeza, $0, empezar ya

Tier B — genuinamente nuevos, $0, prior medio

Tier C — cierre formal de categorías (prior bajo, coste casi cero — valen por el registro negativo)

Eliminadas por el verificador (no gastar)


6. La escalera de capital (el único camino real a "gran rentabilidad")

Con el edge actual, los dólares solo crecen con capital. Escalera pre-registrada, cada peldaño con banner:

$20/bot ──[GATE 1]──► $50/bot ──[GATE 2]──► $200/bot ──[GATE 3]──► $1.000+/bot

7. Plan de ejecución sugerido (4 semanas, ~$0)

Semana Qué Por qué primero
1 W1+W3 (motor canónico + controles) y T3/T4/T5 (rápidos, lo usan) + D3 (fee audit, 1h) + D1 poller de bookTicker (cuanto antes empiece, antes hay N) Todo lo demás depende del motor y de los controles
2 T1+T2+T6 (fragilidad, DSR, PBO — el veredicto de honestidad del campeón) + W2 (pre-registro) Decide si la expectativa deflactada justifica la escalera
3 D2 (correlación/consolidación) + D4 (meta-labeling v2) + D6 (V13 anonimizado) Las 3 direcciones nuevas de más EV
4 D5 (grid en gaps) + D8/D9/D10 (cierres formales baratos) + W5/W6 (ledger + pipeline de promoción) Completa el mapa y deja la infraestructura de promoción lista

Métrica de éxito del mes: no es "+X%" — es (1) expectativa deflactada del campeón publicada y positiva, (2) ledger de slippage/fees vivo, (3) ≥3 direcciones nuevas con veredicto pre-registrado PASS/FAIL, (4) gate 1 de la escalera de capital en marcha con el reloj corriendo.


8. Qué NO hacer (sin cambios, reforzado por la verificación)


PARTE II — Nuevas Fronteras (análisis Fable 5, 2026-06-12)

Segundo workflow multi-agente (36 agentes: red-team de la Parte I + auditoría de código + 4 scouts de frontera + verificación adversarial). Esta parte NO sustituye a la Parte I: la corrige donde estaba equivocada y añade lo que 270 rondas dieron por supuesto.

9. 🚨 P0 — Bug de producción CONFIRMADO: los bots operan con velas a medio formar

El hallazgo más importante de todo el análisis. Los 6 bots procesan el kline de Binance en curso como si fuera el bar cerrado de 15min: el loop dispara en cuanto aparece el timestamp nuevo (~15-45s tras abrir la ventana), y ese snapshot parcial entra al buffer para siempre.

Verificación empírica (2026-06-12, all_bars.csv de V5 vs klines oficiales cerrados):

Bar Volumen visto Rango visto Desviación del close
05:15 14,7% del real 21,0% del real 7,1 bps
05:30 2,3% del real 11,7% del real 11,1 bps
05:45 0,2% del real 10,7% del real 4,2 bps

Consecuencias: el GRU se entrenó con bars completos y en vivo recibe features fuera de distribución (ATR comprimido ~10-20%, volumen ~1-15%, OBV/volume_ratio sin sentido); el event-filter y el init_sl ATR-adaptativo operan sobre esos valores; tras cada restart el buffer mezcla histórico real con bars parciales acumulándose. Toda comparación live-vs-backtest hecha hasta hoy (incluido el α +13,6 pts y el slippage "favorable" −2,9 bps, medido contra un close parcial) queda contaminada en magnitud desconocida.

Fix preparado (commit en rama, pendiente de banner): closed_only=True en get_recent_candles (filtra por close_time ≤ now) + los 6 call-sites de run_trader.py. Tras el fix, el bot detecta el bar cerrado ~15-45s tras su cierre y ejecuta al open del siguiente — exactamente la convención del backtest. Validado contra la API real.

10. P1 — Otras fugas encontradas por la auditoría de código

# Fuga Ubicación Impacto
P1.1 save_state() corre ANTES de resetear peaks del trail al entrar → cada restart con posición abierta corrompe el ancla del ratchet ensemble_trader.py:737 vs hybrid_v115_trader.py:576-595 Exits tardíos tras deploys
P1.2 V7 margin: si el SELL aborta, igualmente "liquida" el préstamo en contabilidad → deuda silenciosa + margin-call check desactivado v11_vol_kelly_trader.py:261-285 Céntimos hoy, escala con capital
P1.3 La comisión real NUNCA se observa: place_order descarta fills[].commission exchange.py:454-488 No sabemos si pagamos 0,04% o 0,10% (D3 era esto)
P1.4 trades.csv con columnas desalineadas (ENTER añade cols por-seed sin orden fijo) ensemble_trader.py:1123-1159 Corrompe la telemetría de los leaks
P1.5 Dust: V3/V4/V5/V6/V7 lanzan RuntimeError si el exit cae bajo minQty → bot INVESTED-zombi que parece healthy hybrid_v115_trader.py:621-628 Riesgo de parada silenciosa (V2 ya tiene el fix, portarlo)

11. La realidad de los fees, medida (reencuadra D1/D3 de la Parte I)

12. Los supuestos estructurales nunca testeados (red-team de 270 rondas)

Ordenados por (potencial × baratura del test). Todos CPU, $0:

# Supuesto atacado Por qué importa Test pre-registrado
F1 Bars de TIEMPO (jamás se probó dollar/volume bars — 0 hits en 270 rondas; López cap.2; la conclusión "señal agotada" es CONDICIONAL al muestreo) Si el RF-proxy mejora ΔAUC ≥ +0,02 sobre dollar bars, reabre todo el mapa cerrado Construir dollar bars desde btcusd_1min.csv.gz, mismo label/features, RF walk-forward 4 folds (~2h CPU)
F2 Staleness del modelo: VERIFICADO — el GRU vivo es fold3 de round_069, entrenado solo con datos hasta 2024-05 (25 meses viejo y creciendo); ningún fold lo validó a esta edad La escalera de capital (GATE 2/3) descansa en un edge cuya curva de decaimiento NADIE ha medido RFs con train_end deslizante (2022→2025) evaluados todos sobre 2025Q4-2026Q1 → pendiente AUC-vs-edad (~1h CPU). Si decae >0,01/año → retrain GPU fold4 (~$0,50)
F3 Estructura de la cascada = acreción de la era del motor BUGGY; solo se re-tunearon números (R250), nunca se re-justificó regla a regla 2-4 reglas muertas probables → menos parámetros = expectativa deflactada MÁS ALTA (la métrica que decide la escalera) Ablación leave-one-rule-out de las ~10 reglas estructurales con el motor honesto (~30min CPU)
F4 Paridad live-vs-backtest de predicciones: jamás verificada bit-a-bit (y el P0 garantiza que hoy NO son iguales) Tras el fix P0, validar que las probs del bot = probs del backtest sobre los mismos bars Replay offline de events_predictions.csv vs pipeline de backtest (~30min CPU)
F5 α vivo medido sin condicionar al régimen (la Parte I comparó 24 días bear contra el promedio all-regime) Evita inflar/desinflar el veredicto del gate vivo Distribución de α en ventanas bear de 24d del histórico (~30min CPU)
F6 Multi-horizonte de LABEL (alpha=3/6/12 para exits/entries — R239/240 mezclaron TF de INPUT, no de label) Prior medio-bajo (correlación esperada alta) 3 RFs multi-alpha + correlación de preds (~1h CPU)
F7 Cada categoría "cerrada" sin condiciones de reapertura anotadas Si F1 pasa, TODO el registro negativo de datos debe re-screenearse sobre el nuevo spine Tabla categoría × condición-de-cierre × trigger (documental)

13. Ciclo de vida del modelo (frente virgen, verificado adversarialmente)

14. Alpha Factory — industrializar la generación de hipótesis

El cambio de proceso que un modelo fuerte habilita: pasar de "1 idea humana = 1 ronda" a generar y cribar cientos de expresiones por ronda con honestidad estadística automática:

15. Plan re-priorizado (sustituye al §7 de la Parte I)

Orden Qué Coste Banner
1 P0: deploy del fix de velas parciales (commit listo) + P1.3 (loguear fills) + P1.5 (dust) rebuild + restart
2 L1: comprar ~$5 BNB/cuenta (activa el −25% de fees) 5 min SÍ (toca wallet)
3 F4: paridad live-vs-backtest post-fix + re-medir slippage real (R205 estaba contaminado) CPU No
4 T1-T6 de la Parte I (honestidad del campeón) + F3 (ablación de cascada, alimenta T2) CPU No
5 F2: curva de decaimiento por staleness → decide si retrain GPU fold4 antes de GATE 2 CPU→$0,50 No
6 F1: dollar bars (el único test que puede REABRIR el mapa) CPU 2h No
7 P1.1/P1.2/P1.4 + L5 (quoteOrderQty) en el mismo deploy que un futuro cambio con #1 o siguiente
8 Fee stack: entries LIMIT_MAKER en BTCFDUSD (tras shadow A/B del HALLAZGO #1: maker condicionado a imbalance) CPU→deploy
9 Lifecycle 1-4 + Alpha Factory AF-0→AF-2 CPU/$0,50 No
10 Estacionalidad 21-23 UTC standalone (prior bajo — R227 mató el filtro ToD; esto es sleeve independiente; fase 1 con t >2 o cerrar) CPU No

Las conclusiones de la Parte I que esta parte CORRIGE: (a) "la ejecución es casi perfecta" → era una medición contra bars parciales; re-medir post-fix; (b) D1 post-only en BTCUSDC → negativo, el lever es FDUSD; (c) D7/yield cash → cerrado por MiCA; (d) la escalera de capital necesita F2 (staleness) como gate adicional antes del peldaño 2.