Estrategia Tomorrow’s Trend

Hace un año Joe Krutsinger nos sorprendió a todos anunciando que se retiraba tras más de 40 años de carrera en la que ha escrito numerosos libros, trabajando de consultor y mentor y también como CTA. Sirva este artículo de pequeño homenaje.

Tomorrow’s Trend es una estrategia que en su versión original tiene ratios de Mean Reversion o Anti-Tendencial, pero utiliza elementos típicamente tendenciales como una media móvil y además de forma convencional como veremos más adelante. Opera a favor de la tendencia, pero se incorpora tras una leve corrección. Las salidas son lo que provoca sobre todo que el sistema arroje ratios del tipo mean reversión, ya que solo puede salir por stop los y por tiempo. Podríamos decir que es un sistema “mixto” pero esto hoy en día es muy habitual, no siempre la clasificación es sencilla, por eso los ratios del sistema no mienten. La verdad es que es un sistema que fácilmente se podría comportar como un tendencial puro con pocos cambios. El sistema se expuso en el futuro del E-mini S&P 500 y en barras de 60 minutos, pero se podrían considerar otros/as futuros y/o acciones y otros timeframes.

El sistema

La estrategia puede operar en ambos lados del mercado. Para el lado largo utiliza un sencillo patrón correctivo de corto plazo para incorporarse a favor de la tendencia principal. Simplemente compara el cierre de la barra actual con el cierre de hace 2 barras.

La tendencia principal la mide mediante una media móvil simple de 10 periodos, pero desplazada una barra hacia adelante. Para abrir largos el sistema también pide que el Cierre sea superior a la media de 10. Desplazar las medias es una forma de usar la media de una barra anterior. Personalmente es una técnica que no me gusta demasiado pero no es decisiva en el sistema, se podría prescindir perfectamente de ella y el sistema cambiaría poco.

Cuando estas dos condiciones son “true”, se lanza una orden de stop para entrar en largo en la apertura de la siguiente barra más una cantidad que depende del rango de la barra anterior. Esto actúa de confirmación de que efectivamente la tendencia principal se está reanudando ya que solo se ejecutará el stop si el precio se mueve en favor de la tendencia.

Las reglas para el lado corto son idénticas excepto para la cantidad que restamos (en el lado largo la añadimos) al rango de la barra anterior. Después lo veremos claramente en el código del sistema.

Las salidas son realmente simples. Un stop monetario fijo y una salida por n barras dentro, concretamente está fijada en 50 barras. Realmente son salidas fácilmente mejorables, pero de eso hablaremos más adelante. Para la exposición del sistema he respetado la versión original.

Veamos la imagen 1, donde se representa la estrategia con un pequeño indicador que hemos creado para mostrar los puntos en que el sistema puede comprar o vender (cuando el setup es “true”) y el nivel al que debe hacerlo.

 

En el recuadro azul vemos la barra en que efectivamente se ejecuta la orden si en la anterior barra se cumplían las condiciones. Abajo, vemos en el cuadro de precios el precio al que se ha ejecutado la orden, 3256.00, y el valor de la variable Up, 3255.95, que guarda el valor al que debe comprar el sistema, calculado mediante el valor Open más el rango de n barras por un multiplicador. Estos valores los va pintando en el gráfico el indicador comentado, en cuadritos azules o rojos (lado largo o lado corto), cuando se cumplen las condiciones para comprar o vender. El trade fue perdedor saliendo por Stop Loss unas barras después.

La imagen 2 muestra el código del sistema original en EasyLanguage. Vemos que el autor definió 6 inputs, que hemos dejado en su valor original. Por supuesto, podrían optimizarse o cambiarse a voluntad. Los inputs son los siguientes:

  • BuyBO (6): Define el multiplicador del rango de la barra que desencadena el setup, que es el valor que añadiremos al precio de apertura como filtro de entrada para los largos.
  • SellBO (27): Define el multiplicador del rango de la barra que desencadena el setup, que es el valor que restaremos al precio de apertura como filtro de entrada de los cortos.
  • Walk (50): Define el número de barras que el trade estará abierto si no salta el stop loss antes.
  • Trend (10): Define el periodo de la media móvil simple.
  • PositionBasis (false): Define si el stop se calculará por acción o contrato o por toda la posición. False = por acción o contrato.
  • Amount (1330): Valor del stop loss en unidades monetarias.

 

Resultados

El sistema lo hemos probado en el futuro del E-mini S&P 500, con una cuenta de 30.000$, unas comisiones de 2.5$ por contrato y 5$ de slippage, durante los últimos 10 años.

Aunque no sabemos cómo obtuvo el autor los inputs, es más que probable que lo hiciera mediante optimización. Dado que el sistema se publicó en abril de 2016, como mínimo desde esta fecha hasta la actualidad podemos considerar a los resultados Out Of Sample. De hecho, probablemente se optimizó antes de ese periodo, pero consideramos que se hizo en abril de 2016.

La imagen 3 muestra el Performance Report de la estrategia en los últimos 10 años y la imagen 4 la curva de resultados detallada.

 

Una muestra de más de 1000 trades refuerza la significación estadística y un sistema que opera en ambos lados del mercado con Profit factor positivo y concordante en ambos lados, aunque la muestra del lado largo es muy superior, en parte por el mercado vivido en estos 10 años y en parte porque el filtro usado en el lado corto para entrar es mucho más exigente, algo frecuente en los índices de acciones para evitar entrar en las correcciones menores. En la imagen 4 podemos ver la curva de resultados del sistema. La línea vertical roja separa el periodo In Sample del periodo Out of Sample.

 

 

Los resultados tienen exactamente el mismo Profit factor en ambos periodos. No ocurre así en el lado corto, donde obtiene resultados casi nulos en el periodo OOS, con un profit factor de 1.02, restando consistencia a ese lado del mercado. Obviamente, no es nada fácil construir sistemas robustos en índices bursátiles en el lado corto, especialmente en los norteamericanos, su sesgo alcista es evidente.

 

Conclusiones

El sistema planteado utiliza para operar una pauta muy utilizada, incorporare a la tendencia principal tras una pequeña corrección. Lo hace mediante una pauta muy simple y del mismo modo valora la tendencia principal, con una media simple. Algo más especial es el uso del filtro de entrada, ya que usa la apertura de la vela de entrada más el rango de la vela anterior con un multiplicador fijo que no depende de la volatilidad, lo mismo que el stop loss, que es fijo. El uso del precio open de la barra de entrada es una técnica avanzada de EasyLanguage que en otros lenguajes requiere bastante más programación.

La simplicidad en los sistemas no es un defecto, más bien al contrario, una virtud a la hora de diseñar sistemas. Cuanto más simple es la idea más probable es que sea robusta y perdurable. Es cierto que el concepto simplicidad puede tener una cara negativa. Un sistema debe ser simple pero lo suficientemente complejo para separar la señal del ruido del mercado. Al desarrollar sistemas siempre nos movemos entre dos fuerzas contrapuestas que tratamos de equilibrar. Rentabilidad – Riesgo. Complejidad – Simplicidad. Tendencial – Mean Reversion. Histórico largo para aumentar la representatividad de la muestra – Histórico más corto para que el sistema se adapte al mercado reciente. Muchos trades – Pocos trades. Robustez – Sobre Optimización.

El sistema parece sólido, pero sí pienso que deberíamos trabajarlo un poco para adaptarlo a nuestro estilo. Planteo algunas preguntas que pueden ayudarnos a ello. ¿Podemos buscar otras formas de valorar si el mercado ha corregido lo suficiente? ¿Qué indicador es casi idéntico a la regla usada en el sistema: C < C[2]? Salir por tiempo suele ser una buena idea, pero salir por el mismo número de barras del lado largo que del corto a priori no tiene sentido en un índice bursátil ya que los ciclos son muy distintos. Ya saben, bajamos en ascensor y subimos por la escalera. Ahora bien, aumentar los inputs supone un reto hacia la sobre optimización y robustez. Debemos vigilar los grados de libertad. ¿Salir por stop loss monetario es lo más eficiente? Un trailing es tentador porque se aprecia claramente en el chart como en ocasiones le devolvemos mucho dinero al mercado. ¿O quizá mejor un profit fijo como el stop loss? Está claro que uno u otro tiene mucho sentido, pero una vez más, cuidado con la robustez. En definitiva, la idea que subyace al sistema es una buena base para trabajarla y construir nuestro propio sistema.

Sobre el Autor
Sergi Sánchez es gestor de Esfera Sersan Algorithmic F.I. y Director Ejecutivo de Sersan Sistemas. Experto en trading algorítmico con años de experiencia en el desarrollo, testeo, evaluación y, sobre todo, en la gestión cuantitativa con sistemas. Podéis contactarle en sersan[a]sersansistemas.com.

 

Artículo publicado en el número de octubre de 2020 de la revista TRADERS’. Regístrate en www.traders-mag.es de manera completamente gratuita para acceder a más artículos como este.

 

 

 

 

COMPARTIR EN: