Backtesting de bots de trading, cómo distinguir un backtest real del sobreajuste
La mayoría de "backtests" que ves online son engañosos. Guía para detectar look-ahead bias, survivorship bias y sobreajuste, y cómo se ve un test walk-forward honesto.

Backtesting de bots de trading, cómo distinguir un backtest real del sobreajuste
La mayoría de backtests que ves publicados online son basura. Esa es la verdad plana y no la voy a suavizar. Déjame hablar de esto directamente, porque importa: una curva de equity que se ve limpia es evidencia de casi nada. La habilidad no está en producir un gráfico bonito. La habilidad está en saber de cuáles cinco formas te está mintiendo el gráfico.
Llevo corriendo backtests desde 2017 y he visto cientos de estrategias morir en el momento en que pasan de datos históricos a capital vivo. Cada una tenía un gráfico hermoso en el momento de entrada. Ese patrón no es coincidencia. Es el error favorito de toda la industria, y la mayoría de los "marketplaces de bots" dependen de que no lo notes.
Las cinco formas en que un backtest te miente
Antes de mostrarte cómo se ve un backtest honesto, aprende los modos de fallo. Si puedes detectar estos, puedes rechazar aproximadamente el 95% de las "estrategias rentables" que te muestren.
1. Look-ahead bias
La estrategia usa información que no habría estado disponible en el momento de la operación. Sabor más común: calcular un indicador sobre el cierre de una barra, luego colocar la operación sobre la apertura de esa misma barra. No puedes hacer eso en vivo. La apertura llegó primero. El cierre llegó después. Si tu backtest revierte ese orden, estás operando con información del futuro.
Look-ahead bias es vergonzosamente fácil de introducir y sorprendentemente difícil de detectar en código ajeno. Si una estrategia se ve demasiado limpia, asume look-ahead primero.
2. Survivorship bias
El backtest corre sobre activos que existen hoy. Los activos que fueron a cero o fueron delisted están silenciosamente excluidos. Para crypto, esto es catastrófico, el cementerio de monedas muertas es enorme. Para acciones, también es real; la mayoría de backtests long-only en períodos largos implícitamente excluyen compañías quebradas.
Si un backtest de "bot crypto" corre sobre "top 20 monedas por capitalización de mercado hoy", esa lista se veía completamente distinta hace cinco años. El backtest está midiendo el performance de los ganadores que ya conoces.
3. Cherry-picking de período
El backtest corre sobre un período donde la estrategia casualmente funciona. Dos años de 2021 a 2023 en un bot crypto sesgado a largo se ve genial. Añade el bear de 2022 en medio y la curva cambia de forma. Córrelo en 2018 a 2019 y a menudo desaparece por completo.
Cualquier backtest que no muestre al menos un ciclo completo bull-bear no es un backtest. Es una captura de una ventana conveniente.
4. Optimización de parámetros sin validación out-of-sample
Este es el grande. El trader corre miles de combinaciones de parámetros y elige el que tiene mejor P&L histórico. Por supuesto que ese set se ve genial, fue seleccionado porque se ve genial. Out-of-sample, los mismos parámetros casi siempre rinden peor, porque lo que realmente se estaba optimizando era el ruido en los datos, no la señal.
Si alguien te muestra un backtest sin decirte si los parámetros fueron elegidos en un período y luego testeados sin tocar en otro, asume que los parámetros fueron curve-fit. Normalmente lo fueron.
5. Ignorar comisiones y slippage
El backtest usa precios mid-market, cero comisiones, liquidez infinita, y fills al tick exacto en que dispara la señal. El trading en vivo tiene spread, comisiones de exchange, slippage en órdenes más grandes, fills parciales, y alguna orden fallida ocasional. Una estrategia que se ve rentable a cero costo fácilmente puede volverse perdedora neta a costos realistas.
Regla general: añade al menos 0.1% de costo round-trip para crypto spot líquido, más para futuros, mucho más para cualquier cosa small-cap. Si la estrategia no sobrevive ese corte, no sobrevive.
Cómo se ve un backtest honesto
Ahora la versión positiva. Esto es lo que espero ver en un backtest antes de tomarlo en serio, mío, tuyo, o de alguien más.
- Múltiples activos, mismos parámetros. Si la estrategia solo funciona en una moneda en un timeframe, es casualidad. Córrela en al menos diez activos con ajustes idénticos. Compara la distribución de resultados.
- Split train/test. Elige parámetros sobre el primer 70% de los datos. Testea sin tocar sobre el último 30%. El performance del período de test es lo que importa. El performance del período de train es adulación.
- Análisis walk-forward. Desliza la ventana train/test hacia adelante en el tiempo. Re-optimiza en la sección de entrenamiento de cada ventana, evalúa en la sección de test de cada ventana, luego concatena todos los resultados de test. Así es como los equipos cuant reales lo hacen.
- Separación por régimen. Reporta resultados por separado para bull markets, bear markets y regímenes laterales. Una estrategia que solo genera dinero en bull markets no es estrategia. Es un bull market con pasos extra.
- Costos de transacción incluidos. Comisiones de exchange, spread, slippage realista. Cada operación paga el costo. Si los costos no están en el reporte, el reporte no es real.
- Modelado de slippage. Para cualquier cosa más allá de tamaño trivial, asume que no obtienes el precio exacto que viste. Modélalo pesimistamente, al menos la mitad del spread, a menudo un spread completo o más para órdenes market en pares ilíquidos.
- Drawdown, no solo retorno. Una estrategia con 100% de retorno anual y 80% de drawdown es matemáticamente lo mismo que una estrategia que te vuela. Siempre reporta drawdown máximo, ratio de Calmar, y tiempo bajo agua.
- Trade count. Quince operaciones no son un backtest. Son anécdota. La significancia estadística empieza alrededor de cien operaciones; la confianza realmente se construye más allá de unos cientos.
Si esas ocho casillas no están todas marcadas, el backtest es entretenimiento, no evidencia.
Red flag vs creíble, un lado a lado
| Señal | Backtest red flag | Backtest creíble |
|---|---|---|
| Win rate | 87% | 45 to 60%, realistamente |
| Activos testeados | 1 | 10+ con parámetros idénticos |
| Período mostrado | "Últimos 2 años" | Ciclo completo incluyendo fase bear |
| Selección de parámetros | "Optimizado para el período" | Split train/test o walk-forward |
| Comisiones y slippage | No mencionado | Explícito, por operación |
| Drawdown | Raramente mostrado | Reportado junto con retornos |
| Trade count | 15 | 300+ |
| Desglose por régimen | Ninguno | Curvas separadas para bull, bear, lateral |
| Autor | Anónimo o marca gurú | Nombrado, track record, código público o metodología abierta |
La columna izquierda es cómo se ven la mayoría de posts "hice 800% el año pasado con mi bot". La columna derecha es cómo se ve un backtest cuando alguien está realmente intentando saber la verdad en vez de venderte algo.
Un ejemplo de la mentira
Aquí una historia que has visto cien veces. "Mi bot tiene un track record de 2 años. Win rate 87%. 300% de retorno total. Funciona en BTC y ETH. Únete a mi Telegram para la estrategia completa."
Desármalo. Dos años, ¿cuáles dos? 2023 a 2025 es dinero fácil para estrategias long-biased. Prueba 2021 a 2023, que incluye el colapso de LUNA y FTX. Win rate 87%, ¿el perdedor promedio es diez veces el ganador promedio? Porque esa combinación es como se ve una martingala justo antes de volar. 300% de retorno, ¿sobre qué drawdown? Si la curva se fue 60% underwater en algún punto, la mayoría de humanos la habrían apagado y se habrían perdido la recuperación. Funciona en BTC y ETH, ¿funciona en SOL, ADA, LINK, AVAX con los mismos parámetros, o solo en los dos activos cherry-picked porque performaron?
Casi siempre, si presionas sobre esas preguntas, las respuestas o paran de venir o colapsan el pitch.
"Si el sistema solo funciona cuando lo afinas sin parar, no es un sistema. Es un pasivo."
Esa es la versión de ingeniería del mismo punto. Una estrategia que requiere parámetros distintos por activo, por timeframe, por mes, no es estrategia. Es un investigador cazando ruido.
Cómo backtesteamos, concretamente
No voy a pretender que nuestro proceso es secreto. Así es como realmente testeamos estrategias antes de que entren a producción con nuestro propio capital.
- Escribe la regla sin ambigüedad. Si no puede ser especificada en código, no puede backtestearse. "Feeling" discrecional no es regla.
- Corre la regla en al menos diez activos simultáneamente. Para crypto, un set representativo de pares top-cap y mid-cap. Para acciones, un corte transversal de sectores.
- Córrelo con parámetros idénticos en todos. Sin tuning por activo. Esta es la regla individual más importante.
- Divide los datos. Primera ventana para entrenamiento, ventana posterior para test. No mires la ventana de test durante la selección de parámetros. Nunca.
- Incluye costos realistas. Para crypto spot, asumimos 0.1% round-trip más 0.02% de slippage baseline. Para pares menos líquidos, más.
- Grafica la curva de equity por activo, y grafica la mezclada. Busca activos donde la estrategia simplemente no funcione. Si falla mal en más del 20% del set, la estrategia es frágil.
- Descompón por régimen. Etiqueta cada período como bull, bear o lateral usando un clasificador separado. Reporta performance por régimen.
- Corre walk-forward si la estrategia tiene cualquier optimización significativa. Re-selecciona parámetros en cada ventana de entrenamiento, evalúa en cada ventana de test. Mira la varianza de los resultados.
- Paper trade. Durante al menos 30 días. Datos en vivo, ejecución simulada. Esto atrapa bugs que el backtester esconde.
- Escala en vivo gradualmente. Tamaño pequeño primero, crece solo cuando el comportamiento coincide con la expectativa del backtest.
Los pasos 1 al 8 matan la mayoría de estrategias. El paso 9 mata otro trozo. El paso 10 es solo sentido común. Para cuando algo está corriendo con capital real, normalmente nos gusta mucho, porque ha sobrevivido muchas rondas de filtrado.
Por qué la filosofía de backtest de vyn premium es lo que es
Cuando construimos vyn premium, la filosofía de backtest era el punto. Queríamos una estrategia que corriera los mismos parámetros de Smart Safety Orders en cada activo, no tuning fino por moneda. Esa restricción fuerza a la lógica a ser robusta. Si nos hubiésemos permitido optimizar distinto para cada par, podríamos haber producido un backtest más bonito y una estrategia en vivo frágil. Elegimos lo contrario.
La ejecución es basada en reversión a la media, escalada por volatilidad, y controlada por tiempo, y corre a través de 3Commas, SignalPipe, Alpaca y Capital.com sin tweaks de parámetros por venue. Todo pasa por el mismo cerebro. Es una decisión deliberada, y es lo opuesto a cómo se construyen la mayoría de estrategias de marketplace.
Si estás construyendo tu propia estrategia y quieres aprender la forma de un motor de señal honesto antes de pagar por nada, block algo flex es la herramienta gratuita que construimos para eso. No hará backtesting por ti, pero te forzará a pensar qué es realmente tu regla antes de testearla.
Las herramientas
Algunas herramientas que realmente hacen backtesting correctamente, en orden aproximado de cuánto trabajo requieren.
- Strategy Tester de TradingView. Bien para una primera mirada. Limitado a lo que Pine Script puede expresar. No hace walk-forward nativamente. Fácil engañarte.
- Freqtrade. Motor de backtesting sólido, soporta walk-forward vía plugins, corre en Python. Requiere que escribas estrategias como código. La herramienta correcta si eres serio.
- Backtrader, Zipline, vectorbt. Librerías Python con varias fortalezas. vectorbt es muy rápido para parameter sweeps. Backtrader es más event-driven. Zipline es viejo pero bien probado en batalla.
- Pipelines personalizados. Lo que la mayoría de equipos cuant realmente construyen. Para cualquier cosa verdaderamente seria, acabas escribiendo el tuyo porque ningún framework encaja con tus requisitos exactos.
Lo que no debes hacer es confiar en el botón de backtest de un marketplace de bots sin entender qué está haciendo. Algunos incluyen comisiones, algunos no. Algunos manejan slippage, algunos no. Asume lo peor y verifica.
FAQ
¿Cuál es un win rate realista para un buen bot de trading? Depende del tipo de estrategia. Trend-following: a menudo 30 to 45% con gran asimetría. Reversión a la media: a menudo 55 to 70%. Grid bots: pueden ser 90%+ pero con perdedores catastróficos raros. Cualquier bot que venda un win rate estable de 85%+ con risk-reward simétrico casi con seguridad esconde algo.
¿Qué es análisis walk-forward en una frase? Reentrenar los parámetros de la estrategia sobre una ventana móvil de datos históricos, luego testear sin tocar en la siguiente ventana, y repetir, de forma que cada resultado de test sea verdadero out-of-sample.
¿Qué tan largo debe cubrir un backtest? Como mínimo, un ciclo completo bull-bear. Para crypto, eso significa al menos 2017 hasta hoy, o cualquier sub-período que incluya tanto un rally significativo como un drawdown significativo. Dos años de mercado unidireccional no son backtest.
¿Debo confiar en backtests que no incluyen comisiones? No. El trading en vivo no es libre de comisiones. Cualquier resultado sin comisiones está sobrestimado, a menudo por un múltiplo grande para estrategias de alta rotación.
¿Cómo sé si mis parámetros están sobreajustados? Téstalos en datos que no usaste para seleccionarlos. Si el performance out-of-sample es significativamente peor que el in-sample, estás sobreajustado. Si es aproximadamente el mismo, probablemente tienes una ventaja real.
¿Puedo simplemente pagar por una estrategia "probada" en vez de testear yo mismo? Puedes, pero aún necesitas entender la metodología. Incluso una estrategia legítimamente buena, como la detrás de vyn premium, rendirá peor si no entiendes su comportamiento a través de distintos regímenes. El backtest no es solo evidencia. Es educación.
¿Por qué el 99% de backtests perfectos fallan en vivo? Porque fueron optimizados, consciente o accidentalmente, sobre los datos específicos en los que fueron testeados. El ruido se hornea como si fuera señal. Los datos en vivo tienen ruido fresco al que los viejos parámetros no se ajustan. Drawdown inmediato, esperanza después, recuperación raramente.
Aviso de riesgo
El backtesting es una herramienta, no una garantía. El performance histórico no predice resultados futuros, incluso cuando se mide correctamente. Todo trading implica riesgo sustancial de pérdida. Este artículo no es asesoramiento financiero.
El veredicto honesto
Un backtest es una simulación. Es tan bueno como las suposiciones horneadas en él, y la mayoría de suposiciones en la mayoría de backtests públicos están equivocadas. La postura mental correcta es escéptica por defecto. Tu propio backtest probablemente te está mintiendo en al menos una de las cinco formas de arriba. El backtest de alguien más probablemente miente en más de una.
La única defensa es metodología. Múltiples activos, mismos parámetros, split train/test, walk-forward, costos realistas, descomposición por régimen, trade count significativo. Si tus propios tests no marcan esas casillas, arréglalo antes de poner capital detrás de la estrategia. Si el pitch de alguien más no marca esas casillas, aléjate, hay muchas opciones legítimas y casi ninguna razón para pagar por un pitch que no puede sobrevivir escrutinio básico.
Las estrategias que sobreviven este proceso normalmente son menos emocionantes que el copy de marketing a su alrededor. Tienen win rates moderados. Tienen drawdowns reales. Generan retornos aburridos y compuestos a través de regímenes. Esa aburrición es la feature, no el bug. Los backtests vendibles normalmente son los que mueren primero. Los backtests sobrevivibles son los que realmente puedes correr con dinero real durante años. Esa es la vara, y es una vara mucho más alta que la que la industria quiere que creas.
Timo de blockresearch.ai
Fundador de Block Research. Opera sistemas de trading automatizado con capital propio y de la empresa desde 2017, tres ciclos cripto completos de ejecución en vivo. Autor de Smart Safety Orders (DCA adaptativo a la volatilidad), las entradas de reversión a la media dentro de vyn premium y la invariante de respuesta webhook de 3 segundos dentro de SignalPipe. Publicamos las mismas estrategias que operamos con nuestro propio dinero.