¿Nos visitas desde USA? Entra a tu página Rankia.us.
Juan M. Almodóvar

Machine Learning aplicado al trading

Detectando el Régimen de Mercado con redes neuronales

El mercado es dinámico, cambia. Sabemos que tiene momentos tendenciales, momentos en los que aumenta exageradamente la volatilidad, momentos en los que está plano... Y al tener estructura fractal vemos estos cambios de comportamiento en temporalidades intradiarias o a largos plazos de semanas, meses y años.

Al estado en el que se encuentra el mercado en un momento dado se le llama técnicamente régimen de mercado y es otro de los monstruitos frente al que muchos diseñadores de sistemas hemos de enfrentarnos (otro y más temido es el monstruo de la sobreoptimización). En este artículo explicaré brevemente, según mi experiencia, por qué es peligrosa esta característica del Mercado, lo difícil que es afrontarla y cómo estoy desarrollando un método basado en redes neuronales que, aunque experimental y un tanto rudimentario, me está dando muy buenos resultados.

 

 

 

El peligro de ignorar el cambio de régimen de mercado

Aquellos traders que desconocen la existencia de los regímenes de mercado directamente palman porque diseñan sistemas que funcionan bien durante todo el backtest :-) y claro, si el backtest es lo suficientemente largo como para ser estadísticamente significativo ha de incluir muy probablemente diversos regímenes de mercado (estamos hablando de estrategias de baja frecuencia operativa, los sistemas de alta frecuencia comen aparte). Si tu robot monoestrategia funciona bien en muchos regímenes entonces tienes el Santo Grial ¡enhorabuena! A este trader no le parece extraño que la equity de su sistema sea una perfecta curva ascendente, que crece de forma continuada reconociendo un único patrón o señal que hace frente a todos los cambios del Mercado sin despeinarse. Dicen que la ignorancia es atrevida y obviamente lo que ocurre es que se ha sobreoptimizado el robot, así que entonces... a palmar, como ya he dicho.

El trader experimentado entiende que su sistema tendrá momentos en los que no atinará... que perderá ventaja estadística porque no está en sintonía con el régimen actual de mercado. Muchos pensaréis que la solución obvia es que el sistema lo detecte y ajuste su respuesta, pero para ello habría que obtener más información del Mercado, es decir, utilizar otro indicador o varios más en el sistema... convirtiéndolo en otro sistema y además más complejo (más facilidad para sobreoptimizarlo). Lo que muchos diseñadores de sistemas llaman diseñar un sistema robusto, es decir, que funciona bien en muchos tipos de mercado. Funcionar bien significa que si el sistema es tendencial ha de ganar dinero cuando el mercado entra en tendencia y cuando el mercado está sin tendencia el sistema no debe perder mucho.

Cuando aprendes que los sistemas de baja frecuencia solo funcionan en determinados regímenes de mercado entiendes por qué es tan complicado diseñar un robot ganador robusto :-)

¿Cuál es la solución ideal?

La solución ideal sería crear un detector de régimen de mercado y en función de sus señales activar un tipo de sistema u otro, cada sistema ha de funcionar bien en uno de los posibles regímenes. Parece bastante lógico y práctico... En invierno saco el abrigo, en primavera el paraguas, en verano las sandalias y en otoño la bufanda. Pues lo mismo, pero con robots de trading.

Y en eso ando los últimos meses, desde el principio pensé que un modelo apropiado para detectar el tipo de mercado sería una simple red neuronal. Las redes neuronales son unos algoritmos inspirados en la forma que funciona el sistema nervioso de los animales. Por ejemplo, las neuronas de un gato reciben los estímulos externos mediante los sentidos de la vista, oído, olfato, etc y se disparan provocando una cascada de señales eléctricas en su cerebro que dan lugar a una acción concreta como puede ser lanzar un zarpazo y capturar ese ratoncillo escurridizo... ¿Cómo podríamos incorporar una red neuronal a nuestros robots? Las señales de diversos indicadores serían los sentidos del robot recibiendo valores de forma continuada que la red neuronal computaría informándonos en todo momento del régimen de mercado en el que cree que nos encontramos y por lo tanto nos permitiría operara con el sistema más apropiado.

Mi detector de Régimen de Mercado NRK (Neuro RisK)

En la siguiente imagen os muestro el análisis generado con Alphadvisor de uno de mis sistemas de trading. Ok, no es muy espectacular... Operando siempre 1 lote consigue 834 pips que se convierten en 1816€. El factor de beneficio es un mediocre y peligroso 1,28 y la relación entre el riesgo y el beneficio es de 0,68... Un sistema que descartaría pese a que hace puntos y por tanto en algún momento está demostrando poseer ventaja estadística.


A continuación el mismo sistema pero con mi detector rudimentario de regímenes de Mercado NRK basado en redes neuronales que le indica al sistema cuándo tiene que operar y cuándo no. En realidad, técnicamente opera con el mínimo (0.01 lotes) cuando no es su momento y con 1 lote entero cuando la red determina que sí está en su momento (así me es más facil comparar todas las estadísticas).

Las mismas operaciones de esta forma generan 3023€ de beneficio, con un respetable 3,80 como factor de beneficio y un 4,39 como relación entre el riesgo y beneficio. Lo remarco: hemos pasado de un ratio del 0,68 al 4,39. Fijaos en cómo ha evitado el drawdown en la parte final. Ahora sí merece la pena operar este sistema.

 

Hemos pasado de un robot que tenía ventaja estadística solo en un determinado régimen de mercado y que por tanto palmaba cuando operaba fuera de él a un robot versión 2.0 que podemos ejecutar todo el tiempo porque ya se encarga el detector NRK de activarlo y desactivarlo cuándo corresponde.

La clave está en cómo entrenar la red neuronal

La clave está en la forma de entrenar la red neuronal ¿qué información hemos de suministrarle a la red neuronal para que determine correctamente el régimen de mercado? Las redes neuronales tienen fama de peligrosas (bien ganada) porque se tiende a usarlas para lo que no sirven (predecir el precio) o se tiende a sobreentrenarlas dopándolas con multitud de indicadores redundantes... A este segundo respecto escribí hace poco un artículo titulado "La Maldición de la Dimensionalidad" que trata de explicar cómo he utilizado una técnica llamada PCA (Análisis de Componentes Principales) para determinar qué indicadores utilizar y cuales no.

Al final, cuando encuentras las entradas que funcionan ves que son bastante lógicas... pero como con otras muchas cosas todo parece muy evidente a toro pasado :-). Y pese a que los términos "régimen de mercado" o "red neuronal" dan un poco de miedo con el conocimiento apropiado es bastante sencillo entender cómo usarlo para potenciar robots y además es muy fácil de aplicar.

Como he explicado, de momento es un detector aplicado sobre un sistema que le dice si está en su momento de operar o no... Mi siguiente prueba será que el detector coordine diversos sistemas de todo tipo: tendenciales, contratendenciales, etc. Espero pronto poder contaros que ha habido buenos resultados.

Más información sobre trading automático inteligente

Para más información sobre métodos de Inteligencia Artificial aplicado al trading consulta la web de mi Curso Online de Trading Automático Inteligente.

 

 

 

  1. #1

    sacrafame

    Lo que me ha llamado la atención y me ha motivado a leer este artículo es la mención a la palabra neurona.

    Yo veo el mercado, literalmente como una red de neuronas interconectadas, los lazos que las unen pueden fortalecerse o debilitarse con el tiempo, y las anomalías estadísticas hacen que estas neuronas cambien de color.

    Bajo mi punto de vista, hay que prestar atención a todo lo que es estadísticamente raro.

    Esto indica que la probabilidades de ganar dinero están a nuestro favor, lógicamente no se acierta en el 100% de las operaciones, pero se gana más de lo que se pierde, que es en última instancia lo que interesa.

    Esto es posible gracias a la informática, que nos permite sacudir todos los números que giran alrededor de cada activo, y todos los números que giran en torno a las conexiones que establecen cada uno de esos activos con los demás.

  2. #2

    Juan M. Almodóvar

    en respuesta a sacrafame
    Ver mensaje de sacrafame

    Es una forma interesante de ver el Mercado. Estoy de acuerdo contigo en que hay que aprovecharse y "crujir" los números con estos modelos y otros para conseguir una ventaja estadística.

    Gracias por tu comentario. Un saludo.

Autor del blog

  • Juan M. Almodóvar

    Director de investigación y desarrollo de Sistemas Inversores, (consultora especializada en trading algorítmico), desde donde ha colaborado con los departamentos de sistemas de varios fondos de inversión y diseñado software para trading como Alphadvisor. También imparte un Curso Online de Trading Inteligente en la Intelligent Trading School. Centra su carrera profesional en el ámbito de la Inteligencia Computacional aplicada a los mercados financieros.

Envía tu consulta

Próximos Webinars

Apúntate ya a los próximos webinars de Rankia:

Este sitio web usa cookies para analizar la navegación del usuario. Política de cookies.

Cerrar