Skip to content

Datasets y convenciones

Cada número del producto sale de un experimento sobre un dataset específico. Esta página enumera los datasets canónicos, el walk-forward que aplicamos, y las convenciones metodológicas que governan toda comparación.

IDPeríodoBarsRégimenes cubiertosUso
Pre-T1 (May24)2023-06-09 → 2024-05-17~7,800Bull + corrección Abr24Baselines LP puros (sin bear real)
T12023-06-09 → 2024-09-0110,811Bull + corrección + crash Ago24Referencia para experimentos históricos LP/hedge (E01–E42b)
T2 ★ canónico2023-06-09 → 2024-10-0311,571Bull, bear, ranging, post-crash recoveryValidación canónica desde 2026-04-22
Stitched 2022–20242022-01 → 2024-102.7 añosCross-régimen completoReconstrucción econométrica para validar 2.7 años continuos

Pool: WETH/USDC 5bps en Arbitrum (0xC6962004f452bE9203591991D15f6b388e09E8D0).

Las convenciones son decisiones del equipo sobre cómo medir — no son falsables, son elecciones que documentamos para que cada experimento sea comparable. Si un experimento desvía, el desvío tiene que estar justificado en el RDR.

C-BENCHMARK · Passive ±14% es el benchmark canónico

Section titled “C-BENCHMARK · Passive ±14% es el benchmark canónico”

Todo alpha se mide contra un LP pasivo de ancho fijo ±14%. Es el floor — cualquier estrategia que no lo supere en walk-forward no se deploya.

Por qué ±14%: en E01 mostró 249% return base sobre Jun23–May24 — el soporte natural del lockup de fees en este pool. Se eligió por comparabilidad estable.

C-WF · Walk-forward train=90d, test=30d, advance=30d

Section titled “C-WF · Walk-forward train=90d, test=30d, advance=30d”

Todos los experimentos a partir de E13 usan estos parámetros. Sobre T1 da 12 ventanas. Sobre T2 da 13.

Por qué walk-forward y no in-sample: testear sobre el mismo período de fitting es una forma sutil de overfit. WF entrena sobre 90 días y testea sobre los 30 siguientes — mide si la estrategia generaliza fuera de su training window.

C-FEE · Fee model calibrated_pool_apr con concentration_multiplier=7.0

Section titled “C-FEE · Fee model calibrated_pool_apr con concentration_multiplier=7.0”

El modelo de fees usa el APR real del pool. concentration_multiplier=7.0 es el cap empírico observado para un LP concentrado vs un passive ancho.

Cómo se cambia: nueva calibración del multiplier requiere rerun del script de calibración + RDR justificando el cambio.

C-CRITERIA · Criterios de aceptación para hedge direccional

Section titled “C-CRITERIA · Criterios de aceptación para hedge direccional”

Un hedge direccional pasa a producción sólo si cumple 5 criterios simultáneamente:

CriterioThresholdPor qué
Combined max DD vs LP-alone≥ −2ppEl hedge no debe empeorar el riesgo agregado
hedge_net_pnl > 0Full periodEl hedge debe pagar sus costos (funding + slippage + gas)
WF pos% vs HODL≥ 80%Selectividad — gana vs buy-and-hold en la mayoría de ventanas
WF mean α vs HODL≥ +10%Alpha real vs no hacer nada
Uptime hedge≤ 40%Selectividad — no siempre activo, sólo cuando paga

Criterio retirado: WF mean α vs passive ≥ +2.0%. Un crash hedge concentra su valor en pocas ventanas de bear; el average por ventana vs passive penaliza exactamente la selectividad que se quiere. Se reemplazó por la métrica vs HODL.

Cada hipótesis tiene que sobrevivir a 4 dimensiones de stress además de su backtest principal:

DimensiónPreguntaCómo se ejecuta
Parameter sensitivity¿El resultado es robusto a barridos del parámetro?Sweep de cada eje individualmente con grilla declarada en el YAML
Regime decomposition¿El alpha viene de un solo régimen o se sostiene cross-régimen?Decomposición por mes y por período etiquetado
Dataset variation¿Se replica en datasets independientes?Re-run sobre T1, T2, stitched, proxy
Null baseline¿Le ganás a un baseline trivial?Comparación vs constant random + frozen baseline + passive

Si la hipótesis falla algún stress test, no se descarta inmediatamente — pero el result_summary tiene que documentar el failure mode, y el status no avanza a replicated.

Promover (= ganar confianza) cuesta más que refutar (= perder confianza):

StatusRequisito
ideaYAML creado, hipótesis con la forma “Si X entonces Y porque Z”
designedAcceptance + refutation criteria escritos antes del backtest
analyzedBacktest principal + 1 dataset variation + parameter sensitivity
replicatedDataset independiente real (no derivado del primero) o observación post-launch
axiomreplicated + mecanismo causal Z identificado
refutedCualquier criterio de refutación (R*) cumplido

Esto introduce asimetría a favor de la duda — preferimos descartar 10 hipótesis verdaderas a aceptar 1 falsa.

research/
├── docs/
│ ├── METHOD.md # gobernanza del proceso
│ ├── STATE.md # auto-generado por `research render state`
│ ├── PRODUCTION.md # snapshot operativo de producción
│ ├── knowledge/
│ │ ├── axioms/
│ │ │ ├── lp.md # A1, A2, A3, A4, A11
│ │ │ └── hedge.md # A5–A10
│ │ ├── conventions.md # C-BENCHMARK, C-WF, C-FEE, C-CRITERIA
│ │ └── infrastructure.md # I-COMBINED-DD, I-WF-HEDGE, etc.
│ └── decisions/rdr/
│ ├── RDR-001-passive-baseline.md
│ ├── RDR-003-squeeze-composite-width.md
│ ├── RDR-004-divergence-exits.md
│ ├── RDR-007-range-skew.md
│ ├── RDR-010-hedge-regime-conditional.md
│ ├── RDR-012-proactive-width-rebalance.md
│ ├── RDR-013-hedge-funding-economics.md
│ └── RDR-014-product3-deposit-sizing.md
├── system/entities/hypotheses/H-NN.yaml # cada hipótesis pre-registrada
└── workspace/runs/<exp_id>/ # artifacts de cada experimento

Ver el research method para el flujo end-to-end de cómo se crea, valida y promueve una hipótesis a axioma.