Rankia España Rankia Argentina Rankia Brasil Rankia Chile Rankia Colombia Rankia Czechia Rankia Deutschland Rankia France Rankia Indonesia Rankia Italia Rankia Magyarország Rankia México Rankia Netherlands Rankia Perú Rankia Polska Rankia Portugal Rankia Romania Rankia Türkiye Rankia United Kingdom Rankia USA
Acceder
Blog Juan M. Almodóvar
Blog Juan M. Almodóvar
Blog Juan M. Almodóvar

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.

 

 

 

3
¿Te ha gustado mi artículo?
Si quieres saber más y estar al día de mis reflexiones, suscríbete a mi blog y sé el primero en recibir las nuevas publicaciones en tu correo electrónico
  • Bolsa
  • Sistemas automáticos de Trading
  • Redes neuronales
Lecturas relacionadas
Cómo optimizar un sistema mediante minería de datos
Cómo optimizar un sistema mediante minería de datos
Cómo optimizar un sistema mediante minería de datos. Parte 2
Cómo optimizar un sistema mediante minería de datos. Parte 2
Algoritmos de trading que dan forma al mundo
Algoritmos de trading que dan forma al mundo
  1. Nuevo
    #3
    25/11/20 06:51
    Yo estaba detectando los regimenes de mercado con los GaussianMixtureModels y algunos osciladores, como el awesome oscillator.

    Tenemos una distribucion de distancias en cada caso, y podemos obtener tantos regimenes como gustemos, en el caso de un mercado lateral con poca volatilididad por ejemplo, la distancia entre las medias moviles es pequena, haciendo que el awesome oscillator tenga oscilaciones pequenas, entonces estamos dentro de una parte de la distribucion...

    Voy a probar este metodo, primero aplicando el PCA para filtrar los indicadores que de verdad funcionan para predecir, y fijarme que constantes tienen en cada regimen de mercado y sacar el dataset para entrenar a la red neuronal, gracias por estos articulos.
  2. en respuesta a sacrafame
    -
    #2
    05/02/14 20:18

    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.

  3. #1
    sacrafame
    05/02/14 19:55

    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.

Te puede interesar...
  1. Cómo optimizar un sistema mediante minería de datos
  2. Torturando los datos hasta que confiesen. Sesgo de muestreo y espionaje de datos
  3. Trading con Inteligencia Artificial y GenBoX
  4. Sistemas que solo funcionan en backtest
  5. Detectando el Régimen de Mercado con redes neuronales
  1. Cómo optimizar un sistema mediante minería de datos
  2. Machine Learning aplicado al trading
  3. Selección de activos y sistemas mediante árboles de decisión
  4. Ensamblando robots de trading inteligentes
  5. Detectando el Régimen de Mercado con redes neuronales

Cookies en rankia.com

Utilizamos cookies propias y de terceros con finalidades analíticas y para mostrarte publicidad relacionada con tus preferencias a partir de tus hábitos de navegación y tu perfil. Puedes configurar o rechazar las cookies haciendo click en “Configuración de cookies”. También puedes aceptar todas las cookies pulsando el botón “Aceptar”. Para más información puedes visitar nuestra política de cookies.

Configurar
Rechazar todas
Aceptar