branch main commit fad74ab built last · feat(web): new /ranking page — full strategy ranking, expandable, filterable

Dimensiones del proyecto — variables y direcciones de R&D

Este documento inventaría todas las variables del proyecto BTC trading que pueden modificarse durante R&D, organizadas en 8 dimensiones independientes. Cada variable incluye: valor canónico actual, alternativas, impacto esperado, esfuerzo de testear, e hipótesis concreta a validar. Generado por equipo de 4 agentes especializados (ML Architecture, Labeling/Features, Backtest/Risk, Validation/MLOps).

1. Arquitectura & Entrenamiento

Inventario de variables de modelado y entrenamiento para el clasificador 3-class (TP/SL/Timeout) sobre secuencias OHLCV+features de BTC 15min. Canónico actual: GRU(2×128) + 36 feats + seq=300, batch 64, Adam 1e-3, 5-seed ensemble. Fold A5000 ≈ 30-50s.

1.1 Familia de arquitectura

Campo Valor
Canónico GRU unidireccional, 2 capas
Alternativas LSTM, Bi-LSTM, Transformer encoder (4-6 heads), CNN-LSTM, TCN dilatado, N-BEATS, TFT
Impacto esperado Bi-LSTM y TFT: más contexto temporal bidireccional. Transformer/TFT: mejor captura de dependencias largas pero peor con seq=300 cortas y ruido cripto. TCN: paraleliza, receptive field controlado. CNN-LSTM: filtra ruido local antes de la recurrencia.
Effort Medio (cada familia: ~30 min código + 4 folds × 5 seeds en A5000 ≈ 15 min compute)
Hipótesis ¿Un TCN con receptive field = 300 supera a GRU en F1 de la clase TP manteniendo el alpha vs V66?

1.2 Hidden size

Campo Valor
Canónico 128
Alternativas 64, 96, 192, 256, 384
Impacto <96: underfit en alta vol. >256: overfit + colinealidad entre seeds (ensemble pierde diversidad).
Effort Cheap (sweep de 5 valores ≈ 20 min A5000)
Hipótesis ¿Existe una meseta plana 96-192 donde alpha se mantiene? Si sí, 96 = más diversidad de ensemble.

1.3 Num layers

Campo Valor
Canónico 2
Alternativas 1, 3, 4
Impacto 1 capa: más estable, menos memoria de fase. 3-4: gradient vanish en GRU sin residual connections.
Effort Cheap
Hipótesis ¿GRU-1 layer 128 iguala al 2-layer en alpha pero entrena 40% más rápido permitiendo 10 seeds?

1.4 Dropout y regularización

Campo Valor
Canónico dropout=0.2 entre capas GRU, sin weight decay
Alternativas 0.1 / 0.3 / 0.4; variational dropout; zoneout 0.05-0.1; weight decay 1e-5..1e-4; input noise gaussiano σ=0.01
Impacto Variational dropout en GRU (Gal & Ghahramani): mucho mejor que dropout estándar para RNNs. Zoneout preserva estado oculto.
Effort Cheap
Hipótesis ¿Variational dropout 0.25 + WD 1e-5 reduce overfitting del fold 1 sin tocar arquitectura?

1.5 Sequence length / lookback

Campo Valor
Canónico 300 eventos
Alternativas 96, 144, 200, 480, 720, multi-scale (96+300 concat)
Impacto <144: pierde régimen intra-día. >480: introduce señal de día previo. Multi-scale: tendencia + microestructura.
Effort Medio
Hipótesis ¿Seq=144 preserva ≥90% del alpha con 50% menos tiempo de training?

1.6 Output head

Campo Valor
Canónico 3-class softmax (TP/SL/Timeout) + CE
Alternativas Binary; Regresión sobre retorno; Dual-head (TP+SL sigmoides independientes); Ordinal; Quantile head
Impacto Dual-head: separa risk-side vs reward-side. Quantile: usable por sizing.
Effort Medio
Hipótesis ¿Dual-head sigmoide supera al softmax 3-class dado que TP/SL no son mutuamente excluyentes?

1.7 Loss function

Campo Valor
Canónico Cross-Entropy uniforme
Alternativas Focal loss (γ=1.5-2.5); class-weighted CE; label smoothing 0.05-0.1; CE + auxiliar MSE; asymmetric loss
Impacto Clase TP minoritaria (~25%). Focal/class-weighted reducen sesgo. Label smoothing mejora calibración.
Effort Cheap
Hipótesis ¿Focal γ=2 + label smoothing 0.05 aumenta recall TP ≥5pp? (R134 mostró recall real 15-49%)

1.8 Optimizer + weight decay

Campo Valor
Canónico Adam lr=1e-3, sin WD explícito
Alternativas AdamW; SGD-Nesterov; Lion lr=3e-4; RAdam; Lookahead(Adam)
Impacto AdamW desacopla WD correctamente. Lion: 3-10× menos memoria. SGD-N puede generalizar mejor.
Effort Cheap
Hipótesis ¿AdamW con WD=1e-4 reduce gap train/val en fold 3?

1.9 Learning rate schedule

Campo Valor
Canónico ReduceLROnPlateau
Alternativas Cosine annealing; Warmup+cosine; OneCycleLR; Cosine warm restarts
Impacto Warm restarts produce snapshots → ensemble interno. ReduceLROnPlateau es reactivo, no proactivo.
Effort Cheap
Hipótesis ¿Cosine warm restarts produce snapshots usables como ensemble interno sin entrenar más seeds?

1.10 Batch size

Campo Valor
Canónico 64
Alternativas 32, 128, 256, 512
Impacto Batch pequeño = más ruido en gradiente = mejor exploración + ensemble más diverso.
Effort Cheap
Hipótesis ¿Batch 32 mejora diversidad inter-seed? Si correlación baja de 0.85 a <0.75, ensemble debería ganar.

1.11 Epochs + early stopping

Campo Valor
Canónico max 30, patience 8 sobre val_loss
Alternativas Patience sobre val_F1_TP; patience 4/12; entrenamiento fijo a N epochs
Impacto val_loss bajo ≠ buen PnL (CLAUDE.md). Early stop sobre métrica PnL-proxy alinea mejor con objetivo.
Effort Cheap
Hipótesis ¿Early stop sobre F1_TP reduce la brecha val_loss-PnL?

1.12 Multi-seed ensemble

Campo Valor
Canónico 5 seeds, hard voting con MIN_VOTES
Alternativas 3/7/10/15 seeds; averaging de softmax; weighted averaging por val_F1; rank-averaging; Bayesian model averaging
Impacto Voting hard pierde info de confianza. Soft averaging suele dar +1-3pp F1.
Effort Cheap-Medio
Hipótesis ¿Soft averaging con umbral calibrado (Platt scaling per-seed) supera a hard voting?

1.13 Stack / blend (meta-learner)

Campo Valor
Canónico No implementado (solo voting)
Alternativas Logistic regression sobre softmax; LightGBM stacker; isotonic regression; MLP shallow
Impacto Stacking puede capturar patrones de en-qué-régimen-cada-seed-acierta. Alto riesgo de leakage.
Effort Medio
Hipótesis ¿Logistic stacker sobre 10 seeds (purged WF) supera al soft averaging?

Top 3 untested high-EV experiments (Arquitectura)


2. Etiquetado

2.1 Triple-barrier ratios (k_up / k_dn)

Campo Valor
Canónico k_up=10, k_dn=7 (asimétrico, sesgo long)
Alternativas Simétrico 7/7, 10/10, 5/5; asimétrico short 7/10; muy ancho 15/10
Impacto Define ratio TP:SL realizable. Ratios estrechos suben hit-rate pero matan R:R; anchos al revés.
Riesgo Asimetría fuerte invita sesgo de régimen.
Hipótesis ¿Simétrico 8/8 con meta-labeling supera 10/7? ¿Ratios regime-conditional?

2.2 Horizonte temporal (max-hold)

Campo Valor
Canónico 60 barras 15min = 5h
Alternativas 24 (6h), 48 (12h), 96 (24h), 120 (30h)
Impacto Corto sube Timeout y empeora R:R; largo aumenta path-dependency y solapamiento.
Riesgo Horizontes largos generan solapamiento (uniqueness ↓) y leak por eventos concurrentes.
Hipótesis ¿96 barras reduce Timeout de 37% a ~25% sin destruir Sharpe?

2.3 Estructura de clases

Campo Valor
Canónico 3-clase: TP / SL / Timeout (24/39/37)
Alternativas Binario (TP vs ¬TP), 5-clase por cuantiles, regresión continua
Impacto Binario simplifica pero pierde info de Timeout. Regresión preserva magnitud.
Riesgo Cuantiles globales filtran info futura → leak silencioso.
Hipótesis ¿Regresión sobre MFE-en-ventana + threshold posterior bate clasificación 3-clase?

2.4 Escalado de volatilidad

Campo Valor
Canónico ATR-14 multiplicador
Alternativas GARCH(1,1) σ̂, realized vol 1h/4h/24h, range-based (Garman-Klass, Parkinson, Yang-Zhang)
Impacto RV intra-día reacciona más rápido que ATR. Mejor escalado = barreras más homogéneas.
Hipótesis ¿Yang-Zhang vol reduce dispersión de Timeout ≥10pp vs ATR-14?

2.5 MFE / MAE vs barrier

Campo Valor
Canónico Barrera (primer toque gana)
Alternativas MFE/MAE como label continuo o multi-task
Hipótesis ¿Doble cabeza (clasif. barrera + regresión MFE/MAE) sube AUC ≥3pp?

2.6 Meta-labeling (López de Prado)

Campo Valor
Canónico NO implementado
Alternativas Primary = trend signal; Secondary = ML filter take/skip
Impacto Mejora precision a costa de recall; reduce drawdown.
Hipótesis ¿V66 como primary + modelo R&D como secondary bate V66 standalone en Sharpe y MDD?

2.7 Sample weighting

Campo Valor
Canónico Uniforme
Alternativas Average uniqueness, exponential decay (recencia), inverse class freq, return-magnitude weighting
Impacto Uniqueness corrige solapamiento; decay enfoca régimen reciente.
Hipótesis ¿Uniqueness × inverse-freq sube F1 macro de la clase TP en val purgada?

2.8 Forward-looking vs current-bar labels

Campo Valor
Canónico Forward (corregido en R134)
Riesgo Cualquier feature derivado del bar de label = leak. R121b/R128d históricos inflados por esto.
Hipótesis ¿Re-correr todos los hits R110-R128 con forward strict + purged WF?

2.9 Combinatorial Purged K-Fold (CPKF)

Campo Valor
Canónico Walk-forward simple
Alternativas Purged K-Fold, CPKF, embargo de H barras
Impacto Reduce optimismo en val ~5-15pp; revela overfitting real.
Hipótesis ¿CPKF con embargo=H descarta ≥30% de "hits" actuales como ruido?

Top 3 untested high-EV experiments (Etiquetado)


3. Features & Datos

3.1 Familias de indicadores

Campo Valor
Canónico 36 TA hand-crafted: RSI, MACD, ATR, Bollinger, SMA daily, slope, return percentiles
Alternativas Volumen: OBV, VWAP, CVD; Volatilidad: GK, Parkinson, RV; Microestructura: order-flow imbalance
Impacto Volumen añade dimensión ortogonal. Microestructura mayor diferenciador pero requiere data nueva.
Hipótesis ¿Añadir CVD + VWAP-distance sube AUC ≥2pp con feature count constante?

3.2 Multi-timeframe

Campo Valor
Canónico Solo 15min
Alternativas 1H, 4H, 1D resampled features alineadas
Impacto Contexto macro filtra trades contra-tendencia; boost ~3-5pp Sharpe en literatura.
Riesgo Forward-fill mal hecho = leak.
Hipótesis ¿8 features 1H + 4 features 1D (RSI, slope, distancia a SMA) bate baseline en Sharpe OOS?

3.3 Cross-asset / on-chain

Campo Valor
Canónico BTC OHLCV únicamente
Alternativas ETH (corr rolling), SPX/DXY, gold, on-chain (active addr, NVT, exchange flows), funding rate, perp basis
Impacto Funding + basis son features microestructura derivativos con alto EV.
Riesgo Datos on-chain con latencia/revisión retrospectiva → leak.
Hipótesis ¿Funding-rate + perp-basis suben Sharpe ≥0.2 con coste mínimo de ingestión?

3.4 Sentiment / news

Campo Valor
Canónico Ninguno
Alternativas Fear & Greed index, Google Trends, Twitter/Reddit volumen, LLM-scored news headlines
Impacto Útil en colas (capitulación, euforia); ruido en régimen tranquilo.
Hipótesis ¿F&G como single feature mejora filtrado en régimen extremo?

3.5 Calendar features

Campo Valor
Canónico Ninguno
Alternativas hour-of-day sin/cos, day-of-week, end-of-month, days-since-halving
Impacto Coste cero; estacionalidad horaria documentada en cripto (Asia/EU/US sessions).
Hipótesis ¿Hour-of-day sin/cos como 2 features extra sube AUC sin tocar nada más?

3.6 Normalización

Campo Valor
Canónico Per-sequence MinMax sobre ventana 300
Alternativas Global Z-score (con μ,σ solo de train), differenced, log-returns, robust scaler, rank-transform
Impacto MinMax destruye info de nivel absoluto entre ventanas; rank-transform invariante a outliers.
Hipótesis ¿Rank-transform per-sequence + level features globales bate MinMax puro?

3.7 Feature ablation

Campo Valor
Canónico 36 features, sin selección formal
Alternativas SHAP-based pruning, mutual information ranking, drop RSI variantes redundantes
Impacto Reducción a 18-24 sin pérdida de AUC; mejor generalización.
Hipótesis ¿Top-20 por permutation importance en train iguala 36 features en val purgada?

3.8 Event filter alternatives

Campo Valor
Canónico ATR-based (atr_mult=2.0, return_pct=90) → ~10.5% bars
Alternativas CUSUM filter, volume-spike, time-based, regime-change (HMM/Markov), híbrido CUSUM+volume
Impacto R141 (loosen a 80) DESTRUYÓ alpha → filtro actual selectivo y útil. R142 (95) pending.
Hipótesis ¿CUSUM (h=2σ) + volumen como segundo filtro AND con ATR sube precision sin matar recall?

Top 3 untested high-EV experiments (Features & Datos)


4. Simulación Backtest

4.1 Granularidad de la barra

Campo Valor
Canónico Bar-by-bar 15min (resampleado desde 5min)
Alternativas Tick-by-tick, 5min nativo, 1H, daily aggregate
Impacto Granularidad fina mejora fidelidad de stops; daily oculta wicks.
Trader view 15min es sweet spot intra-day en BTC. Failure mode: backtest "ejecuta" precios intra-barra que en vivo nunca tocaste.
Hipótesis Re-simular V66 en 5min nativo y 1H; si compound cae >30% en 1H ⇒ alpha vive en wicks intra-15min (frágil).

4.2 Modelo de slippage

Campo Valor
Canónico Fijo 0.01% por lado
Alternativas Spread-based, volume-proportional, Almgren-Chriss
Impacto Subestimar slippage es #1 killer de live PnL con 75 trades/fold.
Trader view 0.01% es optimista: flash crash 2020-03-12 = 50-200bps de slippage real.
Hipótesis Stress test slippage condicionado: 0.01% lateral, 0.05% bull, 0.15% bear/high-vol. Si compound cae >40% ⇒ V66 depende de liquidez ideal.

4.3 Modelo de comisión

Campo Valor
Canónico 0.04% fijo (taker)
Alternativas Maker/taker mix, tiered por 30d volume, funding cost en perp
Impacto 75 trades × 0.04% × 2 sides = 6% drag/fold antes de slippage.
Trader view Si estrategia vive en perp, funding cost es el elefante en la sala — puede ser ±0.01-0.1% cada 8h.
Hipótesis Añadir funding histórico Binance perp BTCUSDT al P&L. Si gap > 8% compound ⇒ migrar a spot o hedgear funding.

4.4 Position sizing

Campo Valor
Canónico Full notional (100% capital cada entrada)
Alternativas Kelly fraccional, vol-targeting σ=30% anual, fixed-fractional 50%
Impacto Full notional maximiza compound pero maximiza también DD.
Trader view Full notional en BTC σ=80% es leverage implícito. El +70k% es en parte artefacto de no escalar down en alta vol.
Hipótesis Vol-targeting a 50% σ anual. Esperaría -20% compound pero +40% Sharpe.

4.5 Walk-forward design

Campo Valor
Canónico Expanding window, 4 folds, 2018-2026
Alternativas Sliding (fixed lookback), CPCV, nested CV
Trader view 4 folds es muestra pequeña para robustez. Cada fold es 1 régimen → riesgo de overfit secuencia.
Hipótesis CPCV con embargo 5 días, 12 splits; reportar distribución compound por path. Si IQR > 2× median ⇒ resultado path-dependent.

4.6 Bootstrap confidence

Campo Valor
Estado NO REPORTADO sistemáticamente
Trader view Sin IC sobre alpha, +62 min α puede ser ruido.
Hipótesis Block bootstrap (bloque=20 bars), 5000 réplicas; reportar α 5/95 percentil. Si 5%ile < 0 ⇒ alpha no estadísticamente distinto de 0.

Top 2 untested high-EV experiments (Backtest)


5. Reglas Entry/Exit

5.1 Entry filter

Campo Valor
Canónico GRU ≥ 3/5 votos + DRSI ≤ 78 + cooldown finalizado
Trader view En bear los 5 GRUs votan correlacionados — "5 modelos" en práctica son 1.
Hipótesis Medir correlación errores entre 5 GRUs por régimen; si ρ>0.7 ⇒ ensemble redundante, sustituir 2 por modelos heterogéneos.

5.2 Always-invested vs selective

5.3 Exit cascade priority

5.4 Initial stop loss

Campo Valor
Canónico Fijo 10%
Alternativas k·ATR(14), swing low estructural, vol-adjusted
Trader view 10% fijo es ingenuo en asset cuya σ pasó de 40% a 120%.
Hipótesis SL = max(2·ATR_60, swing_low_20). Esperaría -20% DD sin sacrificar >5% compound.

5.5 Trail logic

5.6 DRSI threshold

5.7 Peak-drop

5.8 Regime detection

5.9 Cooldown

5.10 Pyramiding

Top 2 untested high-EV experiments (Entry/Exit)


6. Portfolio & Risk Management

6.1 Single vs portfolio

6.2 Allocation policy

Política Pros Contras
Fixed-weight 50/50 (R138) Simple, sin overfitting Ignora régimen, sub-óptimo
Daily classifier (R139) Adaptativo a régimen Riesgo de leak
HRP / risk-parity Robust, no necesita Σ⁻¹ Asume estabilidad correlación
Vol-targeting por sleeve Suaviza DD Bajo compound en bull

6.3 Número de sleeves

6.4 Max drawdown stop-out

6.5 Hedging

6.6 Multi-asset

6.7 Capital allocation across timescales

Top 2 untested high-EV experiments (Portfolio)


7. Validación & Reproducibilidad

7.1 Walk-forward scheme

7.2 Purging

7.3 Embargo (López de Prado)

7.4 Combinatorial Purged CV

7.5 Multi-seed stability

7.6 Bootstrap CI on alpha

7.7 Out-of-time hold-out

7.8 Reproducibility check

Top 2 untested high-EV improvements (Validación)


8. MLOps & Deployment

8.1 Phase 0 gate

8.2 Checkpoint versioning

8.3 Live-vs-backtest daily diff

8.4 Paper trade period

8.5 Drift detection

8.6 Compute orchestration

8.7 Cost discipline

Top 2 untested high-EV improvements (MLOps)