Dos formas en que un backtest te miente (y cómo evitarlas)

2026年8月7日1 次浏览来源:Dev.to阅读原文

Pruebas una estrategia, o un modelo, sobre datos históricos.

El backtest da un número bonito.

Y luego, en real, no aparece.

Casi siempre es una de estas dos ilusiones — y las dos se descartan con muy poco código.

Empaqueté las dos correcciones como librería: , Python puro, sin dependencias.

Salieron de un bot de trading, pero el rigor no tiene nada de específico al trading.

Ilusión 1: el modelo vio el futuro Partir los datos con el clásico aleatorio es correcto para datos independientes.

En una serie temporal es un desastre silencioso: mete muestras de mañana en el conjunto de entrenamiento, y el modelo "predice" en el test cosas que en producción todavía no habrían pasado.

La métrica sale inflada, y confías en un edge que no existe.

El test honesto es siempre el futuro: el tramo más reciente en el tiempo.

Devuelve índices, así lo aplicas a numpy, pandas o listas por igual.

El embargo cierra una fuga más sutil: si tu etiqueta mira pasos adelante, una muestra de entrenamiento a menos de del corte ya conoce parte del resultado del test. descarta ese borde.

La métrica baja — pero por fin es la real out-of-sample.

Ilusión 2: la variante ganó por suerte Tienes varias variantes y quieres la mejor.

Eliges la de mayor media.

Error: con pocas muestras, eso premia la varianza, no la ventaja.

La variante más ruidosa suele quedar arriba por azar.

Dos correcciones, ambas dentro de : Aparear.

Mide variante y baseline sobre el mismo ensayo y trabaja con .

La varianza común del ensayo se cancela en la resta, y te quedas con la señal.

Exigir cota inferior de confianza >

0.

Gradúa una variante solo si : "incluso siendo pesimista dentro del margen de confianza, sigue por encima del baseline". puede tener la media más alta y aun así no graduar: su dispersión hunde la cota inferior.

Eso es exactamente lo que quieres que pase — es el mecanismo que rechaza al ganador de suerte.

Cuando lo reciente pesa más Si el proceso cambia con el tiempo, pondera por recencia.

El tamaño de muestra efectivo de Kish evita que unas pocas muestras muy pesadas se hagan pasar por muchas: No crean señal — dejan de fabricarla Ninguna de las dos inventa edge: eso son datos y buenas features.

Lo que hacen es dejar de fabricarlo donde no lo hay.

Son el mínimo para no mentirte antes de arriesgar algo real.

Repo, tests (con la matemática anclada a mano y verificada por mutación) y detalle: github.com/isazajuancarlos/honest-eval.

分享
Baike.dev

baike.dev helps you discover great languages, frameworks, databases, DevOps and cloud-native tools.

Quick links

About

Contribute

Found a great developer tool? Share it with the community.

Submit a tool
© 2026 baike.dev Developer EncyclopediaUpdated daily · Discover great developer tools