Juan M. Almodóvar

Machine Learning aplicado al trading

Machine Learning aplicado al trading

2
Publicado por Juan M. Almodóvar el 15 de enero de 2015


 

Con el auge de los gigantes de la tecnología de la información (Google, Facebook, Apple, etc) la ciencia de la Inteligencia Artificial ha empezado a renacer. Con nombres tan futurísticos como Machine Learning, Metaheuristics o Data Mining se engloba toda una serie de algoritmos y tecnologías orientadas a procesar la hiperabundante información y transformarla en conocimiento explotable.

 

La cuestión central que estudia el Machine Learning es la siguiente: ¿cómo podemos diseñar sistemas computacionales que automáticamente mejoren con la experiencia y cuáles son las leyes fundamentales que gobiernan este proceso de aprendizaje?

 

Con Machine Learning podemos construir sistemas que aprendan de los datos. Un ejemplo típico es el sistema que reconoce el spam de nuestro buzón de correo, para ello se entrena al sistema con miles de emails de spam a modo de ejemplo para que posteriormente clasifique nuestro correo entrante según lo que ha aprendido.   Leer más

Etiquetas: algoritmos · sistemas de trading · sistemas trading · Redes neuronales · mercados · régimen de mercado · sistemas · automáticos · robots · Datos · forex · forex ea · Robots de Forex · formacion · formación traders · webinar · webinarios · Cursos de bolsa · cursos gratuitos online · cursos de forex · cursos robots · cursos sistemas automaticos · cursos trading · cursos trading automático

2014 un año de Machine Intelligence

2
Publicado por Juan M. Almodóvar el 18 de diciembre de 2014

El 2014 ha sido un año especial para el desarrollo en profundidad de mis métodos de trading algorítmico. Si bien llevo mucho tiempo diseñando pieza a pieza toda la metodología, ha sido en este año que cada uno de los componentes y métodos ha alcanzado la suficiente madurez y ha sido testeado positivamente, como para articularlos todos en algo mayor, más completo y potente.

Sistemas clásicos vs Machine Intelligence

Los sistemas de trading automáticos clásicos son la transformación de la estrategia discrecional del trader en un programa informático cuya principal característica y ventaja es la posibilidad de realizar un análisis estadístico riguroso y reproducible. Puesto en blanco y negro: de una estrategia en forma de sistema automático se puede estimar su capacidad de predicción, de una estragia que no ha sido automatizada no se puede.   Leer más

Etiquetas: algoritmos · sistemas de trading · sistemas trading · Redes neuronales · mercados · régimen de mercado · sistemas · automáticos · robots · Datos · forex · forex ea · Robots de Forex · formacion · formación traders · webinar · webinarios · Cursos de bolsa · cursos gratuitos online · cursos de forex · cursos robots · cursos sistemas automaticos · cursos trading · cursos trading automático

Selección de activos y sistemas mediante árboles de decisión

0
Publicado por Juan M. Almodóvar el 23 de abril de 2014

Los árboles de decisión forman parte de un grupo de algoritmos de Machine Learning con gran aceptación entre las aplicaciones de business intelligence, advanced analytics y marketing. Fundamentalmente funcionan como un clasificador que nos ayuda a ver cuáles son y en qué medida influyen determinados factores en un resultado o decisión.

¿Se puede utilizar los árboles de decisión para hacer trading? ¿qué aplicación tendrían? ¿cómo predictivos para las operaciones? ¿aplicados sobre la gestión de capital o de riesgo? Efectivamente, pueden ser utilizados... como mínimo como método de selección de activos (o sistemas) con bastante buenos resultados.

Leer más
Etiquetas: algoritmos · sistemas de trading · árboles de decisión · mercados

Detectando el Régimen de Mercado con redes neuronales

2
Publicado por Juan M. Almodóvar el 03 de febrero de 2014

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.

 

Leer más
Etiquetas: algoritmos · sistemas trading · Redes neuronales · mercados

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

2
Publicado por Juan M. Almodóvar el 15 de enero de 2014

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.

Leer más
Etiquetas: k-means · minería de datos · optimización · algoritmos · sistemas trading

Darwinex, una nueva herramienta para el análisis de sistemas

0
Publicado por Juan M. Almodóvar el 02 de diciembre de 2013

El análisis y monitorización de los resultados de un sistema de trading es clave en el trading algorítmico. Darwinex es un nuevo servicio online que nos permite medir el pulso de nuestra operativa con un nivel de detalle sorprendente y realmente útil.

Hace un tiempo, mis amigos de Darwinex me invitaron a probar la beta privada de su aplicación, desde entonces he estado testeando sus algoritmos de análisis con mis propios sistemas de trading, así que sé el motor que hay detrás de la herramienta y os puedo asegurar que funciona de lujo y está hecho con mucho cariño, pasión por hacer las cosas bien y sobre todo mucha cabeza y buena tecnología.

Leer más

Etiquetas: sistemas trading · Trading · estadistica robots forex

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

5
Publicado por Juan M. Almodóvar el 19 de junio de 2013
estadistica alfatrader
 
Para todo sistema de trading hay que elegir el conjunto de parámetros con el que ponerlo a operar. Seleccionar los parámetros adecuados de un sistema es complicado pues la elección puede dar lugar a sistemas con rendimientos totalmente diferentes y por supuesto estropear un sistema ganador.
 
Etiquetas: k-means · minería de datos · optimización · algoritmos · Sistema de Trading · sistemas trading

Torturando los datos hasta que confiesen. Parte 2, Sobreoptimización

0
Publicado por Juan M. Almodóvar el 26 de mayo de 2013

La sobreoptimización es el enemigo más temido del trader de sistemas, es una trampa complicada que toda plataforma de trading que permita diseñar sistemas automáticos nos tiende fácilmente y en la que muchos hemos caído al principio. Diseñamos un sistema de trading con cinco indicadores, seleccionamos quince parámetros (periodo de las media móvil corta y larga, pips para el stop loss, pips para el take profit, niveles sobrecompra y sobreventa del RSI, etc) y ponemos nuestro superordenador de ocho núcleos a optimizar el sistema...  Al cabo de tres o cuatro horas ya tenemos decenas de combinaciones impresionantes, nuestro sistema en los últimos 3 años dibuja una línea recta ascendente como la trayectoria de un misil ¡ha llegado el momento de operar en real!
 
Todos los que hemos caído en esta trampa sabemos que tan pronto como pongamos el sistema en tiempo real (ya sea paper trading o con dinero de verdad) la trayectoria de misil de nuestro sistema continuará, pero en dirección a tierra. Perderemos puntos de manera trepidante hasta dejar la cuenta a cero, garantizado.
 
Ni el sistema ha dejado de funcionar, ni el mercado ha cambiado de dinámica, tampoco es mala suerte, ni el broker nos está espiando y va a por nuestros stops... La explicación más sencilla es que hemos sobreoptimizado nuestro sistema.
 

El problema de la sobreoptimización o adaptación al ruido

 
En el trading automático partimos de la idea de que las cotizaciones del mercado son una combinación de señal y ruido. Por una parte las señales o patrones que alertan de lo que puede suceder en el mercado, idealmente un movimiento al alza o a la baja, estas señales se repiten en el tiempo y con nuestros sistemas intentamos detectarlas y explotarlas. Cuando optimizamos un sistema de trading estamos intentando ajustar nuestro sistema para que detecte correctamente estas señales que se han dado en el pasado, con la esperanza de que se sigan repitiendo en el futuro próximo en cantidad suficiente como para sacarles un beneficio.
 
Los optimizadores de toda plataforma de trading automatizable ajustan los parámetros de nuestro sistema a la serie de cotizaciones pasada. El problema es que la serie no solo contiene señales predictivas sino también ruido, mucho ruido. Ruido como el de las televisiones antiguas cuando no tienen sintonizado un canal. Este ruido es aleatorio, es decir, no se vuelve a repetir de la misma manera en el futuro y es aquí donde radica el problema de la sobreoptimización.
 
Etiquetas: sobreoptimización · optimizacion de expert advisors · sistemas · optimizacion de EAs · optimizacion de sistemas de trading · optimizacion rapida robots de forex · sistemas trading

Torturando los datos hasta que confiesen. Sesgo de muestreo y espionaje de datos

8
Publicado por Juan M. Almodóvar el 15 de mayo de 2013

Uno de los elementos fundamentales para crear un sistema de trading es el conjunto de datos históricos. Los datos son una especie de materia prima con la que  se hacen los sistemas, requieren atención en su obtención y manejo, puesto que de no tener cuidado el mal uso puede hacernos perder mucho dinero. Es fácil "torturar los datos hasta que confiesen" y obtener resultados impresionantes sobre el papel que nos digan lo que queremos escuchar: que vamos a ganar mucho dinero operando el sistema; y sin embargo cuando pasemos a operar el sistema en real llegará el desastre en forma de drawdown incontrolado. En este primer artículo de la serie "Torturando los datos hasta que confiesen" hablaré de dos principios generales del manejo y obtención de datos históricos que son fundamentales para nuestra operativa automática.

Estos dos principios generales son el sesgo de muestreo (sampling bias) que trata de cómo se obtienen los datos y el espionaje de datos (data snooping) que trata de cómo se manejan los datos. Para entender estos principios veamos, con un ejemplo de cada uno, cómo si no los tenemos presentes pueden tendernos sus trampas y afectar muy negativamente a nuestro trading de sistemas haciéndonos creer en una ilusión ganadora que se convertirá en un horror en ejecución con dinero real... 
 

El sesgo de muestreo o sampling bias

 
En 1948 en las elecciones presidenciales de los EEUU entre Truman y Dewey sucedió un claro ejemplo de sesgo de muestreo. En la noche de las elecciones, una de los mayores periodicos realizó una encuesta a la población sobre el voto que habían dado. La encuesta indicaba que Dewey había ganado y el periodico confiado lo declaró así en el titular de su edición. Cuando se hizo el recuento total sucedió que Dewey había perdido, para deleite de un sonriente Truman.
 
Truman sonriente
 
No fue un caso de error a la hora de analizar los resultados de la estadística, el problema residía en otro lugar. En 1948 tener teléfono era un lujo que no estaba al alcance de toda la población y aquellos que disponían de él tendían a pertenecer a un grupo elitista que favorecía a Dewey mucho más que el votante medio. Como el periodico realizó su encuesta telefónicamente, inadvertidamente utilizó una distribución in-sample (los datos de muestreo) que era diferente a la distribución out-of-sample. Al recoger los datos de manera sesgada el resultado de la estadística estará similarmente sesgado.
Etiquetas: Datos · sesgo · muestreo · optimizacion de EAs · sistemas · Sistemas automáticos de Trading · sistemas trading

Sistemas de objetivos difusos

5
Publicado por Juan M. Almodóvar el 23 de octubre de 2012

Estoy probando una nueva técnica para diseñar sistemas: objetivos difusos. En las primeras operaciones me ha dado un excelente resultado y espero que siga así aunque es pronto para cantar victoria y se necesita muchas más operaciones para tener garantías mayores de que funciona el invento.

Una muy mala idea a la hora de diseñar sistemas automáticos de trading es utilizar objetivos de profit y stop fijos. En mi opinión, no sólo es ortopédico sino que además te expone bastante a sufrir los efectos de la sobreoptimización. Utilizar señales de salida (al igual que hacemos con las entradas) es otra mala idea a evitar... puesto que te expone de nuevo a la sobreoptimización (esta vez debido a la serialización de operaciones... que es harina de otro costal y casi mejor lo dejamos para otro post si os parece). Así que desde hace tiempo intento utilizar salidas basadas principalmente en la volatilidad utilizando indicadores de análisis técnico tipo ATR. 

Ahora bien, aunque colocar objetivos de profit y stop en función de la volatilidad suele darme buenos resultados, siempre hay operaciones que no llegan al objetivo de beneficio por los pelos o tocan el stop y vuelven. Da rabia porque si una operación de 100 pips no ha llegado al objetivo por 5 pips y se da la vuelta ¿¡no había predicho tu sistema de trading un 95% del movimiento?! ¡¿Por qué hemos de dejar de rentabilizar esta predicción?! 

La solución trivial es usar break evens (colocar el stop a precio de entrada en determinado momento para no arrancarte los pelos de la cabeza cuando una operación que casi gana se da la vuelta hacia tu stop) o usar trailings (ir moviendo el stop resguardando una parte de los beneficios conforme avanza la operación).

Así que salidas en función de la volatilidad, breakeven y trailings. Ok, ¿y si ahora en vez de colocar estos objetivos a una operación de 1 lote, la parto en diez operaciones y a cada una le doy unos objetivos ligeramente diferentes? El sistema no fija un objetivo para cada operación sino que se lo da a cada una dentro de un rango... por ejemplo coloca las 10 operaciones con objetivos entre 60 y 100 puntos de profit y stop. Si en general el sistema predice razonablemente bien la dirección inmediata del mercado ¿podría esto generar mejores curvas de equity?

No lo sé, al menos no hasta que ejecute las pruebas suficientes. De momento he diseñado un sistema con esta técnica y los primeros resultados han sido positivos:

Aquí hay 9 operaciones de venta a 0.1, cada una con objetivos ligeramente diferentes, cerraron en positivo todas. La línea roja es el beneficio cerrado y son 453 pips. La amarilla corresponde al flotante positivo por la última operación que tiene un objetivo de profit muy grande y va con trailing (cerrará en positivo porque el trailing ha superado de lejos el precio de entrada).

Los trades negativos son dos buys, son del mismo sistema y es debido a la forma en la que he construido el sistema, es una cuestión técnica pero conviene aclararla. No es 1 expert advisor que recibe una señal de entrada y ejecuta 12 operaciones partidas y con objetivos diversos. Son 12 sistemas con parámetros diferentes a los que su altísima correlación (¡son el mismo sistema!) les hace operar casi a la vez y casi en la misma dirección a todos. Se podría hacer de otra forma, pero lo he hecho así :-)

¿Y para qué todo este montaje se preguntarán algunos? Bueno, elegir los parámetros óptimos para un sistema de trading siempre es complicado... el mercado cambia y no te avisa, ya sabemos que hay que elegir un conjunto de parámetros robustos para los sistemas pero esta técnica me permite escoger un rango de parámetros robustos

Esta es mi técnica de "objetivos difusos", es como disparar con una escopeta de perdigones en vez de con un rifle de francotirador. Veremos si sigue dando estos resultados en en las próximas operaciones... 

Lo mejor es que es muy fácil de implementar técnicamente, básicamente:

  1. Tienes un sistema con esperanza matemática positiva.
  2. Optimizas mediante walk forward analysis para obtener unos 10 conjuntos de parámetros robustos.
  3. Ejecutas 10 veces el sistema con un conjunto diferente de entre los seleccionados.

¿Qué os parece la técnica? ¿os animáis a probarla en vuestros sistemas?

Actualización 13/12/12

He tenido funcionando 2 estrategias diferentes con esta técnica durante un aproximadamente un mes, una de ellas se ha hundido (por la estrategia), aquí van los resultados de la que ha funcionado bien.

 

 

Leer más
Etiquetas: sistemas trading · optimización · Take Profit · Stop Loss · rango · ATR · Volatilidad
Juan M. Almodóvar

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 profesional para traders en tradingautomatico.net. Centra su carrera profesional en el ámbito de la Inteligencia Computacional aplicada a los mercados financieros.




RSS
e-Mail









Este sitio web usa cookies propias o de terceros para analizar la navegación del usuario. En caso de seguir navegando se entiende que acepta la política de cookies.
Aceptar