Saltar al contenido principal

Backtest Integrity Lab

Las plataformas minoristas te muestran el Sharpe o la ganancia neta de un backtest y ahí se detienen. Las instituciones nunca confían en un backtest crudo — preguntan si el resultado sobrevive a la corrección por sesgo de selección y el número de configuraciones probadas. El Backtest Integrity Lab trae esa verificación a cMind. Es matemática determinista (sin IA, sin llamadas externas), por lo que el veredicto es reproducible y cada número es explicable.

Ábrelo en cBots → Integrity (/quant/integrity).

Qué calcula​

Dado una serie de retornos (o una curva de capital/saldo) y el número de conjuntos de parámetros que probaste para llegar a él, el analizador reporta:

  • Ratio de Sharpe — por período y anualizado (raíz cuadrada del tiempo).
  • Probabilistic Sharpe Ratio (PSR) — la confianza de que el verdadero Sharpe supere el benchmark, contando la longitud del historial, sesgo y curtosis (Bailey & López de Prado, 2012). Un registro corto o con cola gorda lo baja.
  • Deflated Sharpe Ratio (DSR) — PSR medido contra un benchmark deflacionado: el Sharpe que esperarías de lo mejor de N ensayos aleatorios bajo la hipótesis nula (el Teorema de Estrategia Falsa). Cuantas más configuraciones probaste, más alto es el umbral — esto es lo que atrapa el sobreajuste.
  • t-statistic de la media de retornos. Siguiendo a Harvey, Liu & Zhu, un verdadero edge debería superar t ≥ 3.0, no el 2.0 del libro de texto.
  • Sesgo / curtosis de los retornos, que alimentan las correcciones de PSR/DSR.

El veredicto​

VeredictoSignificadoRegla
RobustoEl edge sobrevive los ensayos que ejecutaste.DSR ≥ 95% y PSR ≥ 95% y |t| ≥ 3.0
FrágilEstadísticamente vivo pero no convincentemente — no aumentes el tamaño solo por esto.entre los dos
SobreajustadoMuy probablemente un artefacto del sesgo de selección, no un edge real.DSR < 90%

Cada resultado lleva una justificación en inglés claro para que el "por qué" nunca esté oculto.

Probability of Backtest Overfitting (en los ensayos)​

Alimentar un conteo de ensayos es bueno; alimentar la serie real out-of-sample de cada configuración que probaste es mejor. Pégalos en la cuadrícula de ensayos opcional (una serie por línea) y cMind ejecuta Validación Cruzada Combinatoriamente Simétrica (Bailey, Borwein, López de Prado & Zhu, 2015): divide las observaciones en grupos, y para cada forma de elegir la mitad como in-sample elige la mejor configuración in-sample y verifica si ese ganador cae en la mitad inferior out-of-sample. La Probability of Backtest Overfitting (PBO) es la fracción de divisiones donde el ganador falló en generalizar. Un PBO cerca de 0 significa que la mejor configuración es genuinamente la mejor; un PBO de 0.5 o más significa que tu proceso de selección está eligiendo ruido — el veredicto se convierte en Sobreajustado sin importar cuán bien se vea el ganador.

POST /api/quant/pbo
{ "trials": [[...], [...], ...] }

Cuando llegue el optimizador nativo de cTrader Console, cMind alimentará su superficie de ensayos completa aquí automáticamente.

Trials — el número que importa​

Trials es cuántos conjuntos de parámetros probaste antes de elegir este. Probar una estrategia y probar diez mil y quedarse con la mejor son cosas salvajemente diferentes: lo segundo fabrica un Sharpe in-sample alto por casualidad. Alimentar el conteo honesto de ensayos es el punto completo — eleva la deflación y puede mover un backtest "excelente" a Sobreajustado. Cuando llegue el optimizador nativo de cTrader Console, cMind alimenta el tamaño real de la cuadrícula del barrido automáticamente.

Inputs​

  • Retornos periódicos — un número por período (p.ej. 0.01 = +1%). Al menos dos. El campo se valida mientras escribes: cuenta los números válidos, marca cualquier token que no sea un número, y solo habilita Analyze una vez que al menos dos valores limpios estén presentes (la cuadrícula de ensayos habilita Assess overfitting una vez que dos series de cuatro o más números cada una estén listas).
  • Curva de capital / saldo — cMind deriva los retornos simples consecutivos para ti.
  • Directo desde una ejecución de backtest — sin copiar y pegar. Cada backtest completado expone un icono de escudo Check backtest integrity en la fila de lista Backtest y en la vista de detalle de su instancia; un clic ejecuta el Lab en la curva de capital almacenada de esa ejecución y muestra el veredicto en un diálogo. El icono está deshabilitado hasta que el backtest se haya completado y producido un informe, por lo que nunca es un control muerto. Bajo el capó esto es POST /api/quant/integrity/backtest/{instanceId}, que lee la curva de capital del informe almacenado.

API​

POST /api/quant/integrity
{ "returns": [0.006, 0.004, 0.006, ...], "trials": 250 }

Devuelve el veredicto, todas las métricas y la justificación. POST /api/quant/integrity/backtest/{id} ejecuta el mismo análisis en un backtest completado que posees.

Por qué es confiable​

Las estadísticas son funciones puras en el núcleo del dominio (Core.Quant) con cero dependencias de infraestructura — no pueden ser derribadas por un parpadeo de red, y están fijadas por pruebas unitarias de vector dorado contra las fórmulas publicadas. La CDF normal/inversa son aproximaciones de forma cerrada (Abramowitz-Stegun / Acklam), por lo que las mismas entradas siempre producen el mismo veredicto.