Un solo precio mal cargado puede convertir un sistema del 5 % en uno del 30 %
Un backtest se juzga por su resultado, y el resultado se calcula sobre una tabla de precios. Esa tabla casi nunca se audita: se da por buena. Esta nota muestra, con una prueba que cualquiera puede repetir, cuánto rendimiento falso produce un único precio equivocado entre decenas de miles, y qué hace falta para evitarlo.
La respuesta corta: veintiséis puntos de rendimiento anual, y una línea de código.
El error que inventa una ganancia
La intuición dice que un precio demasiado alto es el peligroso. Es al revés.
Un precio alto y falso produce una ganancia enorme seguida de una pérdida equivalente cuando el dato vuelve a la normalidad: el sistema compra caro y vende barato, y la pérdida compensa la ganancia. Molesta, pero no infla el resultado.
El que infla es el precio bajo. Una acción de 80 dólares guardada como 0,80 —una coma corrida, un split que nadie ajustó— no se ve como un error: se ve como un desplome. Y un desplome es, para muchas estrategias, una señal de compra. El sistema compra a 0,80, el precio del mes siguiente es el verdadero, y el backtest anota una ganancia de casi diez mil por ciento que nunca ocurrió.
Esa operación no existió. Pero queda en el historial, y arrastra el promedio de todos los años.
La prueba, para que usted la repita
La estrategia es deliberadamente simple y conocida, para que no haya nada que creer por fe:
- Universo: las acciones del S&P 500, con la composición que el índice tenía en cada año, no la de hoy.
- Regla: al cierre de cada mes, comprar las diez acciones que más cayeron ese mes, en partes iguales.
- Mantener un mes. Repetir.
- Período: enero de 2015 a diciembre de 2025. Sin costos de operación.
La estrategia son unas veinte líneas de código. El resultado con datos limpios es 5,12 % anual, que es lo que corresponde: comprar caídas fue un mal negocio en esa década.
Antes de medir se excluyeron de la tabla de precios dos series con datos corruptos conocidos: MYL desde el 17 de noviembre de 2020 (Mylan se fusionó en Viatris y la serie sigue dos días en 0,079, viniendo de 15,855) y WIN desde el 27 de abril de 2015 (un escalón de 193,62 a 43,79 sin recuperación). Se nombran a propósito: medir este efecto con el efecto adentro no tendría sentido, y una exclusión sin nombre no se puede verificar.
Después se corrompe un solo precio: se toma una acción cualquiera, un mes cualquiera, y se divide su precio de cierre por cien. Un dato, entre los 64.270 precios de fin de mes que usa el cálculo.
El resultado
Se repitió 191 veces, cada una con una acción y un mes distintos:
| Rendimiento anual | |
|---|---|
| Datos limpios | 5,12 % |
| Con un precio dividido por cien | mediana 31,05 % (rango 26,61 % a 36,66 %) |
La inflación mediana es de 25,93 puntos, y 191 de los 191 casos inflaron más de 20 puntos. No es un caso extremo elegido a propósito: es lo que pasa siempre.
Un dato entre sesenta y cuatro mil multiplica por seis el rendimiento de un sistema. Y en la planilla no se ve nada raro: se ve un sistema excelente.
Una línea de código lo apaga
La defensa no requiere auditar la base de datos entera. Alcanza con descartar lo imposible: ninguna acción de un índice grande cae ochenta por ciento en un mes sin que sea noticia mundial. Si el cálculo encuentra una caída así, lo correcto es sospechar del dato, no comprarlo.
| Sin filtro | Con filtro de −80 % | |
|---|---|---|
| Datos limpios | 5,12 % | 4,86 % |
| Con un precio corrupto (mediana) | 31,05 % | 4,86 % |
El filtro evita veintiséis puntos de rendimiento inventado y cuesta un cuarto de punto sobre datos limpios. En 179 de los 191 casos el backtest corrompido devuelve exactamente el mismo número que el limpio: el dato sucio deja de existir para el cálculo.
Un cuarto de punto de costo por veintiséis puntos de protección. Es una de las mejores relaciones que un sistema de trading puede comprar.
Lo que el filtro NO protege
Conviene mirar los doce casos en que el filtro no devuelve exactamente el número limpio, porque no son todos lo mismo:
| Qué pasaba con la acción corrompida | Casos |
|---|---|
| Ya era una de las compras legítimas de ese mes | 6 |
| Era la compra del mes siguiente | 4 |
| Ya estaba comprada desde el mes anterior | 2 |
Los dos últimos son el límite del remedio. El filtro se aplica a la compra, no a la posición abierta. Si el dato sucio aparece en un papel que el sistema ya tiene en cartera, la caída falsa del noventa y nueve por ciento le pega al resultado igual, y descartar la compra no lo evita porque la compra ya ocurrió.
Esos dos casos son, además, los de mayor desvío de los doce.
La defensa completa no es una línea, entonces, sino dos ideas: descartar lo imposible antes de comprar, y revisar los movimientos imposibles sobre lo que ya se tiene. La primera cuesta un cuarto de punto; la segunda cuesta una revisión periódica de la serie, que es trabajo y no código.
Por qué esto no se detecta mirando el resultado
Un resultado inflado por un dato sucio no parece un error. Parece un hallazgo.
El rendimiento sube, la curva se ve mejor, y el autor del backtest tiene todos los incentivos para no buscarle defectos a la única versión que funcionó. Un error que empeora el resultado se investiga hasta encontrarlo; uno que lo mejora se publica.
Por eso conviene revisar los datos antes de alegrarse, y no después.
Cómo detectarlo en el resultado de otro
Cuando alguien presenta un backtest, tres preguntas separan los que miraron sus datos de los que no:
- ¿Qué pasa si se descartan las operaciones más grandes? Si al quitar las cinco mejores el resultado se desploma, el sistema no vive de un mecanismo: vive de cinco datos. Conviene mirar cuáles son.
- ¿Cuál fue la mejor operación individual, y qué la causó? Una ganancia de varios miles por ciento en un papel de un índice grande merece una explicación concreta. Si no la hay, es un dato sucio.
- ¿La composición del universo es la de cada año o la de hoy? Es un problema distinto —el sesgo de supervivencia— pero se detecta con la misma pregunta: de dónde salió exactamente cada número.
Ninguna de las tres requiere ver el código. Las tres se responden con la lista de operaciones, que es justamente lo que conviene pedir.
Información, no asesoramiento financiero ni recomendación personalizada; Ecliptic Alerts no está registrado ante la CNV, la SEC ni otro regulador. Servicio disponible solo para residentes de los países admitidos (Términos, sección 4). Los resultados pasados, simulados o reales, no garantizan resultados futuros. @eclipticalerts t.me/eclipticalerts