Síguenos

Tecnología

¿Por qué el trailing de Freqtrade no funciona? Posibles causas

Publicado

el

chica asiatica trabajando con freqtrade en el pc

El trailing en Freqtrade suele fallar por configuración y prioridades de salida; entenderlo bien te ayuda a proteger y hacer crecer tu capital.

El motivo más habitual es sencillo y, a la vez, traicionero: el stop dinámico solo empieza a moverse cuando el precio supera un umbral de activación y, si no llega, no hay “arrastre” que valga. A esto se suma que otras reglas de salida —ROI, señal de estrategia, stop fijo— pueden ejecutarse antes de que el trailing entre en juego. Resultado: la operación se cierra por otro criterio y da la sensación de que “no ha funcionado”. El bot no se equivoca; cumple lo que le pedimos con una literalidad quirúrgica, que a veces choca con nuestras expectativas.

La segunda causa recurrente es de pura configuración: parámetros mal expresados o mal calibrados. En Freqtrade los porcentajes se escriben en ratio decimal (0,02 es 2%), los umbrales de activación suelen ser demasiado ambiciosos para la volatilidad real del par y, cuando se mezcla trailing con un stoploss personalizado, ambas lógicas pueden pisarse. Si encima en backtesting trabajas con una resolución temporal distinta a la que usas en vivo, verás comportamientos diferentes del stop. Nada de magia negra: son reglas claras que conviene conocer y ajustar con calma.

Qué hace realmente el trailing en Freqtrade

Conviene bajar a tierra conceptos. El trailing stop de Freqtrade parte de un stop loss inicial y, si así lo indicas, lo va subiendo a medida que el precio avanza a favor. No retrocede nunca: un stop que ya subió no vuelve a bajar para “dar aire”. Esa irreversibilidad protege capital y limpia la operativa de impulsos.

Las cuatro piezas que mandan son trailing_stop, trailing_stop_positive, trailing_stop_positive_offset y trailing_only_offset_is_reached. Activar el primero es condición necesaria; sin eso, no hay persecución posible. El positive_offset marca desde qué ganancia latente el trailing puede empezar a funcionar; el positive define a qué distancia del precio se colocará ese stop arrastrado una vez arrancado. Si trailing_only_offset_is_reached está activo, el bot no moverá nada hasta que la operación supere ese umbral de activación. Resultado: si pides un 3% de colchón en un par que rara vez camina más de 1,5% sin retroceso, el stop se quedará donde comenzó. Es lo esperable.

Otro detalle que pasa desapercibido: el orden de prioridades en las salidas. Freqtrade puede cerrar por ROI, por señal de estrategia o por stop (fijo o trailing). Quien dispare primero, manda. Si tu minimal_roi exige salir en cuanto el beneficio se desinfla después de X minutos, muchas operaciones no darán tiempo al trailing para activarse. Y si usas use_exit_signal: true con una señal agresiva, lo mismo: el bot obedecerá la señal antes de subir el stop. Por eso tantos “no funciona” son, en realidad, “funciona distinto a lo que yo esperaba”.

Los fallos más comunes (y cómo se manifiestan)

No está activado. Parece de chiste, pero sucede. Si la estrategia o el config.json no tienen trailing_stop: true, verás el stop inicial y nada más. En los logs de una operación viva debería aparecer la traza que indica que el stop sube; si no aparece, ya sabes por dónde empezar.

Umbral de arranque fuera de la realidad. Pedir que el trailing arranque demasiado arriba es condenarlo a no moverse jamás en la mayoría de trades. Hay pares y marcos temporales que recorren un 0,8% de media antes de sacudirse. Si tu trailing_stop_positive_offset está en 2% o 3% “por si acaso”, olvídate: el precio no llegará con la regularidad que necesitas. Es preferible objetivos alcanzables que dejan trabajar al stop y convierten ganadores tibios en ganadores modestos pero frecuentes.

Conflicto con ROI o salidas por señal. Un minimal_roi con escalones muy cercanos al inicio recorta muchas operaciones justo cuando el trailing estaba a punto de entrar. ¿Te interesa que el stop arrastre beneficios? Dale espacio: retrasa el primer escalón de ROI o redúcelo. Y revisa la agresividad de tus señales de salida: ciertas lógicas momentum sacan del mercado en cuanto el impulso se enfría un poco, y eso puede adelantar cualquier trailing.

Parámetros en formato equivocado. Freqtrade entiende ratios decimales, no porcentajes enteros. Es fácil escribir 2 pensando en “2%” cuando en realidad son 200%. El resultado de ese despiste es un offset imposible y un stop que parece muerto. La cura es prosaica: repasar números, con un café y sin prisa.

Mezclar trailing con use_custom_stoploss. Si tu estrategia calcula un stop dinámico propio y, a la vez, activas el trailing estándar, es probable que ambas lógicas compitan. Una intenta mover el tope por una regla y la otra por otra. Hay estrategias que lo integran bien, pero, salvo que sepas exactamente lo que haces, lo sensato es elegir: o callback personalizado o trailing nativo.

Esperar el mismo comportamiento en backtesting y en vivo. El simulador trabaja con velas, no con ticks reales, y usa reglas conservadoras para no “sobrepasar” mínimos o máximos alcanzables. En vivo, si el activo acelera, el bot puede subir el stop varias veces dentro de una vela de tu timeframe; en backtest eso puede quedar suavizado. No es un error del motor, es cómo está diseñado para no venderte resultados inflados.

Cómo configurarlo bien desde el principio

La receta que funciona no es un “preset mágico”, sino números coherentes con la volatilidad del par y del marco temporal. Para spot, una base razonable suele ser:

stoploss = -0.05
trailing_stop = True
trailing_stop_positive = 0.01
trailing_stop_positive_offset = 0.02
trailing_only_offset_is_reached = True

Traducido a castellano: arrancas con un stop del –5%; el trailing no se activa hasta que la operación va +2%; en cuanto arranca, el stop persigue a 1% de distancia. Lo importante no son esos números, sino lo que implican. Pones un colchón de activación por encima de la distancia de seguimiento, de modo que el primer movimiento del stop ya te sitúe en verde o muy cerca del punto de equilibrio. Si cambias a un timeframe más corto, donde el ruido es mayor, ese 1% quizá quede demasiado ceñido: afloja a 1,3% o 1,5% y vuelve a medir.

Una pauta práctica: mide el rango medio real del par en el timeframe que operas durante varias semanas. Si EUR/USDT en 15 minutos suele moverse 0,7% en los tramos en los que entras, poner un offset de 2% es pedir peras al olmo. Sitúa el offset de activación en un valor que el par alcance con regularidad y el positve por debajo de ese umbral para que, una vez en marcha, el stop bloquee algo más que migas.

Ejemplo numérico paso a paso

Imagina una entrada en 10,00. Configuras trailing_stop_positive_offset = 0.02 y trailing_stop_positive = 0.01, con trailing_only_offset_is_reached: true.

El precio sube a 10,15 (+1,5%). Nada se mueve aún. El trailing está “a la espera”. Cuando alcanza 10,20 (+2%), se activa: a partir de aquí el stop se coloca a 1% por debajo del último máximo. Si el precio marca 10,30, el stop sube hasta 10,197 (redondeando, 10,20). Si el precio respira a 10,25, el stop no baja; se queda donde está. Si el activo luego acelera a 10,50, el stop acompaña —10,395 aprox.—. Cuando la racha termina y el precio retrocede hasta pisar el stop, sales con ganancia. ¿Qué habría pasado con un positive_offset = 0.03? Posiblemente nada: muchas operaciones no alcanzarán ese +3% y cerrarás por ROI o por señal antes de que el trailing vea la luz.

Por qué backtesting y ejecución real no coinciden

Un simulador no puede reconstruir el baile de cada tick dentro de una vela si solo tiene el OHLC. Para evitar sesgos, el motor de backtesting limita cómo y cuándo “sube” el stop dentro de la vela, asumiendo que no puedes colocar el stop por encima de ciertos niveles que, durante esa vela, no habrían sido ejecutables. Es prudente, sí, pero diferente a lo que ves en vivo, donde cada actualización del precio puede desencadenar una recolocación del stop.

¿Qué hacer para no engañarte? Dos ideas sencillas y eficaces. Una: usa datos a mayor resolución para backtestear, aunque tus señales estén definidas en un timeframe superior. Puedes mantener las velas de 1 hora como informativas y simular la ejecución con datos de 5 minutos, por ejemplo, para ver cuántas veces habría subido el trailing dentro de esa hora. Dos: compara métricas sensatas, no solo el profit neto. Cuenta cuántas operaciones activaron el trailing, cuál fue el beneficio bloqueado medio y cuántas salidas por ROI te “robaron” el despliegue del trailing. Con eso podrás decidir si merece la pena retrasar el ROI o ajustar offsets.

Órdenes en el exchange y límites prácticos

En mercados spot, cuando activas stoploss_on_exchange, Freqtrade coloca una orden de stop en el exchange y la va reemplazando para perseguir el precio. No es un trailing “nativo” del broker en la mayoría de plataformas, sino una emulación que consiste en cancelar y recrear la orden condicionada cada cierto tiempo. Aquí manda otro parámetro: stoploss_on_exchange_interval, el intervalo con el que el bot actualiza la orden.

Si ese intervalo es muy largo, tendrás la sensación de que el stop “no se mueve”. No es que el trailing esté desactivado: es que has decidido actualizarlo, por ejemplo, cada 30 segundos, y en un activo que acelera, medio minuto da para mucho. Si lo haces demasiado corto, te arriesgas a golpear los límites de la API del exchange y a generar un tráfico innecesario de cancelaciones y recreaciones. La solución pasa por calibrar ese intervalo al ritmo del activo y a las cuotas de cada plataforma.

A esto se suma la variedad de tipos de orden disponibles. Hay exchanges que aceptan stop-market; otros, stop-limit; algunos imponen distancias mínimas respecto al precio actual. Si tu configuración solicita un tipo no soportado, Freqtrade puede aplicar una salida de emergencia o dejar el stop en local, sin poder materializarlo en el libro de órdenes. Conviene verificar qué admite tu exchange y, si hace falta, adaptar la táctica: en ciertos mercados muy volátiles, un stop-market bien parametrizado evita que un gap deje tu orden sin ejecutar.

Por último, ten en mente que las comisiones y los deslizamientos reales juegan su papel. Un trailing demasiado apretado en un par con spread amplio acabará disparándose por ruido y dejándote con una colección de salidas pobres. En cambio, un trailing más holgado, aunque “pierda” parte del tramo final, puede mejorar tu curva de capital al reducir el número de recortes prematuros. Aquí, como casi siempre, mide antes de opinar.

Método de diagnóstico y mejora continua

Cuando una operación “no subió” el stop y sientes que debería haberlo hecho, evita las suposiciones y reconstruye el caso. Es un proceso muy corto y clarificador.

Primero, anota cuatro datos: precio de entrada, beneficio máximo alcanzado, el offset de activación que pediste y la distancia de seguimiento. Si ese beneficio máximo no superó el positive_offset, el trailing no tenía permiso para arrancar. No hay fallo.

Segundo, mira el motivo de salida. Si fue por ROI o por señal de estrategia, decide si quieres que el trailing tenga prioridad real en tu sistema. Traducido a decisiones concretas: retrasa el primer escalón de ROI, desactiva temporalmente la salida por señal o reduce el positive_offset para dar margen.

Tercero, revisa los logs de la operación, ya en nivel informativo o con más detalle: deberías ver mensajes del tipo “raise stoploss” o equivalentes cada vez que el bot intenta subirlo. Si no aparecen, vuelve al principio: ¿estaba trailing_stop en true? ¿había una función use_custom_stoploss que mandó por encima? ¿hubo un formato mal puesto (0,02 vs 2) que dejó todo fuera de juego?

Cuarto, si usas stoploss_on_exchange, comprueba dos cosas: que el exchange soporta el tipo de orden elegido y que tu intervalo de actualización no es tan largo que parezca inerte. Si el intercambio rechaza tu orden de stop por reglas internas, verás mensajes claros y, a veces, una salida de emergencia. Ajusta y repite.

Quinto, cierra el círculo con un backtest reproducible. Ejecuta un período de prueba con los mismos parámetros y, si puedes, con datos a mayor resolución para simular mejor el arrastre. No te quedes en el resultado neto: mide cuántas veces arrancó el trailing, cuántos pips o puntos pudo asegurar, cuántas salidas por ROI interfirieron y cuál es el drawdown comparado con un stop fijo. Esas métricas te dicen más de la salud de tu sistema que un único “no funcionó”.

Ajustes finos que marcan la diferencia

Hay tres decisiones que suelen distinguir un trailing útil de un adorno.

La primera es elegir un offset de activación alcanzable por la estructura del mercado que operas. Si haces swing en marcos amplios, los movimientos tienden a ser más delgados pero sostenidos; en intradía, en cambio, verás ráfagas cortas con retrocesos bruscos. Ajusta el trailing_stop_positive_offset al 75%–85% del rango medio que explotan tus entradas. Así, el trailing arranca a menudo sin entrar en cada respingo.

La segunda es situar la distancia de seguimiento (trailing_stop_positive) lo suficientemente cerca como para proteger, pero no tanto como para que el ruido te eche de la posición. Una regla de oro: que el primer stop subido, una vez activado, quede por encima del precio de entrada o muy cercano. Psicológicamente ayuda y, en términos de distribución de resultados, convierte buenas ideas en trades rentables, incluso cuando el activo no regala un gran tramo.

La tercera es definir prioridades claras en la salida. Si quieres que el trailing sea protagonista, relaja el ROI inicial o apágalo durante un período de prueba y compara. Si la estrategia depende de una señal de salida potente (por ejemplo, un cruce de medias lento que evita quedarte atrapado en giros estructurales), acepta que el trailing será secundario y úsalo como red de seguridad: activación algo más alta y seguimiento algo más holgado, para que solo entre cuando de verdad la operación ha respirado a favor.

Un apunte más, casi de artesanía: no mezcles trailing con callbacks personalizados “a ver qué pasa”. Si quieres programar tu propia función de stop, hazlo, pero desactiva el trailing estándar y define las reglas de movimiento dentro de esa función. Evitarás decisiones contradictorias y tendrás el control completo del comportamiento.

Cuando el stop se mueve, la estrategia respira

La mayoría de veces, el “por que el trailing de freqtrade no funciona” es un choque entre parámetros y realidad de mercado. Si la activación está lejos, si el ROI se dispara antes o si el exchange limita cómo actualizas órdenes, el stop dinámico parece dormido. No lo está; espera su señal. Y cuando la tiene, sube sin dudas y bloquea parte del camino recorrido. Ahí está su valor: no en cazar máximos, sino en proteger de forma metódica lo que el precio te ha dado.

La clave práctica, esa que separa un sistema caprichoso de uno profesional, está en medir y ajustar con honestidad. Usa ratios decimales, revisa logs, calibra offsets con el rango real de tus activos, define prioridades de salida sin contradicciones y verifica que el exchange soporta lo que le pides. Con esas piezas encajadas, el trailing deja de ser un enigma y se convierte en una herramienta disciplinada que, con el tiempo, mejora la curva de capital más por lo que evita perder que por los tramos que atrapa.

No hay atajos milagrosos, ni hace falta ese misticismo. Hay método, oficio y una pizca de paciencia. A veces, el precio no da para más y el trailing no se mueve. Otras, respira, acelera y el stop sube a tu lado. Eso es exactamente lo que debe pasar. Y cuando ocurre con regularidad, la estrategia —sí, se nota— respira mejor.


🔎​ Contenido Verificado ✔️

Este artículo ha sido redactado basándose en información procedente de fuentes oficiales y confiables, garantizando su precisión y actualidad. Fuentes consultadas: Rankia, Cointelegraph en Español, Estrategias de Inversión, Capital Radio.

Periodista con más de 20 años de experiencia, comprometido con la creación de contenidos de calidad y alto valor informativo. Su trabajo se basa en el rigor, la veracidad y el uso de fuentes siempre fiables y contrastadas.

Lo más leído