🗓️ Cronograma
🔀 Flujo de decisión (dos carriles en paralelo)
Carril superior: recuperar la operativa (venue nuevo). Carril inferior: el LAB desarrolla el modelo de nueva generación. Se encuentran cuando un candidato pasa sus gates y se despliega sobre la flota ya relanzada.
Elaborado por equipo de 5 agentes (retrospectiva + inventario + venue con datos web actuales + arquitecto + red-team de ejecutabilidad) el 2026-07-17. Los 16 hallazgos del red-team (4 críticos) están incorporados en esta versión. Redactado para ser ejecutado paso a paso por cualquier operador (humano o IA) sin juicio experto: cada paso es literal y cada gate es numérico.
0. Las 5 verdades que gobiernan este plan (de la retrospectiva)
- El sistema es un ESCUDO probado, no una espada. En vivo: α +6..+15 pts vs B&H, todo por
pérdida evitada (WR de trades 1/21). Expectativa honesta de alpha del campeón ≈ +0,5 (deflactado).
El plan declara esa expectativa — nadie promete rentabilidad ofensiva con la config actual.
- No hay candidato nuevo. El LAB ejecutó TODA su fase GPU (L032-L034, 2026-07-03) y las 3 ramas
fallaron. L001-L034 no produjo nada ≥ +74 honesto. El GRU v1 + cascada es una co-adaptación
irreemplazable pieza a pieza (L005: cambiar el modelo cuesta Δ−90; L020: 36/36 mezclas negativas).
→ Se redeploya tal cual, congelado (con init_sl — R277b), o no se redeploya.
- El fee es EL lever. Fee real Binance era 0,095%/lado. Kraken spot hoy = 0,40/0,80%
(inviable, 8×). Kraken Futures (perp BTC a 1×) = 0,02/0,05% → RT 0,10%, la mitad de lo
que pagábamos. Es la única vía regulada (MiCA+MiFID) que MEJORA nuestros costes.
- 6 bots eran 2-3 apuestas (ρ≈0,9). Se relanzan 2 bots: V5-clase (cascada canónica) y
V2-clase (ensemble, la familia más distinta). Ni V4 (peor vivo) ni V7-vol-Kelly (necesita
sizing modular re-validado; el relanzamiento es a 1× fijo, sin apalancamiento).
- Investigación abierta con EV>0 (poca, y barata): validación forward de CPI-sorpresa (L023,
$0), track volatilidad/VRP (L014, único edge positivo-en-todo-régimen medido), y el gate vivo
como fuente de datos. Todo lo demás está cerrado con dato — no re-abrir sin evidencia nueva.
F1 — Liquidación Binance + alta en Kraken (agosto, semanas 1-2)
Objetivo: cerrar el capítulo Binance sin pérdidas evitables; venue nuevo operativo y verificado.
Usuario: TODO en esta fase es del usuario (cuenta/capital). El operador IA solo verifica.
- [USUARIO] En la app de Binance: revisar la sub-cuenta margin de V7 — si hay deuda USDC
pendiente, repagarla primero (Margin → Repay). Después cerrar las 6 posiciones BTC (vender
a mercado desde la UI; las cantidades reales las muestra la propia app — no usar archivos locales).
- [USUARIO] Retirar todo el USDC/EUR de Binance (a banco vía SEPA, o directo a Kraken).
- [USUARIO] Alta en Kraken + KYC + test de conveniencia MiFID (obligatorio para Futures).
Activar Kraken Futures. Depositar el capital (recomendado: 200-300 EUR para empezar).
- [USUARIO] Crear API key de Kraken Futures con permisos de trading (NO retirada). Guardarla
en el servidor: ~/.kraken_futures_key (formato: KEY\nSECRET, chmod 600).
- [IA] Verificar API:
GET /derivatives/api/v3/accountsdevuelve colateral > 0.
GATE F1-A: respuesta 200 con flex.collateralValue ≥ 100 (USD).
- [IA] Verificar fees reales del tier: consultar el endpoint de fee schedule o 1 orden mínima
de prueba en el entorno DEMO. **GATE F1-B: maker ≤ 0,03%/lado Y taker ≤ 0,06%/lado. Si el
fee real por lado > 0,10%: STOP y reevaluar venue (el plan pierde su justificación de costes).**
- [IA] Registrar en
LEARNINGS.mdlos fees confirmados y enarchive/el cierre de Binance.
Contingencia: si el usuario no pasa el test MiFID → fallback a Bitvavo spot (MiCA, fees 0,15/0,25%
en tier base — peor que perp pero 3× mejor que Kraken spot) y adaptar F2 al conector spot.
F2 — Conector Kraken Futures + paridad + paper (agosto, semanas 3-4)
Objetivo: portar la capa de exchange SIN tocar la lógica de trading; paridad verificada; paper corriendo.
Usuario: nada (sin dinero real en juego).
- [IA] Verificar que
maincontiene los commits de paridad: `git log --oneline main | grep -E
"03ec847|4294abc|93ee996"` (P0 velas, P2 ATR/vol-buffer, P3 OBV). Si falta alguno → la rama de
trabajo es fix/capital-reconcile-all-bots, no main. Crear rama feature/kraken-futures desde
la que los contenga.
- [IA] Auditar el acoplamiento real:
grep -rn "binance\|Binance" src/production/*.py— listar
qué traders importan algo de Binance directamente (NO asumir que solo hablan con la interfaz).
Corregir esos imports ANTES de escribir el conector.
- [IA] Escribir
src/production/kraken_futures_exchange.pyimplementando LOS MISMOS métodos
públicos que BinanceExchange (place_order, get_recent_candles con closed_only, get_balance,
get_account_summary, _log_fills...). Reglas duras: PF_XBTUSD, tamaño = colateral × 1,0 fijo
(vol-Kelly DESACTIVADO en el relanzamiento — sin contradicciones de leverage), semántica
detect@close[i]→execute@open[i+1] intacta (decisión R273: k+1).
- [IA] Breakers de paridad sobre el conector nuevo, en orden:
- #1 velas: usar SOLO klines cerradas (equivalente a closed_only=True).
- #2 OBV: recalcular el offset de baseline para el histórico de Kraken con el procedimiento:
features full-history del CSV canónico vs features del buffer de 10k → offset = diferencia de
nivel OBV en el mismo bar. Actualizar data.obv_baseline_offset en configs.
- #3 TZ: verificar contra ancla de evento conocido que las velas de Kraken vienen en UTC puro.
- #4 fee: actualizar commission_rate (clave exacta en configs) al fee confirmado en F1-B.
- [IA] Test de paridad de datos: 500 velas 15m PF_XBTUSD vs BTCUSDT spot Binance (público).
GATE F2-A: mediana |Δclose| ≤ 0,15% (umbral relajado: hay base perp-spot + funding; si
0,15-0,30%, documentar y seguir; >0,30% investigar).
- [IA] Golden tests del motor:
python3 -m pytest tests/test_golden_engine.py -q.
GATE F2-B: 5/5 passed (la suite tiene 5 tests).
- [IA] Paper-trade: lanzar el bot V5-clase contra el entorno DEMO de Kraken Futures
(demo-futures.kraken.com, claves demo) — no simular fills localmente, usar el demo real.
**GATE F2-C: 14 días de paper con ≥1 ciclo señal→orden→fill demo sin errores, y log de
funding recibido en ≥95% de las horas.**
F3 — Relanzamiento real: 2 bots, capital mínimo (septiembre)
Objetivo: dinero real en el venue nuevo. Expectativa declarada: ESCUDO.
Usuario: BANNER de deploy + confirmar capital (100 EUR/bot).
- [IA] Configs nuevos:
production_v5k.yaml(cascada V115_CMP congelada CON init_sl — R277b:
es el único stop duro; NO cascada mínima; NO gates L1/L2 — R278) y production_v2k.yaml
(ensemble). commission_rate = fee F1-B. Leverage fijo 1,0.
- [IA] docker-compose con 2 servicios nuevos; los 6 antiguos QUEDAN pausados (archivo histórico).
- [USUARIO] Banner de deploy. [IA] build + up + verificación post-restart (bar cerrado,
healthcheck, primera decisión logueada).
- [IA] Re-medir slippage y fees reales sobre los primeros 3 fills.
GATE F3-A: |slip| mediana ≤ 10 bps y fee = esperado ±10%. Si no: pausar y reportar.
- [IA] Circuit breakers activos (pre-registrados): DD de bot >20% desde el arranque → pausa
automática + aviso; 3 órdenes rechazadas seguidas → pausa + aviso.
F4 — LAB: solo las direcciones abiertas con EV>0 (septiembre-octubre)
Objetivo: research disciplinado en lo único no cerrado. NOTA VINCULANTE: la fase GPU L032-L034
YA se ejecutó y falló — NO repetirla ni re-abrir categorías cerradas de KNOWLEDGE.md.
Usuario: nada salvo gasto GPU >$3/mes (pedir con presupuesto).
- [LAB] Validación forward de CPI-sorpresa (L023): pre-registrar; cada CPI mensual, medir
la dirección 1h/4h post-release vs signo del miss. $0. **GATE: tras 6 releases, si el signo
acierta ≥5/6 → diseñar overlay de riesgo; si ≤3/6 → cerrar L023.**
- [LAB] Track volatilidad/VRP (L014): pre-screen de una estrategia de prima de volatilidad
en Deribit (BTC options) — SOLO estudio en papel con datos públicos; sin cuenta nueva sin
aprobación del usuario. GATE: Sharpe simulado neto de fricción > 1,0 en 2023-2026 o cerrar.
- [LAB] Mantenimiento: pytest verde semanal, cero pods RunPod colgados, LEARNINGS al día.
- PROHIBIDO: re-tuning de la cascada, nuevos GRU sobre OHLCV 15m, cualquier categoría cerrada.
F5 — Acumulación del gate vivo (octubre-noviembre)
Objetivo: 40 round-trips en Kraken sin tocar nada. A ~3-4 RT/mes × 2 bots ≈ 8 RT/mes → ~40 en
diciembre (pero el gate se evalúa cuando LLEGUE el RT #40, no por calendario).
Supervisión semanal del operador IA (cada lunes): posiciones vs estado interno (3 fuentes),
fills/fees al ledger, α acumulado vs B&H, circuit breakers, web actualizada. 30 min/semana.
F6 — Veredicto del gate 40-RT + primer escalón (noviembre-diciembre)
Criterios YA pre-registrados (adaptación de hypotheses/gate40_consolidation.yaml al venue nuevo):
- α vs B&H desde relanzamiento > +5 pts Y expectancy media ≥ −0,5%/trade → PASS TOTAL:
[USUARIO] banner + SEPA para escalón ×3 (300 EUR/bot).
- α pasa pero expectancy no → mantener capital, NO escalar, seguir acumulando.
- α falla → pausa total + post-mortem con motor honesto; el retorno exige re-pasar protocolo.
F7 — Primer candidato del LAB (diciembre, CONDICIONAL)
SOLO si F4 produce algo que pase meseta ≥ +74 honesto (no pico) + gauntlet completo (5 pasos de
validate-candidate + PBO<50% + stress fricción). Entonces: paper 30 días → banner → estreno con
100 EUR. Si no hay candidato (escenario BASE esperado): no pasa nada — el sistema corre como
escudo y el research sigue. No forzar candidatos para cumplir calendario.
F8 — Revisión semestral (enero 2027)
Veredicto numérico global: α total del semestre, expectancy viva, coste total, estado del research.
Decisión de rama 2027 (informada al usuario con datos): (a) escalar (×3 adicional hasta ~1-3k EUR)
si PASS sostenido; (b) mantener como preservador; (c) pivotar al track vol/VRP si su pre-screen
pasó; (d) reevaluar Binance si recuperó licencia — **sin volver antes de completar el gate 40-RT
en Kraken** (no cambiar de venue a mitad de muestra).
Contingencias globales
| Evento | Acción |
|---|---|
| Binance recupera licencia MiCA | Ignorar hasta completar gate 40-RT en Kraken; después, decisión comparada de fees/fricción. El conector Binance queda archivado y reutilizable. |
| Kraken Futures no disponible tras MiFID test | Fallback Bitvavo spot (0,15/0,25%); adaptar F2. |
| Circuit breaker salta | Pausa automática; SOLO el usuario reactiva (banner). |
| LAB sin candidato en 6 meses | Escenario base — el escudo sigue; revisar en F8. |
| Límite de gasto de agentes IA | Las tareas críticas (supervisión semanal, gates) son ejecutables sin agentes; los análisis grandes esperan al ciclo mensual. |
Presupuesto mensual
| Concepto | Coste |
|---|---|
| Hetzner (host) | ~8 €/mes |
| RunPod (LAB) | ≤3 $/mes (con aprobación si más) |
| Capital en riesgo | 200 EUR (F3) → 600 (F6 si PASS) → 1-3k (F8 si PASS sostenido) |
| Fees estimados | ~0,10%/RT × ~8 RT/mes × capital — a 200 EUR: <0,50 €/mes |
Registro de correcciones del red-team (aplicadas en esta versión)
4 críticos: rama base verificada por grep de commits (no asumir main); auditoría de imports Binance
en traders antes del conector; contradicción de leverage resuelta (1× fijo, vol-Kelly fuera del
relanzamiento); clave commission_rate (la real). 6 mayores: deuda margin V7 se repaga primero;
orden de F1 corregido (API key antes de verificar colateral); golden = 5 tests (no 23); OBV con
procedimiento definido; paper contra el DEMO real de Kraken (no mock inexistente); timing k+1
preservado en el conector (R273). Menores: cantidades desde la UI de Binance (no de archivos);
umbral perp-vs-spot relajado a 0,15% con nota de funding; init_sl justificado (R277b); gates de fee
en unidades por-lado consistentes.