ESTRATEGIAS DE TRADING AUTOMATIZADAS

Hola de nuevo. Esta semana te voy a hablar de las estrategias de trading automatizadas. Supongo que mas de una vez habrás oído hablar de ellas e incluso las habrás utilizado.

A pesar de que la mayoría de la gente te va a contar la misma experiencia respecto a este tipo de estrategias, y es que no vas a ganar un euro, la realidad es que es un mundo apasionante.

Si me preguntas…puedo ganar dinero comprando un expert advisor por la red, poniendolo en una vps y dejandolo estar?…la realidad es que generalmente no. Eso no quiere decir que no puedas encontrar estrategias de trading automatizadas o Expert Advisors ( en el caso de la plataforma MT4) que puedan darte beneficios durante un determinado tiempo pero es difícil que pueda hacerlo de manera sostenida en el tiempo.

Vamos a hablar de este tipo de estrategias.

 

VENTAJAS DE LAS ESTRATEGIAS DE TRADING AUTOMATIZADAS

Este tipo de trading tiene una serie de ventajas que te detallo a continuación:

-Tienen absoluta autonomía respecto al trader. Esto quiere decir que estés ó no delante del ordenador, las estrategias se van a aplicar, con lo que no hay pérdida de oportunidades e incluso la estrategia será aplicada mientras duermes.

-Tienen una serie de reglas fijas y perfectamente definidas, exactamente igual que deberías tenerlas tú aunque hagas trading discrecional, pero el sistema automático va a ejecutar la estrategia con las normas exactas previamente definidas.

No hay lugar a errores, en los lotajes, en si se cumple o no una regla…ese tipo de dudas no existen en las estrategias de trading automatizadas.

Facilidad para probar las estrategias en períodos largos de tiempo a gran velocidad. Esto en el trading manual no existe y te llevará mucho tiempo probar una simple estrategia para finalmente quizá tener que desecharla. El proceso de manera manual es infinitamente más largo y engorroso.

 

DESVENTAJAS DE LAS ESTRATEGIAS DE TRADING AUTOMATIZADAS

-La principal que debes tratar de evitar en la medida de lo posible es la SOBREOPTIMIZACION o CURVE FITTING. En qué consiste?

Cuando tenemos una estrategia definida que se basa en unos indicadores, comenzamos el proceso de optimización de los parámetros que mejor se adaptan a las condiciones de mercado en el período testeado, y es ahí, justo en ese preciso momento, cuando solemos caer en la sobreoptimización.

Probamos la estrategia a lo largo de un período de tiempo y definimos los parámetros que mejor se adaptan a ese período. Bua!! somos la leche!! que curva de equity…flipante. Bueno pues esta claro que estas sobreoptimizando porque los parámetros que estas definiendo para la estrategia van “de cine” para ese período pero normalmente suelen ir “de culo” cuando pasas la estrategia con esos mismos parámetros en otro período. Por que? porque se adaptan muy bien (están sobreoptimizados) para el período estudiado pero no para otros períodos fuera de muestra. La realidad es que cuando el sistema empiece a trabajar en vivo es muy probable que las cosas no vayan tan bien como en el período de estudio o directamente irá fatal.

 

La clave es seguir un proceso de optimización en una muestra (In Sample) y después llevar esos parámetros a un período distinto (Out Of Sample) de manera que consigamos que el comportamiento de las estrategias de trading automatizadas sean relativamente buenas en todos los períodos in sample y out of sample. Los parámetros adecuados no serán los mejores del período in sample sino aquellos que hagan que la estrategia se comporte relativamente estable in sample y out of sample.

 

Además es conveniente que después a la estrategia se le someta a un proceso de testeo de la Robustez, es decir que es capaz de tener un buen desempeño a pesar de los cambios que pueda haber en las condiciones de mercado. Esto lo hacemos mediante un test de Montecarlo, generando pequeños cambios en los parámetros de manera aleatoria.

-Otro gran problema que solemos cometer es que cogemos sistemas tipo black box que haya por internet y pretendemos ganar dinero con eso.  Aunque la estrategia sea automatizada debemos saber perfectamente como funciona y en qué consiste. Esa premisa normalmente no suele suceder cuando cogemos sistemas automáticos comerciales.

 

De éste último problema se deriva que deberíamos de ser capaces de generar una estrategia que conozcamos, codificarla y optimizarla. Para codificarla deberíamos tener habilidades de programación o en su defecto deberíamos mandarlo programar a terceros.

 

En éste sentido aunque no estamos hablando de soluciones perfectas y desde luego no completas al 100% quizá para generar tus sistemas automáticos podrías usar programas que sin tener conocimientos de programación te permiten diseñar tus propios expert advisors.

 

En éste sentido te dejo unos cuantos para que investigues por si te puede interesar en algún momento:

1)      XTB Expert Builder. El sistema propio de XTB para construir EAs. Muy sencillo de usar. Pero los desarrollos realizados solo se podrán usar en cuentas de XTB…

2)      Alfatrader. En mi opinión, quizás el mejor de todos los programas “constructores de estrategias por bloques” para MetaTrader. Su versión demo es 100% funcional, aunque solo para cuentas demo. Si se quiere usar para cuentas reales, habrá que comprar la licencia.

3)       Rizm, de Equametrics. Si Alfatrader es (quizás) el mejor programa para desarrollar EAs para MetaTrader, Rizm es (quizás) el mejor para desarrollar estrategias para Interactive Brokers y FXCM. Vía web, con vídeos de explicación y ejemplos, y muy potente. Tiene un precio mensual, y es en inglés. Además, al realizar los backtests vía internet (web), los datos históricos no residen en nuestro ordenador, y no consumiremos más recursos de nuestro ordenador que los del navegador (y la Máquina Virtual de Java). Tiene una versión demo de 2 semanas.

4)      Visual JForex. También tenemos un programa para desarrollar estrategias para JForex. Mi impresión: algo complicado de manejar y poco intuitivo.

5)      Infinidad de otras plataformas: www.forexgenerator.com, www.eacreator.com ,www.strategytune.com … Herramientas web, gratuitas la mayoría, algunas de dudosa eficacia y procedencia. Y su eficacia habría que comprobarla un par de veces.

 

Creo que con esto será suficiente si lo que quieres es irte iniciando…

¿Tienes experiencia con estrategias de trading automatizadas? Comparte tu experiencia en comentarios.

Un saludo y hasta la próxima!!

 

 

 

 

 

 

 

 

4 comentarios

  • Jose M

    Estoy empezando en el mundo del trading algorítmico y me parece muy interesante los artículos sobre ello que estáis escribiendo.

    Tengo un par de dudas que seguro que me vais a saber resolver perfectamente, que os enumero:

    1) Para solventar el problema de los periodos in sample y out of sample, ¿Cómo recomendais hacer la optimización?

    Se me ocurre, por ejemplo, realizar la optimización en el periodo in sample del 2006 al 2010.
    ¿Y ahora, cual es la mejor forma de comprobar que de ahí en adelante funciona igual, o poco peor, para asegurar que no está sobreoptimizado en ese periodo? ¿Ir haciendo otras optimizaciones desde el 2010…pero exactamente como, ¿Cada dos años? ¿Desde el 2010 hasta el día actual y listo?

    2) El test de Montecarlo , ¿Se realizaría una vez tienes ya el sistema ya con todas las optimizaciones realizadas, no?

    Muchas gracias. Son dos preguntas que veo cruciales para realizar una buena optimización.

  • Aitor

    Hola Jose…

    Vamos a ver…yo te aconsejo que la proporción del período In sample respecto al período Out of sample sea como de 4 a 2.. Es decir si quieres hacer un estudio de 6 años yo cogería 4 años in sample y 2 años out of sample.
    Por ejemplo del 2010,2011,2012 y 2013 contra 2014 y 2015 (lo que va de 2016 por ejemplo). Es más ó menos lo que tu dices.

    Lo ideal es que el sistema automático sea estupendisimo a lo largo de 15 años, ya sabes por pedir que no quede pero me apuesto un ojo de la cara a que no lo encuentras. Es muy muy, repito muy muy complicado encontrar sistema robustos a lo largo de muchos muchos años. Simplemente un sistema que se comporte bien desde 2010 hasta hoy es para tenerlo en cuenta y en mi opinión como para llevarlo a testear a real (primero con poca pasta, claro).

    El proceso es el siguiente:
    Coges el sistema y lo pasas in sample. Te dará ahi ahi. Si entras en un proceso de optimización a través de tu MT4 puedes llegar a sacar unos parámetros que realmente hagan que se comporte muy bien en ese período In sample. Ya te digo que si los sacas muy buenos para el período In sample estoy casi seguro que al llevarlo al período de datos “desconocidos” (out of sample) el resultado va a ser desalentador…por que??? porque si esos parámetros te dan muy bien In sample es que efectivamente estas sobreoptimizando y el resultado que sacarás para el período out of sample será bastante malo.

    Tu objetivo es que el resultado de TODO el período de estudio (los 6 años) sea ACEPTABLE-BUENO. A lo que te voy es a que no se trata de decir lo bien que lo hubiera hecho los primeros 4 años, si los siguientes 2 se carga todo el beneficio, al final no tendría sentido.

    Optimiza el período In sample y sacas unos sets que vayan bien. Despues puedes optimizar el período out of sample. De esa optimización sacarás otros juegos de parámetros.

    Despúes cruza los sets de uno y otro período. Si tienes alguno muy parecido has dado en el clavo. Si son muy muy diferentes, ya te digo que dificlmente van a pasar el test de robustez en el tiempo. El sistema no va a ser estable a lo largo de los años. Deberas buscar un set o juego de parámetros ” de compromiso” que equilibre un poco los períodos in y out of sample.

    En cuanto al test de Montecarlo yo lo haría sobre el set final y parea todo el período de estudio , es decir los 6 años.

    Un saludo y espero haberte sido de ayuda!!

  • Jose M

    Buenas tardes,

    Muchísimas gracias Aitor,

    Me resulta de gran ayuda tu comentario, muy completo.

    Lo que me surge de duda es: Imaginemos que quiero hacer un backtest desde 2005. ¿Es mejor coger como periodo in sample los periodos 2005-2008, y el resto ir haciéndolo de 2 años en 2 años como Out of sample e ir viendo coincidencias para ir haciendo un juego de parámetros, o recomendais mejor coger como in sample de 2012 a 2016, y que out of sample sean los años más alejados? ¿De hacerlo de una u otra manera, se pueden esperar resultados diferentes? ¿Alguna recomendación en ese sentido?

    Por cierto, respecto a un buen resultado durante 15 años (y sin ánimo de que tengas que perder la mano jugada jejeje )…¿SI se selecciona un periodo in sample de muchos años, no es probable queset bueno para todos esos años, y al ser de tantos años, se evita la sobreoptimización del corto periodo de tiempo? Es decir, si coges un in sample de 10 años, y un out of sample tan solo de 5 años…es posible que si sea bueno, no?

    Muchas gracias de nuevo Aitor, es de gran ayuda tu aportación.

    Un saludo.

  • Aitor

    Hola Jose.,..

    Yo iria a períodos largos. Si efectivamente coges por ejemplo 4 años in sample y 2 out of sample corres mucho menos peligro de sobreoptimizacion porque hablas de espacios temprales más largos. El problema de la sobreoptimizacion es cada vez mayor cuanto menor sea el período de tiempo de testeo. Quiero decir si coges en el ultimo año los primeros 8 meses in sample y los ultimos 4 meses out of sample estas jodio, por que?? pues porque enb total es solo 1 año, con lo que cuando te salgas de ese año y vayas por ejemplo tres años atras te dará como el (con perdon) culo. Ahi estas optimizando seguro para ese ultimo año.

    Si coges 10 años y 5 y algo que te da bien a lo largo de todos esos años cortres mil veces menos peligro de sobreoptimizacion, Eso si, ojo, dar con unos parametros que den bien a lo largo de 15años o incluso menos, 6 -7 años, no quiere decir que todos los años sean la leche en vinagre, precisamente porque no puede estar sobreoptimizado para todo el periodo,, habra años mejores y años peores pero es que hay que entender que no puede serr que vaya como un reloj todos los años durante 10 años, es una locura. Eso si, tu sabes que si esa estrategia la dejas correr, en el long run ganaras, mientras tenga una buen a relacion beneficio riesgo medio a lo larego de los años vas que chutas.

    Date cuenta que se trata de que tu portfolio este formado por bastante estrategias que funcionan a la vez. Mientras un año una estrategia esta más floja otra debería de ir más fuerte. Para eso se forman los portfolios.

    Por otro lado me dices si los años más antiguos deberian ser los insample o los ultimo…hazlo de ujna manera, saca parámetrosd y despues hazlo de la otra, al contrario y estudia los resultados, como simpre intentando llegar a una solución de compromiso. No es facil, te entiendo, pero es que el trading no es facil.

    Un saludo…

Deja un comentario

Tu dirección de correo electrónico no será publicada.