Formación en métodos de investigación · Quantic Eagle opera solo con capital propio. Sin fondos de clientes, asesoramiento financiero ni señales de trading.

Un backtest parece mejor. ¿Qué ha cambiado realmente?

Estás desarrollando un sistema de trading y quieres saber si su backtest aplica las reglas que pretendes usar. Dos versiones pueden asignar las mismas puntuaciones y elegir compras distintas; un beneficio puede ocultar pérdidas de posiciones aún abiertas. Si usas un asistente de IA para examinar archivos de investigación, también debes comprobar cuáles ha analizado y qué trabajo ha repetido. Estos casos internos y ejercicios inventados permiten verificar esos pasos. Empieza por el caso de tres compras o elige una comprobación.

QE-RESEARCH-03 / 1.0

Mejorar no significa obtener beneficios

Tus modelos usan varias variables como datos de entrada y quieres comprobar si las necesitan todas. En este caso de investigación interna se entrenaron dos variantes, A y B, con menos variables que la configuración de referencia, llamada «control». Una variante puede perder menos que el control: mejora su beneficio, pero sigue en pérdidas. A mejora el beneficio mediano en 15 de 22 comparaciones y B en 16. Antes de elegir cuál someter a nuevas pruebas, comprueba también cuántos resultados son positivos y qué grupos comparas.

Investigación interna, estado a 22 de septiembre de 2026. Los resultados observados del 1 de agosto al 14 de septiembre de 2026 ya se habían consultado durante la investigación: permiten examinar las decisiones tomadas, pero no constituyen una confirmación independiente. Los importes están en USD; capital inicial de las simulaciones: 100.000 USD. Son agregados de simulaciones internas, calculados con las hipótesis de costes utilizadas entonces. Describen las comparaciones registradas; no demuestran rentabilidad neta ni idoneidad para operar en real.

Para comparar configuraciones similares, los resultados se agrupan por condiciones de entrenamiento. Cada fila del archivo contiene las medianas de los modelos que comparten un grupo de condiciones de entrenamiento. No representa un modelo individual. Cada variante tiene 22 comparaciones: A y B comparten 21 grupos, mientras que G07 figura solo en A y G08 solo en B, lo que suma 23 grupos distintos en total (44 filas en el CSV). Los pesos aprendidos y otras decisiones de optimización pueden diferir; por tanto, el contraste no aísla por completo el efecto del número de variables de entrada.

La mediana es el valor central después de ordenar los resultados; con un número par de resultados se calcula el promedio de los dos centrales.

Variante A · 22 comparaciones
Variante A · 22 comparaciones
Variante B · 22 comparaciones
Variante B · 22 comparaciones

En cada fila, resta el beneficio del control al de la variante. Cuenta primero las diferencias mayores que cero y después los beneficios de la variante mayores que cero. Cero no es un beneficio positivo. El archivo conserva la precisión original; redondea solo al presentar el resultado.

Contrasta tu razonamiento

A mejora 15 comparaciones, pero tiene beneficio mediano positivo en 9; B mejora 16, pero es positiva en 7. En cada serie de 22 comparaciones, el control tiene beneficio mediano positivo en 6 grupos. En el grupo G01, A pasa de −3.271,15 a −858,60 USD: mejora 2.412,55 USD y sigue perdiendo. B llega a −441,84 USD; su mejora tampoco elimina la pérdida.

Compara ahora A y B solo en los 21 grupos comunes. A tiene un beneficio registrado mayor en 10 grupos, B en 10 y hay un empate; la mediana de las diferencias B menos A es cero. Los recuentos 15 y 16 responden a dos comparaciones distintas con el control, cada una sobre 22 grupos. Estos resultados no establecen una variante ganadora. Se comparan medianas agregadas, con 1–2 modelos por grupo: no son 21 pruebas independientes ni una estimación del beneficio alcanzable.

Tabla completa

En el CSV, variant y group identifican la variante y el grupo. control_pnl y variant_pnl son beneficios medianos en USD; control_dd_pct y variant_dd_pct son drawdowns medianos expresados en porcentaje (5 significa 5%). control_models y variant_models indican cuántos modelos se resumen. Beneficio y drawdown son medianas separadas: no describen necesariamente el mismo modelo.

Variante / GrupoControl · USDVariante · USDΔ USDDrawdown mediano · % · C / VModelos · C / V
A / G01-3.271,15-858,602.412,554,87 / 1,292 / 2
B / G01-3.271,15-441,842.829,314,87 / 0,822 / 2
A / G02-747,79-2.441,32-1.693,530,95 / 2,772 / 2
B / G02-747,790,00747,790,95 / 0,002 / 1
A / G031.733,65-192,08-1.925,734,80 / 1,192 / 1
B / G031.733,65316,08-1.417,574,80 / 1,922 / 2
A / G04-5.411,15-639,064.772,086,45 / 1,192 / 2
B / G04-5.411,15184,955.596,106,45 / 0,272 / 2
A / G05-5.720,53-561,375.159,167,93 / 0,872 / 2
B / G05-5.720,53-140,455.580,087,93 / 1,042 / 2
A / G06-998,06309,451.307,523,38 / 3,332 / 2
B / G06-998,061.204,122.202,193,38 / 1,022 / 1
A / G07-3.343,460,003.343,465,17 / 0,002 / 1
B / G08-3.232,70-166,503.066,205,84 / 0,432 / 1
A / G09-1.570,60-187,011.383,594,31 / 0,961 / 1
B / G09-1.570,60-1.380,28190,324,31 / 1,381 / 1
A / G10-4.155,302.448,716.604,006,90 / 4,312 / 1
B / G10-4.155,30-244,203.911,106,90 / 0,272 / 2
A / G11-1.879,9490,281.970,223,84 / 0,281 / 1
B / G11-1.879,94-471,971.407,983,84 / 3,991 / 2
A / G12-1.269,57-6.298,88-5.029,317,36 / 8,272 / 2
B / G12-1.269,57-207,141.062,437,36 / 0,982 / 1
A / G131.982,88-2.514,02-4.496,901,38 / 3,992 / 2
B / G131.982,88170,23-1.812,651,38 / 1,092 / 2
A / G14444,751.388,46943,702,79 / 3,312 / 2
B / G14444,751.388,46943,702,79 / 3,312 / 2
A / G15-4.711,13581,985.293,106,67 / 0,621 / 2
B / G15-4.711,13-869,613.841,526,67 / 0,951 / 2
A / G161.971,01-2.878,14-4.849,151,04 / 3,011 / 2
B / G161.971,01-1.494,31-3.465,331,04 / 2,111 / 2
A / G17430,201.721,461.291,260,69 / 0,991 / 2
B / G17430,20996,15565,960,69 / 3,271 / 1
A / G18-3.540,103.025,236.565,336,83 / 3,781 / 1
B / G18-3.540,10-189,553.350,556,83 / 0,661 / 2
A / G1919,61-491,79-511,410,28 / 0,492 / 1
B / G1919,61-771,72-791,340,28 / 0,972 / 2
A / G20-377,91-310,2267,692,14 / 1,292 / 2
B / G20-377,91-533,01-155,102,14 / 0,832 / 2
A / G21-483,67267,15750,821,69 / 0,452 / 2
B / G21-483,67-646,01-162,341,69 / 1,042 / 2
A / G22-635,74718,171.353,911,05 / 4,531 / 2
B / G22-635,74523,801.159,541,05 / 0,171 / 1
A / G23-142,35-644,23-501,890,20 / 0,752 / 2
B / G23-142,350,00142,350,20 / 0,002 / 1

Guarda el CSV y el programa en la misma carpeta. El enlace propone el nombre QE-RESEARCH-03.py; cámbialo si el navegador conserva .txt. Abre un terminal en esa carpeta y ejecuta el comando. El programa lee el CSV y muestra los recuentos; no envía datos ni realiza operaciones de trading.

python QE-RESEARCH-03.py QE-RESEARCH-03.csv

La descarga permite recalcular estos agregados. No contiene los precios, las operaciones y los modelos necesarios para repetir los backtests originales. Fuente: QE-RESEARCH-03 / 1.0, exportación anónima de la investigación interna.

Tres problemas que cambiaron nuestra forma de investigar

Reproducir predicciones, repartir tareas y actualizar un informe parecían operaciones sencillas. Estos casos internos muestran qué comprobaciones faltaban.

Las predicciones coincidían. Las reglas de decisión eran distintas.

Ya tienes una función que decide las órdenes y estás creando otra, por ejemplo para ejecutar simulaciones en otro entorno. Antes de sustituirla quieres comprobar que los mismos datos y reglas producen las mismas órdenes. En el caso interno coincidían modelos, entradas y predicciones. Pero cuando las reglas permitían tanto una compra como una venta, las dos implementaciones resolvían ese conflicto de forma distinta. Elegían direcciones diferentes pese a partir de las mismas predicciones. La comprobación encontró esa diferencia en la simulación; no recalculó el resultado económico tras corregirla.

Esquema didáctico · No representa resultados de trading

Dónde divergen los recorridos

Dónde divergen los recorridosPuntuaciones iguales. Decisiones distintas. Carteras distintas. Comprueba el recorrido entre predicción y orden.
01Puntuaciones iguales
02Decisiones distintas
03Carteras distintas
Comprueba el recorrido entre predicción y orden.

Para comprobar una reescritura, parte de la misma cuenta inicial en ambas versiones, en vez de revisar una hora aislada. En este ejemplo inventado el sistema solo puede mantener acciones de un único valor a la vez. A las 10 la versión en uso compra A y la mantendrá hasta las 12; la reescritura no la compra. A las 11 aparece una posible compra de B. La versión en uso debe descartarla porque aún tiene A; la reescritura puede evaluarla porque no tiene posiciones abiertas. La diferencia de las 10 cambia lo que se puede hacer a las 11. Sigue las órdenes en secuencia y compara, después de cada una, acciones mantenidas y dinero disponible.

La guía muestra cómo encontrar el primer punto en que dos versiones producen resultados distintos y decidir qué cálculos deben repetirse. Rehacerlo todo puede ser innecesario; reutilizar resultados sin comprobar de qué datos dependen puede ser igual de erróneo.

El agente repetía análisis asignados a otras peticiones

Ahora se trata de otro trabajo: pedir a un asistente de IA que examine los materiales de investigación. No es el modelo que predice los mercados ni ejecuta órdenes; usa un modelo de lenguaje para realizar los análisis asignados. Un componente de IA debía analizar el trabajo del día en grupos pequeños, llamados lotes o batches. Sin embargo, cada petición recibía la lista completa. El programa que reunía las respuestas no comprobaba del todo qué elementos correspondían a cada encargo ni cuáles habían aparecido ya. Así podía repetirse trabajo asignado a otra petición.

Antes de un nuevo backtest necesitas decidir qué exportaciones corregir: buscas fechas incoherentes y valores ausentes en doce CSV. Repartes el trabajo entre cuatro agentes: A–C al primero, D–F al segundo, G–I al tercero y J–L al cuarto. Pueden escribir sus propios programas de comprobación. En este caso inventado, sin embargo, inicias cada agente en la carpeta completa y cada uno comprueba los doce archivos, ignorando su encargo. Recibes 48 fichas sobre los mismos doce CSV: has repetido cada comprobación cuatro veces y debes leer y conciliar informes adicionales antes de corregir las fuentes. Las 48 fichas no son 48 archivos distintos ni demuestran cuatro revisiones independientes. Limita los archivos accesibles a cada encargo, registra cuáles se leyeron realmente y compara las entregas con los archivos asignados. En el dosier gratuito, QE-BATCH-01 comprueba los identificadores declarados de encargos y respuestas, no la calidad del análisis. El Museo aborda otro objetivo: una segunda opinión sobre los mismos originales sin mostrar el dictamen anterior.

La pregunta económica viene después: ¿se guardó información suficiente para saber si el componente ayudaba? En el caso interno, no. El gasto era real y las pruebas conservadas no permitían demostrar el beneficio; se suspendió el componente.

Para estimar si un agente de IA ahorra trabajo, diseña dos pruebas con las mismas tareas y los mismos criterios de aceptación: una con tu procedimiento habitual y otra con el agente. Es una comparación que debes preparar, no un resultado ya obtenido por Quantic Eagle. En ambas registra el tiempo humano, el coste de las llamadas, los intentos repetidos y los análisis aceptados tras comprobar su exactitud. El tiempo de comprobación y reparación forma parte del coste. Si realizas personalmente ambas pruebas, anota también el orden: lo aprendido en la primera puede acelerar la segunda.

Cuando escribir el informe bloquea los cálculos

Había cálculos pendientes y un programa que los asignaba a los procesos de trabajo disponibles. Ese mismo programa preparaba el informe. Mientras lo escribía, no asignaba el siguiente cálculo: algunos procesos esperaban aunque hubiera trabajo listo. Guardar resultados anteriores o iniciar más procesos no eliminaba esa espera. El problema estaba en que preparar el informe bloqueaba la asignación de tareas.

Para que continúen los cálculos, el programa que asigna tareas debe poder iniciar la siguiente mientras otro prepara el informe. Guarda cada resultado completo con el identificador del encargo y las versiones de datos y programa usadas. Tras una interrupción, esos registros distinguen el trabajo que hay que reanudar del que ya terminó. El caso gratuito de abajo compara los minutos de dos formas de organizar las tareas.

Seis preguntas para aplicar a tu proyecto

  1. ¿Qué información estaba disponible al tomar la decisión?
  2. ¿Qué resultados habías consultado antes de seleccionar el modelo?
  3. ¿La curva incluye el valor de las posiciones abiertas y descuenta los costes? ¿Distingue depósitos y retiradas de ganancias y pérdidas?
  4. ¿La comparación cambia una sola cosa o varias condiciones a la vez?
  5. ¿Otra persona puede reproducir el resultado con el material conservado?
  6. ¿Qué resultado te haría descartar la hipótesis?

Para cada respuesta pendiente, especifica qué datos debes recoger o qué comparación debes realizar antes de continuar.

Edición de investigación · Actualizada el 14 de octubre de 2026

Mejora el beneficio. ¿También mejora el riesgo?

Comparamos dos aplicaciones de la misma regla de riesgo en simulaciones de 672 combinaciones de modelos. En cada comparación mantenemos los mismos miembros y periodos. El beneficio mejora en 439 comparaciones y el drawdown disminuye en 239, pero ambas medidas mejoran a la vez solo en 145. El caso muestra por qué «más beneficio» y «menos riesgo» son conclusiones distintas.

Aquí OOS identifica un periodo que no se utilizó para entrenar estos modelos. Sin embargo, ya se había consultado para elegir candidatos: no era una prueba final independiente. El drawdown mide la caída desde un máximo anterior de la curva de valor de la cuenta simulada.

Mayor beneficio OOS: 439 / 672; Menor drawdown OOS: 239 / 672; Mejoran ambos: 145 / 672
Mayor beneficio OOS439 / 672 · 65,3 %439 / 672
Menor drawdown OOS239 / 672 · 35,6 %239 / 672
Mejoran ambos145 / 672 · 21,6 %145 / 672
Las mismas 672 comparaciones, tres criterios distintos.
Las mismas 672 comparaciones, divididas en cuatro grupos sin solapamientos
Respecto a la simulación anteriorMenor drawdownDrawdown no menorTotal
Mayor beneficio145294439
Beneficio no mayor94139233
Total239433672

Las cuatro casillas interiores suman 672: 145 + 294 + 94 + 139. Los 439 casos con mayor beneficio incluyen los 145 que también reducen el drawdown; los 239 con menor drawdown incluyen esos mismos 145. «No mayor» y «no menor» incluyen resultados sin cambios: no significan necesariamente empeoramiento. Mejorar respecto a una versión anterior no demuestra rentabilidad, robustez ni preparación para operar. Son datos agregados de una comparación interna que ya se utilizó para seleccionar candidatos.

Investigación interna, datos del 19 de septiembre de 2026. Periodo OOS: del 1 de agosto de 2025 al 31 de julio de 2026. Comparaciones emparejadas sobre los 672 ensembles; los tres recuentos del gráfico se solapan y no deben sumarse. Estos agregados no permiten reproducir la simulación propietaria. Son agregados de simulaciones internas, calculados con las hipótesis de costes utilizadas entonces. Describen las comparaciones registradas; no demuestran rentabilidad neta ni idoneidad para operar en real.

Datos agregados y alcance · JSON

EJERCICIOS GRATUITOS · DATOS INVENTADOS

Tres decisiones para probar en tu laboratorio

Cambias la puntuación mínima exigida para comprar: ¿qué cálculos debes repetir? Preparar un informe retrasa el siguiente cálculo: ¿cuánto tiempo puedes recuperar preparando el informe en un proceso separado? Aplicas una regla nueva al pasado: ¿qué puedes escribir en el registro de las decisiones originales? Tres ejercicios inventados te permiten probar estas decisiones.

Has cambiado una regla: ¿qué resultados puedes reutilizar?

Estás probando una regla para seleccionar acciones que comprar. Para cada acción y día, el programa proporciona precios anteriores al modelo. Este devuelve una puntuación: un número que permite ordenar las acciones y compararlas con un umbral. Después de la primera ejecución, indicas al programa que guarde un CSV con una fila por fecha y acción; por ejemplo, «5 de enero, A, 0,65». Conserva también las puntuaciones de las acciones que no has comprado. Aquí 0,65 no es una probabilidad de ganar dinero. La regla «puntuación de al menos 0,70» excluye A; con «al menos 0,60», A cumple el requisito. Si el modelo y los precios son iguales, ¿hace falta producir de nuevo el CSV de puntuaciones?

  1. Datos y modelo Precios que lee el modelo
  2. Puntuaciones Un número por acción y fecha
  3. Decisiones e importes Qué acciones comprar y cuántas
  4. Operaciones e informes Gastos y valor de la cuenta

Si la tabla no cabe en la pantalla, desplázala en horizontal. Con el teclado, selecciónala y usa las flechas.

CambioPuedes conservarDebes repetir
Umbral de las señalesdatos, modelo, puntuacionesacciones elegidas, cantidades que comprar, registro de órdenes y gastos, beneficio y caídas de la cuenta, informe
Regla para señales en conflictodatos, modelo, puntuacionesacciones elegidas, cantidades que comprar, registro de órdenes y gastos, beneficio y caídas de la cuenta, informe
Importe por operacióndatos, modelo, puntuaciones, acciones elegidascantidades que comprar, registro de órdenes y gastos, beneficio y caídas de la cuenta, informe
Coste aplicadodatos, modelo, puntuaciones, acciones elegidas, cantidades que comprarregistro de órdenes y gastos, beneficio y caídas de la cuenta, informe
Miembros del modelo combinadodatosmodelo, puntuaciones, acciones elegidas, cantidades que comprar, registro de órdenes y gastos, beneficio y caídas de la cuenta, informe

No: en este ejemplo la puntuación se calcula únicamente a partir de los precios, que no has modificado. A sigue recibiendo 0,65 y puedes leer ese valor en el CSV de la primera ejecución. Lo que cambia es la selección: A ahora alcanza la puntuación mínima. Parte de la misma cuenta inicial y vuelve a simular las decisiones en orden de fecha. Aplica las reglas declaradas para el importe, el precio de compra y el momento de venta; registra después cantidades, importes recibidos y comisiones. Así reconstruyes las posiciones y el efectivo de la segunda prueba; no basta con sustituir el umbral en el informe final.

La tabla describe un programa simplificado: el modelo solo recibe precios, los importes no dependen del efectivo restante y las comisiones se restan después de seleccionar las órdenes. Por eso, en la tabla, cambiar únicamente las comisiones no modifica la lista de órdenes. Un programa que rechaza posiciones sin fondos suficientes necesita otra comprobación: una orden de 200 € con 1 € de comisión no puede pagarse con solo 200 €. Si cambias la comisión de cero a 1 €, debes repetir también la decisión de ejecutar esa orden.

Bajas el umbral de compra y la nueva simulación compra acciones por 800 €, dejando 200 € antes de costes. ¿Puedes reutilizar la puntuación guardada para la siguiente decisión? Compara los datos que la produjeron con los de la nueva simulación. Si el modelo solo lee precios que no han cambiado, la nueva compra no modifica esas entradas. Si también lee el efectivo disponible, ahora recibe 200 donde antes recibía 1.000: la puntuación anterior no se ha comprobado para esta situación. Ejecuta el mismo modelo con los datos nuevos; el resultado puede coincidir o cambiar. Esto no exige automáticamente volver a entrenarlo. Comprueba después si el efectivo cubre la orden, incluidos los costes. La última fila de la tabla supone que sustituir un modelo exige entrenar de nuevo el programa que combina los modelos: verifica esa dependencia en tu sistema.

El cálculo tarda diez minutos. ¿Por qué esperas catorce entre resultados?

Tienes tres pruebas listas y un proceso de cálculo. Cada prueba tarda 10 minutos, pero los resultados llegan en los minutos 10, 24 y 38. Antes de iniciar más procesos, quieres localizar los ocho minutos de espera acumulados antes del tercer resultado. ¿Qué horas de inicio y fin registrarías para distinguir un cálculo lento, falta de trabajo listo y espera de un informe?

Abre el caso y la explicación

Si la tabla no cabe en la pantalla, desplázala en horizontal. Con el teclado, selecciónala y usa las flechas.

DiseñoPrimer resultadoSegundo resultadoTercer resultadoÚltimo informe
El cálculo espera al informe10 min24 min38 min42 min
Los informes avanzan por separado10 min20 min30 min34 min

El registro del caso muestra que el proceso espera cuatro minutos para preparar cada informe antes de iniciar la siguiente prueba. Con otro proceso para los informes, el siguiente cálculo puede empezar enseguida. El tercer resultado llega en el minuto 38 con el primer diseño y en el minuto 30 con el segundo. Los cálculos siguen necesitando 30 minutos en total: has eliminado 8 minutos de espera antes del tercer resultado. El último informe termina en el minuto 42 o 34. Tener el resultado y tener el informe son dos momentos distintos.

El ejemplo supone que escribir el informe no ralentiza los tres cálculos y que cada resultado se guarda antes de preparar su informe. En un ordenador real, ambos procesos pueden competir por procesador, memoria o acceso al disco y tardar más. Mide los tiempos con y sin informes. Si escribirlos tarda más que calcular, comprueba también cuántos quedan pendientes.

La decisión de entonces y la simulación de hoy

En este ejemplo inventado, el 5 de enero a las 10:00 UTC el modelo asigna a la acción A una puntuación de 0,62. El programa compara ese número con el umbral de puntuación exigido para comprar. La regla v1 exige al menos 0,65: no compra A. Al día siguiente bajas la puntuación mínima exigida a 0,60 y vuelves a simular el 5 de enero. El modelo lee los mismos precios y sigue asignando 0,62. ¿Qué puedes escribir en el registro de decisiones?

Si la tabla no cabe en la pantalla, desplázala en horizontal. Con el teclado, selecciónala y usa las flechas.

DocumentoReglaResultado
Registro del 5 de enerov1 · ≥ 0,65Sin compra
Nueva simulación del 6 de enerov2 · ≥ 0,60Compra simulada

Conservas ambos: «v1 no compró» y «v2, aplicada hoy a esos datos, habría comprado». No sustituyes el registro original. Si elegiste 0,60 después de ver el resultado del 5 de enero, ese día ya ha influido en la elección: no es una prueba nueva.

El registro documenta lo que conservaste. Por sí solo no demuestra que los datos estuvieran disponibles entonces, que una orden se hubiera ejecutado o que el nuevo umbral vaya a funcionar en el futuro.

Para repetir los cálculos, guarda el programa y ejecútalo con Node.js. El archivo JSON muestra los supuestos y los resultados esperados.

node QE-WORK-01.js

QE-WORK-01 / 1.0. Estos ejemplos comprueban únicamente el sistema descrito. No reconstruyen tu arquitectura ni evalúan si una estrategia es rentable.

Del dato a la decisión: qué debes poder reconstruir

El modelo es una parte del sistema. Este mapa didáctico relaciona cada etapa con un posible fallo, una comprobación y un registro que conviene conservar. No describe la arquitectura propietaria de Quantic Eagle.

  1. 1 Cuándo podías conocer el dato

    Riesgo
    La prueba compra a las 10 utilizando una noticia publicada a las 12.
    Comprobación
    Compara la hora de compra con la primera hora a la que podías recibir la noticia.
    Conserva
    La fuente de la noticia, la versión del archivo y los horarios.
  2. 2 Qué lee y aprende el modelo

    Riesgo
    Una media de precios incluye el de mañana, o el modelo aprende de una venta que aún no se ha producido.
    Comprobación
    Enumera los precios utilizados en cada dato de entrada. Para cada resultado de entrenamiento, indica cuándo la venta permite conocerlo.
    Conserva
    La fórmula, las filas utilizadas y la hora en que se conoce el resultado.
  3. 3 Qué datos usas para aprender y para evaluar

    Riesgo
    Simulas una compra del lunes con un modelo que ya ha aprendido del resultado del viernes siguiente.
    Comprobación
    Antes de entrenar, separa las filas y comprueba cuándo se conoce el resultado de cada una.
    Conserva
    Las filas asignadas a cada periodo y el motivo de las exclusiones.
  4. 4 Cómo eliges la versión que vas a probar

    Riesgo
    Ves el resultado de la prueba final y cambias el umbral de puntuación exigido para comprar para mejorarlo.
    Comprobación
    Usa un periodo para elegir entre versiones. Reserva otro para evaluarlas después, sin consultarlo para ajustar la elección.
    Conserva
    Todas las versiones probadas, sus ajustes y los resultados ya consultados.
  5. 5 De las puntuaciones a las órdenes

    Riesgo
    Dos programas asignan las mismas puntuaciones a A y B, pero uno compra A y el otro B.
    Comprobación
    Compara qué acciones se pueden comprar, su orden de prioridad, la elección final y las cantidades. Después comprueba los precios y costes simulados.
    Conserva
    El registro de decisiones, las órdenes y las hipótesis sobre los precios de ejecución.
  6. 6 Cuánto vale la cuenta durante la prueba

    Riesgo
    El saldo oculta una pérdida en acciones que aún conservas, o un depósito parece una ganancia.
    Comprobación
    Suma el efectivo y el valor de las posiciones abiertas. Registra por separado los depósitos, las retiradas y la frecuencia con la que observas la cuenta.
    Conserva
    El valor de la cuenta, los movimientos externos, los gastos y el método para calcular la rentabilidad.
  7. 7 Qué ocurre con datos que no usaste para elegir

    Riesgo
    Presentas como confirmación nueva el periodo que te ayudó a elegir al ganador.
    Comprobación
    Guarda la versión elegida antes de la nueva evaluación. Examina también escenarios desfavorables explícitos y distínguelos de las observaciones reales.
    Conserva
    Los resultados de la nueva prueba, las hipótesis de los escenarios y el historial de decisiones.
  8. 8 Cómo conservas las decisiones y continúas

    Riesgo
    Repites el pasado con una regla nueva y pierdes el registro de lo que decidió el programa en su momento.
    Comprobación
    Conserva ambas versiones y vincula cada decisión a la regla que la produjo. Define la siguiente prueba antes de ver sus resultados.
    Conserva
    Las versiones fechadas, las decisiones originales, las nuevas simulaciones y las comprobaciones pendientes.

Los casos del mapa son inventados. Si estandarizas precios para entrenar, estima media y desviación estándar solo con los datos de entrenamiento permitidos. Una predicción para una fila excluida de ese entrenamiento concreto se llama out-of-fold (OOF). Revisa también las transformaciones y elecciones que usaron su resultado; entrenar con otras filas no elimina información futura si esas filas son de fechas posteriores. Un periodo excluido del ajuste de pesos, llamado out-of-sample (OOS), puede haberse consultado igualmente para seleccionar el sistema.

La curva que no lo mostraba todo

Equity es el valor total de la cuenta en un momento dado: incluye las ganancias y pérdidas no realizadas de las posiciones abiertas. El saldo, o balance, no incluye esos resultados no realizados. El tratamiento del crédito, las comisiones y otros componentes depende de la fuente. En la comparación que aparece a continuación, el valor total de la cuenta y el saldo se observan en los mismos momentos. El cálculo utiliza solo esos valores: no reconstruye lo ocurrido entre observaciones ni comprueba cómo los calculó la fuente.

Para comparar las curvas de una cuenta inventada, fijamos su valor inicial en 100. Los números del gráfico son un índice, no importes en euros. Si miramos solo el saldo después de cerrar operaciones, el índice no baja y termina en 104. El informe calcula por tanto un drawdown del saldo de cero.

Ahora incluye las posiciones abiertas en esas mismas observaciones. La equity alcanza 101, baja hasta 87 y termina en 104. El drawdown observado es del 13,86 %. El punto final no cambia; lo que cambia es lo que puedes ver durante el recorrido.

Ejemplo sintético · No representa resultados de Quantic Eagle

Dos curvas. El mismo valor final.

Operaciones cerradasEquity con posiciones abiertas
Índice, base 100
901001051612
Observación
Ambas terminan en 104. DD de operaciones cerradas: 0 %. DD observado de la equity: 13,86 %.

Es un ejemplo sintético, no un resultado de Quantic Eagle. Muestra por qué la definición de una métrica importa tanto como su valor. En un análisis real necesitas conocer frecuencia de observación, costes, aportaciones y retiradas, y cobertura de las posiciones abiertas. Los datos diarios pueden omitir un mínimo intradía.

La primera comprobación consiste en averiguar si el informe mide el riesgo que quieres entender o solo el que sus datos permiten calcular.

La clasificación preliminar no coincidía con la de los backtests

Cuando tienes muchos modelos que probar, un cálculo preliminar rápido puede ayudarte a elegir cuáles recibirán una simulación completa. Esa medida preliminar es un proxy del resultado que te interesa. En una campaña interna, la clasificación preliminar y la de los backtests ordenaban de forma distinta los mismos 192 candidatos. Esta observación documenta una discrepancia entre clasificaciones; no demuestra que un método de selección sea superior al otro.

La comparación histórica de 192 candidatos no proporciona las fórmulas de las clasificaciones preliminares, la métrica de los backtests, el periodo y las convenciones sobre costes, la población completa antes de la selección ni los resultados por candidato. Sin esos elementos no puedes reconstruirla. Además, los candidatos se eligieron durante una investigación que se adaptaba a resultados ya consultados: ese periodo no constituye una prueba final independiente.

Observación interna: la clasificación preliminar y la de los backtests no coincidían. El material público no facilita definiciones y resultados de cada candidato suficientes para cuantificar esa discrepancia de forma independiente.

En tu comparación, registra los mismos identificadores de candidatos en ambas clasificaciones, define cada medida de ordenación y su periodo, y conserva los costes y las reglas de selección. Prueba también candidatos fuera de la lista preliminar: de otro modo no podrás observar los resultados de los que el filtro excluye.

Una puntuación preliminar puede medir una parte del problema. La cartera incluye además costes, posiciones simultáneas, riesgo y concentración. La diferencia se aprecia cuando comparas ambas clasificaciones en condiciones coherentes.

Experimento sintético · Datos totalmente inventados

El primero de la clasificación pierde en el periodo usado para elegir

Tienes dos backtests sobre periodos de igual duración, con los mismos criterios de capital y costes. A gana 3.000 unidades monetarias inventadas en el periodo de aprendizaje y pierde 20 en el de selección. B gana 200 y 100. Si sumas el 10% del primer resultado y el 90% del segundo, ¿quién queda primero?

A: 300 − 18 = 282. B: 20 + 90 = 110. A queda primero porque la fórmula incluye 300 unidades de beneficio obtenido con los mismos datos usados para entrenar el modelo; el segundo periodo aporta −18. Solo en el segundo periodo, B queda primero con 100 frente a −20. Eso no lo convierte automáticamente en un modelo listo para operar: aún hay que evaluar el riesgo, la actividad y otros periodos. Y el periodo consultado para elegir ya es selección, no una prueba final intacta.

Ejemplo inventado: pesos y resultados no proceden de la investigación operativa de Quantic Eagle. La fórmula muestra el problema; no es una regla de selección recomendada.

Explora el programa y los ejercicios →

Antes de elegir el modelo, decide qué debe aprender

Debes elegir un modelo y el informe favorece al que distingue mejor las compras ganadoras de las perdedoras. Tu sistema solo puede comprar un título: comprueba cuál elige y cuánto gana o pierde después de los gastos. Imagina cuatro compras posibles al mismo tiempo. Solo puedes realizar una, siempre del mismo importe. Dos modelos inventados asignan puntuaciones para establecer la prioridad y cada uno elige la mayor. Las ganancias y pérdidas de la tabla se conocen después; no son entradas de los modelos. Importes y costes se expresan en la misma unidad monetaria inventada.

En una pantalla pequeña, desplaza la tabla horizontalmente.

CompraResultado bruto, conocido despuésPuntuación APuntuación B
1+10,90,6
2+80,70,9
3−10,80,7
4−80,60,8

A elige la compra 1: gana 1 y paga 0,10 de coste, por lo que quedan +0,90. B elige la 2: gana 8 y paga el mismo coste, por lo que quedan +7,90. Las puntuaciones no son probabilidades y no se ha entrenado ningún modelo para este ejemplo.

Compara ahora cada compra ganadora con cada una de las dos perdedoras: obtienes cuatro parejas. A da mayor puntuación a la ganadora en tres parejas de cuatro; B, en dos. Esa proporción es el AUC del ejemplo: 0,75 para A y 0,50 para B. A ordena mejor ganadoras y perdedoras, pero B elige la compra que aquí gana más. La calidad de la clasificación y el resultado de la compra responden a preguntas distintas. El caso no indica qué modelo funcionará mejor en el futuro. Las parejas son 1–3, 1–4, 2–3 y 2–4. Para A, 0,90 supera 0,80 y 0,60; 0,70 supera 0,60, pero no 0,80. Para B, 0,60 no supera ni 0,70 ni 0,80; 0,90 supera ambos.

AUCResultado netoAB0,750,50+0,90+7,900 → 10 → 8
Ejemplo sintético: cuatro oportunidades, una elección por modelo, igual tamaño y un coste de 0,10 unidades. AUC: A 0,75, B 0,50. Resultado neto: A +0,90, B +7,90. Las columnas usan escalas distintas. No se ha entrenado ningún modelo para este ejemplo.

¿Quieres que el sistema reconozca una dirección o que tome una decisión con valor económico? La respuesta cambia la forma de interpretar sus métricas.

La función de pérdida, o loss, guía el entrenamiento. El AUC (área bajo la curva ROC) mide hasta qué punto una puntuación sitúa los ejemplos positivos por encima de los negativos; no mide directamente el valor de las decisiones, sus costes ni el capital que necesitan. Una loss que aproxima un objetivo económico puede dar distinta importancia a errores que una métrica direccional trata por igual.

Un buen AUC no basta para elegir un sistema de trading; un AUC bajo tampoco demuestra su conveniencia económica. Si es muy alto sobre los datos de entrenamiento, comprueba si los ejemplos son realmente fáciles de distinguir, si el modelo memorizó características de esa muestra o si recibió información que no habría tenido al decidir. Cambiar la función de pérdida no convierte un resultado de entrenamiento en una prueba con datos nuevos.

En nuestra investigación distinguimos el objetivo de entrenamiento, la puntuación que ayuda a seleccionar candidatos y el resultado del backtest de cartera. Incluso una aproximación económica puede ordenar mal los candidatos cuando el sistema completo aplica costes, límites y reglas de ejecución. El análisis de los 192 candidatos descrito aquí compara una puntuación preliminar con una clasificación de backtest. No es un estudio del AUC ni demuestra que la loss haya causado la discrepancia.

El entrenamiento con objetivos económicos también existe en la investigación académica. Lim, Zohren y Roberts describen redes entrenadas para optimizar la ratio de Sharpe, con una penalización de la rotación para tener en cuenta los costes de transacción. Nuestra aportación formativa es el proceso de diseño y comprobación, no haber inventado esta categoría. Estudio original: Enhancing Time Series Momentum Strategies Using Deep Neural Networks.

La pregunta útil es: ¿qué comportamiento estoy premiando y cuánto se parece al que deberá ejecutar el sistema?

Separar las fechas no basta: comprueba cuándo se conocen los resultados

Ejemplo inventado: quieres entrenar un modelo antes del periodo 5 y usarlo para decidir en los periodos 5 y 6. Uno de los ejemplos de entrenamiento compra en el periodo 4 y vende en el 6. La ganancia o pérdida es la respuesta que quieres enseñar al modelo a predecir, llamada etiqueta o label. Antes del periodo 5 no puedes conocerla: la venta aún no ha ocurrido. No basta con ordenar las filas por la fecha de compra; también debes comprobar cuándo se conoce cada resultado.

T = entrenamiento · V = evaluación · × = fila excluida · — = sin utilizar. Los números representan periodos hipotéticos, no fechas ni rentabilidades reales.

División aleatoria ingenua

  1. 1T
  2. 2V
  3. 3T
  4. 4T
  5. 5V
  6. 6T
  7. 7—
  8. 8—

Entrena el modelo también con observaciones posteriores a algunas de las decisiones evaluadas. No reproduce la tarea de predecir el futuro a partir del pasado.

Walk-forward sin comprobar las etiquetas

  1. 1T
  2. 2T
  3. 3T
  4. 4T
  5. 5V
  6. 6V
  7. 7—
  8. 8—

Las filas de entrenamiento empiezan antes de la evaluación, pero el resultado de la fila 4 no se conoce hasta el periodo 6. Ordenarlas por su fecha inicial no elimina esa información futura.

Walk-forward excluyendo el solapamiento

  1. 1T
  2. 2T
  3. 3T
  4. 4×
  5. 5V
  6. 6V
  7. 7—
  8. 8—

Se excluye la fila 4. En este ejemplo, los resultados de las filas 1–3 ya se conocen antes del periodo 5; con datos reales hay que comprobar cada intervalo.

Purgado, embargo y separación antes de la prueba

El purgado excluye del entrenamiento las observaciones cuyos intervalos de etiqueta se solapan con la evaluación. El embargo puede excluir un tramo posterior a la prueba cuando el diseño de validación cruzada admite datos de entrenamiento posteriores. Busca limitar dependencias residuales, por ejemplo las debidas a ventanas de información solapadas. Un walk-forward estrictamente causal no entrena con esas observaciones futuras; un intervalo de exclusión anterior a la prueba es un gap. Su duración y sus límites dependen de las etiquetas, la disponibilidad de los datos y las ventanas de las variables. No existe un número universal de días.

Estas exclusiones no corrigen datos publicados con retraso, normalizaciones ajustadas con todo el conjunto ni selecciones repetidas sobre la prueba. Conserva las filas excluidas y los motivos, incluye un ejemplo defectuoso que la comprobación deba detectar y registra qué resultados habías visto antes de decidir.

Pruébalo sobre el papel: una fila empieza en el periodo 4 y su resultado termina en el 6. ¿Puedes usarla para entrenar un modelo que decide al comienzo del 5? No. Cambia ahora el final del resultado al periodo 4: ese solapamiento desaparece, pero aún hay que comprobar la disponibilidad de las variables y el historial de selección.

En TimeSeriesSplit, gap indica un número de muestras, no necesariamente un número de días.

Para la separación cronológica y el parámetro gap, consulta la documentación oficial de TimeSeriesSplit. Para el riesgo de seleccionar entre muchos backtests, consulta a Bailey y sus coautores. Ninguna de estas referencias certifica este proyecto ni garantiza resultados futuros.

scikit-learn: TimeSeriesSplit · Bailey et al.: The Probability of Backtest Overfitting

Dos archivos idénticos. En ambos falta el precio del 3 de marzo

Ejemplo inventado: dos copias de prices.csv coinciden byte por byte, pero en ambas falta el cierre del 3 de marzo que exige una media móvil. Tomar las tres últimas filas presentes puede sustituir ese cierre por un precio anterior y proporcionar al modelo o a la regla una media distinta de la requerida. En el caso del Museo, el precio actual de 10 supera la media incorrecta de 9, pero no la correcta de 11: se autoriza una compra que la regla excluiría. Comparar las huellas de los archivos, llamadas hashes, no descubre el hueco; compara las sesiones presentes con las necesarias. Sigue el dato ausente hasta la decisión de compra.

Para calcular un indicador, comprueba tanto las fechas necesarias como cuántas observaciones anteriores requiere. Un archivo puede contener todas las fechas del periodo de prueba y no tener suficiente historial antes de su inicio.

Ejemplo sintético · No representa resultados de Quantic Eagle

Tres situaciones que conviene distinguir

— Ausencia inicial prevista · ✓ Disponible · ! Hueco inesperado

Datos sintéticos: dos ausencias previstas, tres valores presentes y un hueco que investigar.

Para una media de las últimas tres sesiones, en las dos primeras aún no hay tres precios: esa ausencia es esperada. Si falta un precio meses después, cuando deberían estar las tres sesiones, hay que investigar. Eliminar todas las filas incompletas sin distinguir sus causas oculta la diferencia y cambia qué casos estás evaluando.

Del caso guiado a tu propio proyecto

Los ejercicios muestran cómo cambian las órdenes al modificar una regla, por qué un informe puede retrasar el trabajo y por qué conservar las decisiones originales. La guía en preparación te acompaña al repetir esas comprobaciones con tu programa, mediante instrucciones, ejemplos resueltos y fichas.

Consulta el programa de la guía →

Fuentes y alcance

El caso de los 192 backtests procede de investigación interna de Quantic Eagle del 16 de septiembre de 2026, sin auditoría independiente. Las figuras didácticas son esquemas o ejemplos sintéticos; QE-RESEARCH-02 presenta agregados de la comparación interna registrada el 19 de septiembre de 2026, con la fuente y los límites junto al gráfico. La guía recoge unos diez años de experiencia acumulada en investigación, con aportaciones del fundador y de colaboradores externos, también antes de constituir la sociedad. No se trata de diez años de resultados de trading real.

Sobre la selección entre múltiples backtests: Bailey et al., The Probability of Backtest Overfitting. Quantic Eagle opera con capital propio y no acepta dinero para invertirlo por cuenta de terceros ni gestiona sus inversiones. Este contenido ofrece formación metodológica general, no recomendaciones de inversión.

Compara otros fallos y sus correcciones en el Museo de los falsos verdes.

Elaborado por Quantic Eagle LTD · Formación general en métodos de investigación. Quiénes somos.

Volver arriba