Juan M. Almodóvar

Machine Learning aplicado al trading

Cómo optimizar un sistema mediante minería de datos. Parte 2

En un artículo anterior explicaba cómo realizar una buena optimización para conseguir parámetros robustos en nuestros sistemas combinando dos técnicas de Inteligencia Artificial: el algoritmo genético y el clasificador k-means.

En esta segunda parte del artículo os traigo cuatro meses de resultados forward de una operativa utilizando este método de optimización. Los resultados son sorprendentes.

 

Detalles de la prueba

En primer lugar los detalles de cómo realicé la prueba. En dos cuentas de trading diferentes conecté 6 robots con distintas estrategias sobre el EURUSD. En la cuenta que llamé "control" seleccioné los parámetros a utilizar para cada robot de manera manual. Es decir, hice una optimización y elegí los parámetros que mejores estadísticas daban (esperanza matemática, porcentaje de drawdown, beneficio, etc). En la cuenta que llamé "kmeans" clasifiqué las optimizaciones de los robots utilizando el algoritmo clasificador k-means.

Recordad que la idea de utilizar el clasificador era encontrar conjuntos de parámetros que tuviesen otros conjuntos de parámetros parecidos, de tal forma que este conjunto de parámetros no representase un pico extremo de resultados estupendos debido a una segura sobreoptimización sino una montaña suave, más propia de un sistema robusto.

Con estas dos cuentas empecé la prueba a finales de agosto del año pasado y la finalicé a finales de diciembre, realmente 4 meses completos de trading en forward. 

Resultados de 4 meses en forward test

Los resultados siguientes son en Pips, no en dinero. Lo importante al desarrollar y testear es obtener todas las estadísticas en esta medida, queremos medir la ventaja estadística del sistema, cómo de predictivo es y en función de estas estadísticas podremos luego obtener fácilmente los parámetros para ajustar la gestión monetaria y entonces sí, hacer que el sistema gane dinero.

Ahí van los gráficos de equity de los dos sistemas ¿adivináis cuál es el de k-means?

 

El sistema "control" finalizó la prueba con 248 pips, un Drawdown máximo de 757 pips y un System Quality Number de 0,36.

El sistema "kmeans" hizo 1476 pips, un Drawdown máximo de 409 pips y un System Quality Number de 2,06.

Un análisis de resultados por ratio riesgo/beneficio

En los siguientes gráficos vemos la distribución riesgo/beneficio de los trades. Este gráfico es como una radiografía del sistema, que te dice la cantidad de trades buenos y malos. Para entendernos, cuanto más se acumule en la parte derecha mejor pues significa que tenemos muchos trades positivos que ganaron por ejemplo 2, 3, 4 veces lo que podían haber perdido. Claramente los dos sistemas tienen una radiografía muy diferente, la distribución de riesgo/beneficio por trade es muchísimo mejor en el sistema "kmeans" (click en la imagen para ampliar).

¡La mejora es sorprendente! No me podría cansar de explicar que el mayor enemigo del trader automático es la sobreoptimización y la combinación del algoritmo genético y el clasificador k-means es un potente y efectivo aliado contra ella.

Aplicando gestión monetaria al sistema robusto kmeans

 

Y ahora lo bueno... teniendo un sistema relativamente robusto, con un buen SQN y que va dando pips de manera estable ¿cuánta pasta podemos sacarle aplicando algoritmos de gestión monetaria?

Con las estadísticas generadas por la optimización previa a la puesta en marcha del sistema obtuve los parámetros para mi algoritmo de gestión monetaria. Aplicado sobre el sistema y empezando a operar con 1 lote sobre una cuenta de 10,000€, los 1476 pips conseguidos en estos 4 meses finales del 2013 se convirtieron en 24,262€ de beneficio. Ahí va el gráfico:

Nada mal para mis 6 robots en un solo cuatrimestre. Ahora empiezan el año con una nueva reoptimización, espero que continúen dando cada mes al menos la misma cantidad de pips.

El optimizador de k-means está disponible para utilizar dentro de Alphadvisor v5, si quieres aprender a utilizarlo solo tienes que registrarte en uno de los webinarios gratuitos que damos todas las semanas. Si te interesa aprender a diseñar tus propios sistemas y cómo sacarle el máximo partido a mis técnicas de optimización de sistemas puedes asistir al curso online de trading automático.

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. Top 100
    #1

    David Sánchez López

    Hola Juan! Muy interesante el kmeans ¿no hay otra forma de implementarlo a mt4 sin que sea con alphadvisor?

    Un saludo!

  2. #2

    Juan M. Almodóvar

    en respuesta a David Sánchez López
    Ver mensaje de David Sánchez López

    Hola David:

    Siempre puedes programar tú mismo el algoritmo k-means y aplicarlo sobre las optimizaciones. A nosotros nos llevó varios meses de diseño, implementación y pruebas.

    Diseñamos el módulo de k-means para directamente recoger un informe de optimizaciones de mt y clasificarlo con este algoritmo, poder elegir los parámetros a utilizar en el clasificador, el número de clusters, etc. Luego Alphadvisor te genera los ficheros de parámetros específicos para el robot y los guarda en tu plataforma para que tengas acceso directo desde la consola de backtest a los parámetros.

    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:

guias rankia