Sobreoptimización y curve fitting: por qué los backtests preciosos mueren en real

· 11 minutos de lectura · Guías de tradea.es
Sobreoptimización y curve fitting: por qué los backtests preciosos mueren en real

Hay un momento que se repite en este sector con una regularidad deprimente: alguien enseña un backtest impecable, con una curva que sube casi en línea recta, y tres meses después ese mismo sistema no levanta cabeza operando en real. Casi siempre hay una única explicación, y tiene nombre propio: sobreoptimización, o curve fitting, o ajuste a la curva. Da igual cómo lo llames.

Es el pecado capital del trading automático. No porque sea raro, sino porque es facilísimo cometerlo sin darse cuenta, y porque el resultado inmediato de cometerlo es precisamente un backtest más bonito. El castigo llega tarde y siempre llega en real, con dinero encima de la mesa.

Esta guía va de cómo se produce, cómo se detecta desde fuera y qué técnicas existen para evitarlo. Sirve tanto si programas tus propios sistemas como si estás valorando el de otro.

Curve fitting: qué es sobreoptimizar, en cristiano

Sobreoptimizar es ajustar los parámetros de un sistema hasta que describe a la perfección el trozo concreto de pasado que le has enseñado, ruido incluido. El sistema deja de capturar un comportamiento real del mercado y pasa a memorizar una serie de precios. Y el mercado, que repite comportamientos, no repite series de precios.

La analogía escolar funciona muy bien. Un alumno se aprende de memoria las respuestas del examen del año pasado. En el simulacro saca un diez. En el examen de verdad, donde las preguntas son otras, saca un tres. No es que no supiera nada: es que lo que aprendió no era la asignatura, eran las respuestas.

Un sistema no se juzga por lo bien que explica el pasado, sino por lo poco que se rompe cuando el pasado cambia.

Un ejemplo tonto que lo explica todo

Imagina que pruebas un sistema sobre un año de datos y sale plano. Miras el detalle y descubres que los martes salieron peor que la media. Añades una regla: no operar los martes. El backtest mejora. Sigues mirando y ves que las operaciones de más de dos horas empeoraban el resultado, así que añades un cierre a las dos horas. Mejora otra vez. Y para rematar, metes un filtro que solo entra si el precio ha subido más de un 0,37 % en los últimos 23 minutos.

El backtest final es espectacular. Y no vale nada. En un año de datos hay unos cincuenta martes: que salgan peores que la media no es información, es azar. El 0,37 % y los 23 minutos no salen de ninguna idea sobre el mercado, salen de probar combinaciones hasta que una encajó.

La razón de fondo es matemática. Cada parámetro que añades es un grado de libertad, y con suficientes grados de libertad puedes hacer pasar una curva por cualquier nube de puntos. Eso no es descubrir una ley: es dibujar la nube que ya tenías delante.

Las señales de alarma de un backtest ajustado

Lo bueno es que la sobreoptimización deja huellas, y casi todas se pueden buscar desde fuera sin ser programador. Esta es la lista de las que más veces aciertan.

Señal de alarmaQué suele significarCómo comprobarlo
Curva demasiado limpiaEl sistema ha memorizado el periodo, o no se han descontado costesPide la curva con comisiones descontadas y el listado de operaciones. Un sistema real tiene rachas malas visibles
Muchísimos parámetrosGrados de libertad de sobra para ajustar el ruidoCuéntalos y divide las operaciones entre ellos. Menos de 30 operaciones por parámetro es mala señal
Valores raros y muy específicosSe eligieron por rendimiento, no por una razón de mercadoPregunta por qué ese número y no el de al lado. Si no hay respuesta, es ajuste
Se hunde al mover un parámetroEl sistema vive en un pico estrecho, no en una zona buenaMapa de sensibilidad: repite el backtest con el valor un 5 % y un 10 % arriba y abajo
Pocas operacionesLa muestra no da para concluir nadaPide el número total y el periodo. Por debajo de 100 operaciones, cualquier conclusión es débil
Solo funciona en un instrumentoPuede ser legítimo, pero también casualidadPide el mismo sistema en un instrumento parecido y en otro tramo temporal
El backtest empieza justo ahíLa fecha de inicio se ha elegido para saltarse el peor tramoPide el histórico más largo disponible y compara los dos

Ninguna de estas señales es una condena por sí sola. Hay sistemas legítimos con pocas operaciones y sistemas legítimos que solo tienen sentido en un instrumento. Lo que no hay son sistemas legítimos que acumulen cuatro o cinco de estas señales a la vez.

El mapa de sensibilidad: la prueba más barata que existe

Si solo puedes hacer una comprobación, haz esta. Un mapa de sensibilidad consiste en repetir el backtest moviendo un parámetro un poco arriba y un poco abajo, y mirar qué le pasa al resultado.

Pongámoslo con un caso concreto. Un sistema arriesga 300 $ por operación y su backtest sale bien. La pregunta correcta no es cuánto gana con 300 $, es qué pasa con 280 $ y con 320 $. Y luego con 260 $ y con 340 $.

Hay dos respuestas posibles y son mundos distintos:

La misma prueba vale para cualquier parámetro: la hora de entrada, el periodo de una media, el umbral de un filtro. Y tiene la ventaja de que no requiere fe: es una tabla de números que se genera en un rato con el Strategy Analyzer de NinjaTrader 8 o con la herramienta equivalente de cualquier plataforma seria.

Out of sample: guardar datos que el sistema no ha visto

La técnica clásica para no engañarse consiste en partir el histórico en dos. Con el primer trozo (digamos el 70 %) desarrollas y ajustas todo lo que quieras. El trozo final se guarda y no se mira. Cuando el sistema está terminado, se ejecuta una sola vez sobre esos datos guardados.

Si el rendimiento en el tramo fuera de muestra se parece razonablemente al del tramo de desarrollo, buena señal. Si se desploma, has ajustado ruido y lo acabas de descubrir gratis, que es infinitamente mejor que descubrirlo con dinero.

Y aquí está la trampa en la que cae casi todo el mundo: mirar el fuera de muestra, no gustarle el resultado, volver a ajustar el sistema y probar otra vez. En el momento en que haces eso, el fuera de muestra deja de serlo y se convierte en más datos de entrenamiento. Solo se puede usar una vez. Si lo has usado tres, tu sistema está ajustado a todo el histórico y no lo sabes.

Walk forward: la versión seria

El walk forward es la evolución natural del fuera de muestra y se parece mucho más a lo que ocurre en real. Funciona así: optimizas los parámetros sobre una ventana (por ejemplo, seis meses), congelas esos parámetros y operas la ventana siguiente (por ejemplo, un mes) sin tocarlos. Luego desplazas las dos ventanas y repites, y así hasta el final del histórico.

Al terminar, juntas solo los tramos operados, nunca los de optimización. El resultado es una curva construida exclusivamente con decisiones tomadas sin conocer el futuro, que es exactamente la situación en la que vas a estar tú. Un sistema que aguanta un walk forward decente ya merece que le dediques tiempo. Uno que no lo aguanta es un ejercicio de arqueología.

Cuántos parámetros son demasiados

No hay un número mágico, pero sí una relación que ordena bastante: cuantas más operaciones por parámetro, más creíble es el sistema. Un sistema con tres parámetros y 800 operaciones en el histórico es una cosa muy distinta de uno con doce parámetros y 150 operaciones, aunque el segundo enseñe una curva mejor.

Como suelo mínimo, pedir al menos 30 operaciones por cada parámetro ajustable es una regla del pulgar razonable, y aun cumpliéndola conviene ir con cuidado. Por debajo de eso, el sistema tiene margen de sobra para memorizar el pasado.

Este problema se multiplica cuando entra en juego el aprendizaje automático, porque un modelo puede tener miles de parámetros internos y memorizar un histórico entero sin despeinarse. Las defensas son las mismas (validación estricta fuera de muestra, pocos datos de entrada, escepticismo), solo que la exigencia tiene que ser mucho mayor. Está desarrollado en la guía de machine learning en trading.

Optimizar con cabeza no es sobreoptimizar

Conviene decirlo claro, porque el mensaje contrario también hace daño: optimizar no es pecado. Ajustar los parámetros de un sistema es parte normal del trabajo, y no hacerlo tampoco tiene mérito. La diferencia entre las dos cosas no está en la herramienta (el optimizador es el mismo), está en el orden.

Optimizar con cabeza es partir de una idea del mercado que tiene sentido antes de mirar los datos, traducirla a pocos parámetros, buscar mesetas en vez de picos, validar fuera de muestra y aceptar de buen grado un rendimiento menor a cambio de estabilidad.

Sobreoptimizar es partir de los datos, probar miles de combinaciones, quedarse con la que mejor sale y construir la explicación después. La historia siempre se puede contar a posteriori, y suena igual de convincente.

Primero la hipótesis, después los datos. Ese es todo el criterio, y explica también por qué un sistema con una lógica que se puede contar en tres frases suele envejecer mejor que uno con veinte condiciones que nadie sabe justificar.

Las preguntas que hacerle a quien te enseñe un backtest

Si estás valorando un sistema ajeno, no necesitas leer su código. Necesitas hacer estas preguntas y escuchar cómo suenan las respuestas:

  1. ¿Cuántos parámetros tiene y qué hace cada uno?
  2. ¿Qué le pasa al resultado si muevo el principal un 10 % arriba y un 10 % abajo?
  3. ¿Hay un tramo fuera de muestra? ¿Cuál es, y cuántas veces se ha mirado?
  4. ¿Cuántas operaciones hay en el histórico y en qué periodo?
  5. ¿Las cifras llevan descontadas comisiones y deslizamiento?
  6. ¿Por qué el backtest empieza en esa fecha exacta?
  7. ¿Qué hace el mismo sistema en un instrumento parecido?
  8. ¿Puedo cargarlo yo y ejecutar el backtest por mi cuenta?

La última es la que más pesa. Un sistema que puedes ejecutar tú mismo en tu plataforma, eligiendo tú el periodo, es un sistema que no puede esconderte gran cosa. Es también la diferencia práctica entre un backtest verificable y una captura de pantalla. Y si estás en la fase de comparar opciones, la guía de cómo elegir un bot de trading ordena el resto de criterios.

En nuestra página de resultados está publicado el backtest de TSOPEN del 2 de enero al 25 de agosto de 2026 sobre una cuenta de 50.000 $, con más de 35.000 $ en bruto y más de 33.000 $ netos descontando comisiones. Es una simulación sobre datos históricos, los resultados pasados no garantizan los futuros, y la única forma de que esas cifras signifiquen algo para ti es que las reproduzcas tú. Para el contexto completo de todo esto, la guía completa de bots de trading es el punto de partida.

Preguntas frecuentes

¿Qué es el curve fitting en trading?

Curve fitting, o ajuste a la curva, es afinar un sistema hasta que reproduce a la perfección un tramo concreto del pasado, incluido su ruido. Es lo mismo que sobreoptimizar. El síntoma es un backtest excelente que se desmorona en cuanto el sistema opera sobre datos que no ha visto antes.

¿Cómo sé si un backtest está sobreoptimizado?

La comprobación más rápida es el mapa de sensibilidad: mueve el parámetro principal un poco arriba y un poco abajo y mira si el resultado se mantiene. Si el sistema gana con un stop de 300 $ pero se hunde con 310 $, está ajustado al pasado. Súmale contar parámetros, contar operaciones y preguntar por el tramo fuera de muestra.

¿Optimizar un sistema de trading es malo?

No, es parte del trabajo. Lo que hace daño es el orden inverso: dejar que los datos inventen las reglas en lugar de partir de una idea del mercado y comprobarla. Optimizar bien significa pocos parámetros, valores elegidos dentro de zonas amplias que funcionan y validación sobre datos que el sistema nunca vio.

¿Cuántos parámetros debe tener un sistema de trading?

Los menos posibles, y siempre en proporción a las operaciones del histórico. Una referencia práctica es exigir al menos 30 operaciones por parámetro ajustable como mínimo absoluto. Tres o cuatro parámetros con una lógica explicable en tres frases envejecen mucho mejor que doce parámetros que nadie sabe justificar.

En corto: sobreoptimizar es ajustar un sistema hasta que memoriza el pasado concreto que le enseñaste, ruido incluido, y por eso los backtests más bonitos suelen ser los peores. Se detecta con un mapa de sensibilidad (si gana con 300 $ debe seguir ganando con 280 $ y 320 $), contando parámetros y operaciones, y exigiendo un tramo fuera de muestra usado una sola vez. Primero la hipótesis, después los datos.

Ver esto funcionando vale más que leerlo

TSOPEN, el sistema automático de tradea.es, hace una operación al día a las 14:30, con 300 $ de riesgo y 600 $ de objetivo, y su backtest se puede reproducir en NinjaTrader 8. Tienes medio minuto de vídeo con el sistema operando, y a José o a José Antonio en WhatsApp para enseñártelo en directo, sin compromiso.

Sigue leyendo

WhatsApp