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

Machine Learning aplicado al trading

Ensamblando robots de trading inteligentes

 
En nuestro día a día tomamos todo tipo de decisiones continuamente y cuando se trata de algo importante consultamos previamente con expertos, autoridades o personas cuya opinión valoramos positivamente. Por ejemplo, visitamos a varios médicos especialistas o leemos las críticas de varios compradores de un determinado producto y tomamos la decisión final combinando las opiniones individuales de diferentes expertos. De esta forma intentamos evitar una intervención inadecuada o la compra de un mal producto.
 
A la hora de operar en los mercados no tiene por qué ser diferente ¿y si pudieramos consultar a cada uno de nuestros sistemas de trading expertos y tomar una decisión final según la opinión de cada uno de ellos? Los métodos de ensamblado de robots suponen una novedosa forma de operar obteniendo mucha más ventaja frente al mercado.
 

¿En qué consiste el ensamblado de robots?

 
El ensamblado de robots de trading consiste en combinar adecuadamente diversos robots y conseguir con ello aumentar la rentabilidad de nuestra cartera de sistemas a la vez que disminuir las probabilidades de operar con robots que pudieran funcionar mal. Pero además, el método de ensamblado puede aplicarse con otros fines en el diseño de sistemas, por ejemplo para filtrar operaciones negativas, fusionar datos dispares (análisis de sentimiento, indicadores técnicos, noticias, precio y volumen, etc) e incluso asignar niveles de confianza a cada nuevo trade que genera un sistema.
 

¿Cómo se realiza un ensamblado de robots?

 

Supongamos que diseñamos tres robots diferentes para generar órdenes de compra en el EURUSD. Cada uno de los robots es capaz de realizar varias acciones distintas. Cuando no tiene operaciones colocadas en mercado, decide si ejecuta una compra o no; y cuando tiene una posición dentro, si ha llegado el momento de cerrarla. Es decir: entrar, manterse fuera y salir.
 
Cada uno de los robots tiene lo que se llama una “frontera de decisión” para elegir qué acción tomar, en la imagen vemos como cada uno de los robots elige correcta o incorrectamente la acción a tomar según dónde traza sus fronteras. Cada uno de los robots hace bien su trabajo, pero aun así comete algunos errores. Mediante el ensamblado se combinan las fronteras de decisión de los tres robots mejorando sustancialmente la capacidad de tomar decisiones correctas.
 
Para generar la nueva frontera algunos algoritmos de ensamblado realizan sucesivos entrenamientos sobre los datos y en cada nueva iteración se hace énfasis (se asigna mucho más peso) a las decisiones que resultaron equivocadas en la anterior, reforzando progresivamente el aprendizaje.
 
Figura 1. Podemos combinar las fronteras de decisión de diferentes robots de trading mediante un sistema de ensamblado.
 

Mejores y más listos

 
Y no solo eso, en ocasiones la detección de un determinado patrón de trading explotable puede ser demasiado complicada para nuestros robots, es decir, el robot por su diseño es matemáticamente incapaz de detectarlo y el patrón con su consecuente buen trade pasará por delante de los ojos de nuestro sistema sin que éste siquiera lo perciba.
 
Figura 2. Mediante ensamblado podemos generar fronteras de decisión complejas mediante sistemas muy simples.
 
Por ejemplo, en la parte superior de la figura 2 vemos la forma de la frontera de decisión que tendría que tomar nuestro sistema de trading para detectar un patrón determinado. Es una frontera compleja pero en este caso nuestro sistema solo es capaz de trazar fronteras con forma circular.
 
Tenemos dos opciones: o bien nuestro sistema engloba el patrón correcto totalmente (buenos trades) a costa de incluir muchísimos casos incorrectos (malos trades) o bien reducimos la cantidad de buenos trades captados minimizando la frontera generada y perdiendo casi la totalidad de oportunidades de trading que este patrón nos ofrecía. En ambos casos estamos ante una mala decisión, frente a este patrón nuestro sistema no da la talla.
 
Ahora bien, ensamblando diferentes sistemas de este mismo tipo (capaces de dibujar únicamente fronteras de decisión circulares), como se muestra en la parte inferior de la figura 2, podemos generar una nueva frontera con la misma complejidad que el patrón de trading y de esta forma explotarlo de manera óptima.
 

La diversidad en los robots del ensamblado

 
Por otra parte, el éxito de un sistema de ensamblado de robots – i.e. la habilidad de corregir los errores individuales de cada miembro del sistema – reside exactamente en la diversidad de los robots que lo componen. Si todos los robots tomasen la misma decisión no sería posible corregir los errores por lo tanto necesitamos que cada robot se equivoque de forma distinta. La idea general es conseguir, mediante la combinación de robots, reducir el error total.
 
Existen varias formas de aumentar la diversidad del ensamblado, por ejemplo:
  • Si basamos nuestros robots en redes neuronales artificiales (ANN) podríamos configurar la red de cada robot de forma diferente. Por ejemplo, con diferente número de nodos, objetivos de error, etc.
  • Utilizar robots basados en diferentes modelos algorítmicos (redes neuronales artificiales, árboles de decisión, clasificadores de vecinos cercanos, etc).
  • Utilizar diferentes entradas de datos para los robots.
 

Tipos de ensamblado de robots

 
Existen varias formas de combinar robots en un ensamblado. La más sencilla es mediante votación, crear un parlamento de robots en la que cada uno emite un voto y tomar la decisión por mayoría simple.
 
Otro método, uno de los más avanzados, es el stacking (stacked generalization) que consiste en utilizar un modelo de aprendizaje extra para seleccionar la decisión con mayor probabilidad de ser correcta. Anteriormente hablé de cómo utilizar árboles de decisión para tomar estas decisiones con resultados realmente sorprendentes. Pero, particularmente interesante es el método boosting. Veamos cómo funciona con un ejemplo.
 

El método Boosting de ensamblado

 
En el método boosting la decisión final se toma mediante mayoría simple de votos de tres sistemas diferentes. Lo particular del método reside en cómo entrenamos estratégicamente a estos tres sistemas para que consecutivamente se mejore el rendimiento global.
Disponemos de los sistemas s1, s2 y s3. Entrenamos el sistema s1 y a continuación entrenamos al sistema s2 en un subconjunto especial de los datos de s1. En concreto, el subconjunto se compone de una mitad de trades correctamente detectados (trades ganadores) por s1 y de otra mitad de trades incorrectamente detectados (trades perdedores). Finalmente el sistema s3 se entrena en los datos que muestran desacuerdo entre los sistemas s1 y s2.
 
En la práctica este método de ensamblado da muy buenos resultados aunque todo depende en gran medida de la calidad de la información que aporten los indicadores utilizados.
 

Una herramienta de potentes aplicaciones

 
Hemos visto una breve panorámica del alcance de los métodos de ensablado de robots con la que se hace evidente la potencia y cantidad de aplicaciones que pueden tener para nuestro trading automático.
Los elementos fundamentales del diseño de sistemas como la diversificación para reducir el drawdown, la reoptimización periódica para mantener el edge, la detección de tendencias, ciclos y regímenes de mercado para saber qué tipo de sistemas utilizar según el momento, etc. Pueden verse ahora bajo la luz de esta nueva herramienta.
 
Revisitando estos elementos clave y aplicando un poco de ingenio y la nueva tecnología de ensamblado de robots, podemos potenciar enormemente nuestros métodos de diseño de sistemas y por tanto nuestra ventaja operativa en el mercado.
 

Más información sobre ensamblado de robots y trading automático inteligente

 

Si quieres saber más puedes ver este webinario sobre ensamblado de robots de trading que impartí hace un tiempo. 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

    spidertrader

    intuyo que no es lo mismo, pero ensamblado y diversificación no son conceptos muy parecidos? que diferencias hay entre estos??

    sdss!!

  2. #2

    Juan M. Almodóvar

    en respuesta a spidertrader
    Ver mensaje de spidertrader

    Hola, spidertrader:

    La diversificación se basa en utilizar diferentes sistemas que históricamente no estén correlacionados entre sí (o idealmente, que estén inversamente correlacionados).

    En la diversificación cada uno de los sistemas operará independientemente y tenemos la esperanza en que la suma de sus errores y aciertos dé un balance positivo. Ensamblar diferentes robots es diferente, es como si cada uno de los robots emitiera un voto y si hay cierto consenso (que se determina según el método de ensamblado) se realizará una operación (entrar, salir, mantenerse), por ejemplo.

    La diversificación mejora la estabilidad de la equity global de la cartera y el ensamblado sirve para diseñar sistemas individuales más eficientes (con mayor ventaja/edge frente al mercado).

    Lo bueno es que puedes diversificar una cartera con múltiples robots ensamblados =)

    Un saludo y gracias por tu comentario.

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