Lo que un drawdown del 99,99% me enseñó sobre construir bots de trading
El primer bot de trading que llegué a poner en producción en una cuenta real perdió casi todo. Win rate: 25%. Max drawdown: 99,99%. No se vino abajo porque el mercado fuera cruel. Se vino abajo porque lo construí como la mayoría de la gente construye su primer bot: como un prototype sostenido únicamente por mis propias opiniones.
Esta es la historia de por qué eliminé cada regla manual del sistema que vino después, y lo que esa decisión me enseñó sobre dónde encaja realmente el juicio humano dentro de una estrategia automatizada.
Datos ilustrativos, no de rendimiento real. El desplome no fue una sola operación mala: fueron mil decisiones pequeñas, seguras y equivocadas.
El error cómodo
Cuando empiezas, las reglas hard-codeadas dan sensación de control. Stop-loss al 3%. Take-profit en algún número redondo. Position sizing a partir de una fórmula que leíste en una entrada de blog. Cada regla parece prudente vista de forma aislada. Juntas forman una máquina frágil que nunca ha visto la situación a la que está a punto de enfrentarse.
Mi primer sistema estaba lleno de estas reglas. Además hacía sus cálculos numéricos en la CPU, dentro de bucles, tal y como escribirías un script de usar y tirar. Nada de eso importaba mientras hacía backtest sobre datos limpios y amables. Todo eso importó en el momento en que aparecieron las condiciones reales: las fees, el slippage, la posibilidad de liquidation. Un stop-loss fijo del 3% que sobre el papel parece disciplina se convierte en una máquina que vende ante cualquier pizca de ruido y nunca deja respirar a una tesis. El drawdown no fue una operación catastrófica. Fueron mil decisiones pequeñas, seguras y equivocadas.
La lección incómoda
La lección no fue “ajusta mejor el stop-loss”. Fue que yo era el cuello de botella. Cada umbral hard-codeado era yo congelando una suposición dentro del sistema y obligando al futuro a cumplirla.
Así que en el siguiente sistema establecí una regla sobre las reglas: dentro de la parte del modelo que de verdad aprende, no hay ninguna regla manual. Ni stop-loss, ni take-profit, ni position sizing, ni leverage. Si una decisión afecta a cómo actúa la estrategia, el modelo tiene que aprenderla a partir de las consecuencias de actuar, y no heredarla de mi intuición. (La seguridad a nivel de sistema —topes de exposición, un kill-switch— es una capa aparte, y se queda. Lo que desaparece es que sea yo quien escriba la operación a mano.)
Suena extremo, y lo es. También impone una disciplina que aborda de forma silenciosa varios fallos habituales del principiante:
- Nada de prototypes. Un prototype es la promesa de arreglarlo más tarde, y “más tarde” es donde viven los drawdowns del 99,99%. Todo se escribe para que sea ya lo definitivo.
- Nada de magic numbers. Si un valor no se aprende, vive en un archivo de config donde puedo verlo, versionarlo y justificarlo; nunca enterrado en el código como un número cuya razón de ser acabaré olvidando.
- El backtest tiene que doler. Las fees, el slippage y la liquidation se modelan, porque un backtest que no puede perder dinero del mismo modo que lo puede perder la cuenta real no es más que una simulación halagadora.
Dónde siguen encajando los humanos
Eliminar las reglas manuales no elimina al humano. Lo reubica. Ya no decido qué hace el modelo en un momento dado. Decido qué significa “bueno”: el objective function por el que se le recompensa, las condiciones bajo las que entrena, los costes que debe respetar. Diseñar ese objetivo es la parte más humana de todo el empeño, y equivocarse en ella es mucho más peligroso que cualquier operación mala aislada, porque el modelo optimizará exactamente lo que le pediste, no lo que querías decir.
Ese es el cambio que haría siempre: dejar de fingir que puedo escribir a mano la decisión para cada estado futuro y, en su lugar, dedicar ese esfuerzo a definir el mundo en el que el sistema aprende.
La conclusión
Un drawdown del 99,99% es un profesor caro, pero claro. El bot no fracasó porque le faltaran reglas. Fracasó porque tenía mis reglas: rígidas, sin contrastar con la realidad y que sustituían al aprendizaje en lugar de habilitarlo.
Si estás construyendo tu primer sistema, lo más útil que puedes eliminar es tu propia certeza.
Esta es la parte 1 de un registro anónimo y en curso sobre la construcción de un sistema de trading con reinforcement learning (RL). Trata sobre el método y los errores, no sobre señales: nada de lo aquí escrito es asesoramiento de inversión y no se comparte ningún detalle de la estrategia.