Referencia técnica · Paso 1 · Configuración
Formalización del paso de configuración: las conversiones de parámetros, la partición física IS/OOS y las convenciones que todo el pipeline hereda.
El objetivo (TP) y el stop (SL) se ingresan en porcentaje (0–100) y el pipeline los consume como fracción decimal. El único derivado que se calcula en este paso es el ratio riesgo-recompensa.
Conversión a fracción (aplicada aguas abajo al construir el target y el backtest):
Ratio riesgo-recompensa (redondeado a 4 decimales):
Defaults del schema: TP = 6.0%, SL = 3.0%, ambos con restricción 0 < x < 100.
La reserva out-of-sample es por días de calendario, no por cantidad de barras. Se apartan los últimos años_oos años y se separan físicamente dos DataFrames.
< estricto ubica a t_oos dentro de OOS. Solo se persisten IS y FULL; el OOS no se recorta a un DataFrame aparte en este paso.Rango años_oos ∈ [0.5, 10], default 2.0 → Δ = ⌊730.5⌋ = 730 días. Si la reserva está desactivada, IS = FULL.
Cuando se filtra por sesión horaria, se calcula cuántas barras entran en la ventana diaria. Ese número acota también el desfasaje máximo permitido.
| TF | mtf (min) | periods/día |
|---|---|---|
| M1 | 1 | 1440 |
| M5 | 5 | 288 |
| M15 | 15 | 96 |
| M30 | 30 | 48 |
| H1 | 60 | 24 |
| H4 | 240 | 6 |
| D1 | 1440 | 1 |
| W1 | 10080 | 0.143 |
Warning si candle_exposition ≥ session_bars (el target de una señal al cierre de sesión se resuelve en la próxima, incluyendo el gap overnight).
Los desfasajes (_sft_N) provienen del estilo o de una lista custom, y se filtran por dos criterios.
Partición cronológica opcional dentro del IS para mitigar el winner's curse anidado entre el ranking y las combinaciones. Solo lo usan esos dos pasos; el resto opera sobre IS completo.
Restricción 0.5 < ρ < 1.0, default None (sin split). Recomendado ρ = 0.7.
Definiciones que este paso fija y que son invariantes de dominio para todo el pipeline.
Retorno de un trade — siempre porcentual, nunca diferencia absoluta de precios:
Horizonte N = candle_exposition (ge 1, default 24) — la ventana futura máxima que evaluará el target. Dirección ∈ {long, short}. La separación física IS/OOS (§2) es el marco de todo lo que sigue.
domain/indicators/transform.py → se formaliza en el paso de indicadores/lift.+4h H4, +1d D1) vive en domain/indicators/multi_tf.py → paso de indicadores.periods_per_día = 1440 / m_tf (Sharpe/Sortino) se aplica en las métricas → paso de backtest.Fuentes:
· data_config_service.py — _slice_oos, rr_ratio, _compute_session, _resolve_shifts, _filter_shifts_by_session
· schemas/data_config.py — DataConfig, OOSConfig, discovery_train_ratio
· domain/timeframes.py — TIMEFRAMES, compute_session_bars, periods_per_day_for