Juan M. Almodóvar

Machine Learning aplicado al trading

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 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.

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 ratios 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.

 

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.

¿Cómo funciona Darwinex?

Inicialmente tras registrarte solo tienes que conectar una de tus cuentas de trading para que empiece a subir los datos y analizar la información. En unas pocas horas el análisis está hecho y puedes ver los resultados de tus sistemas.

El análisis se basa en un conjunto de categorías o medidas como son la "experiencia", la "aversión al riesgo", la "estrategia de salida", etc. La idea es puntuar tus estrategias en cada una de esas medidas que son como tus habilidades de trader y el reto es mejorar en todas estas habilidades a la vez hasta alcanzar el nirvana del trader... Es motivante y desde luego ¡aporta un feedback valiosísimo!

Os muestro el análisis de una de mis estrategias con sus puntuaciones, el sistema de trading inteligente HIVE:

Análisis de estabilidad de riesgo y timing de salidas

Una de mis categorías preferidas es la que mide la estabilidad en el riesgo. No importa si tu estrategia es muy arriesgada o poco, lo que importa es que mantenga un riesgo consistente. Como inversor puedo elegir una estrategia muy arriesgada de manera consciente pero lo que no quiero es que el riesgo de la estrategia elegida esté dando saltos y durante una temporada me esté jugando todo el pellejo y en otra estemos perdiendo el tiempo y me dé menos rentabilidad que las letras del tesoro.

Otro análisis muy útil es el tiempo de salida, te dice qué pasaría si tus operaciones se cerrasen un 10%, 20%, 30%, antes o después. Se grafican todos los niveles a la vez y puedes ver también cada nivel de manera numérica. En el caso de mi sistema de trading HIVE la salida es óptima pero en otros sistemas esta medida me ha servido para saber que me estaba dejando bastentes duros en la mesa... 

Competir para mejorar

Darwinex se centra en una competición entre traders donde se valora al "más invertible". Para ello contamos con un ranking de estrategias donde nuestro sistema de trading automático HIVE está por ahora en la séptima posición. La competición es dura, puesto que la gente de Darwinex invitó a los mejores traders discrecionales y automáticos del mundo, pero ahí estamos dando guerra ;-)

En conclusión: una gran herramienta de análisis para el trader de sistemas

 

Hay muchas más vertientes de la herramienta de las que no he hablado como su creciente comunidad de traders para compartir conocimiento y un fantástico analizador de riesgo y apalancamiento que todavía estoy analizando... ¡Incluso recientemente han incorporado un análisis que incluye trading con monos! Pero esto mejor ya lo descubrís vosotros, que tiene su gracia :-).

Ya sabéis, nuestro trabajo con los sistemas de trading es medir, medir y medir y en ésto Darwinex nos puede ayudar mucho.

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.
 
El sesgo de muestreo es más propio de los traders discrecionales que de los automatizados. Es lo que habitualmente se conoce como "cherry picking" o seleccionar ejemplos de señales que funcionan en el histórico ignorando los ejemplos donde no funcionan. ¿Os suena? Es el truco de magia de salón al que nos tienen acostumbrados muchos de los gurúes del trading en sus libros y seminarios.
 
En el trading automático el sesgo de muestreo se produce típicamente al elegir periodos de mercado fuertemente alcistas o bajistas para optimizar nuestros sistemas, lo que no es representativo del mercado futuro que vendrá. A la hora de diseñar y optimizar un sistema hay que fijarse bien en que los datos históricos utilzados contengan representaciones adecuadas de todos los tipos de mercado para no caer en las redes del sesgo de muestreo.
 

Espionaje de datos

 
El segundo principio relativo a cómo manejamos los datos se llama espionaje de datos. Esta es una de las trampas más comunes a la hora de optimizar sistemas. Se basa en que de alguna manera estamos utilizando para diseñar y optimizar nuestro sistema los datos del futuro, unos datos de los que no dispondremos cuando nuestro sistema esté operando en tiempo real.
 
Un ejemplo básico sería utilizar en nuestro sistema el precio de cierre de la sesión para elegir la dirección del trade a tomar... Sería absurdo que nadie diseñara un sistema así si no es por pura estupidez... pero tomar datos prestados al futuro es un error común que podemos cometer si no pensamos bien lo que estamos haciendo, como vamos a ver en el siguiente ejemplo.
 
Imaginemos  que un fondo de inversión está desarrollando un sistema de trading para el mercado Forex. Utiliza 8 años de histórico de datos en el cruce del US Dollar (USD) con el British Pound (GBP), con estos datos buscarán un patrón que explotar. El fondo utiliza las series normalizadas de porcentaje de cambio de precios diarios junto con algunas medidas estadísticas como la media y varianza calculadas sobre los 8 años de histórico. Con estos datos empiezan a diseñar su sistema de trading ganador que predice la dirección del cambio. Cada día, basándose en las fluctuaciones de los últimos 20 días el sistema emite una orden de compra o venta. Para diseñar y validar su sistema utilizan el 75% de los datos históricos para optimizar los parámetros del sistema y el 25% restante para comprobar los resultados de aplicar el sistema.
 
La prueba es un éxito. El porcentaje de acierto es del 52.1%, lo que puede parecer poco pero representa una ventaja frente al mercado y por lo tanto una oportunidad para ganar dinero si esta ventaja se mantiene durante suficiente tiempo. De hecho, este 25% de histórico representa 2 años o 500 días de trading en los cuales se ha conseguido un respetable 22% de beneficio.
 
¡Pero cuando el sistema empieza a ser operado en real viene el desastre! El rendimiento se deteriora drásticamente y el sistema empieza a perder dinero como un descosido. En el fondo de inversión se preguntan qué puede estar pasando, se tiran de los pelos ante la incertidumbre (¿detenemos el sistema?) y ya esperan las llamadas enfurecidas de sus clientes.
 
Espiando al futuro
 
 
 
¿Qué ha sucedido? ¿Hay una explicación a este desastre? Sí, el espionaje al futuro. Aunque a la hora de desarrollar su sistema fueron lo suficientemente cuidadosos como para dejar apartado una parte del histórico (el 25%) donde comprobar el rendimiento de la estrategia resulta que los datos para la prueba afectaron a los datos utilizados para optimizar los parámetros del sistema. De manera inadvertida cuando los datos históricos originales fueron normalizados y se obtuvieron los estadísticos de media y varianza todo el histórico fue utilizado. Por lo tanto el 25% de datos reservado a la prueba afectó a los datos que utilizábamos para optimizar los parámetros y como podría esperarse ayudó a que el rendimiento final fuese superior a lo que debería.
 
Parece un pequeño error no muy grave, pero lo es. Los datos para el in-sample estaban contaminados y por lo tanto la estimación final del rendimiento en la prueba no era precisa... provocando que lo que era una mala estrategia sin prácticamente ventaja frente al mercado pasara por las pruebas como una estrategia interesante.
 
 

Y ahora, todavía lo podemos hacer peor

 
Ya sabemos que si no seleccionamos adecuadamente los datos podemos caer en la trampa del sesgo de muestreo y si no los manejamos adecuadamente podemos vernos afectados por el espionaje de datos. ¿Podría ser peor? Sí, para terminar de empeorarlo todo combinemos ahora el sesgo de muestreo y el espionaje de datos en una auténtica trampa mortal en la que han caído mucho traders novatos y que es la base de muchos bestseller de cómo hacerse rico en la Bolsa.
 
Recordemos que el sesgo de muestreo se define basándose en cómo se obtienen los datos antes de optimizar y el espionaje de datos se refiere a cómo los datos afectan a la optimización y diseño del sistema. Son conceptos diferentes pero hay ocasiones, como el siguiente ejemplo, en los que el sesgo de muestreo se da como consecuencia del espionaje de datos.
 
Imaginemos que estamos desarrollando un sistema para stocks del SP500 basado en sus datos históricos. El sistema más básico que podemos pensar es el típico "buy and hold", comprar la acción y mantenerla. ¿Qué rendimientos dio nuestra estrategia durante los últimos 20 años? Fácilmente a partir de casi cualquier combinación de stocks nuestros resultados parecen muy prometedores. ¡Pero no tan rápido! Inadvertidamente hemos sesgado los resultados a nuestro favor seleccionando únicamente compañías que actualmente siguen cotizando ¿Qué hay de aquellas que salieron del índice dejando de cotizar? No estaban entre nuestra posible selección y por lo tanto solo podíamos elegir entre las compañías supervivientes, las cuales evidentemente tendían a dar unos resultados positivos. 
 
Cuando pongamos nuestra estrategia a funcionar lo haremos sobre stocks que sobrevivirán o no puesto que no sabemos cuáles dejaran de cotizar en los próximos 20 años... En este momento el rendimiento histórico no representa adecuadamente el rendimiento futuro que podríamos esperar, ya que de nuevo los datos históricos donde optimizar el sistema (selección de stocks) no son representativos, es decir estamos cometiendo un error de sesgo de muestreo y el origen del error es que hemos espiado los datos en el futuro y seleccionado únicamente aquellas compañías supervivientes. ¿Veis como lo podíamos hacer todavía peor? :-)
 

Conclusión

 
Conocer estos dos principios generales del manejo y obtención de datos nos evitarán muchos disgustos a la hora de hacer trading con sistemas. Realmente es sencillo evitar caer en sus trampas simplemente poniendo un poco de atención a la hora de diseñar nuestras estrategias.
 
Si queréis profundizar en el tema, podéis encontrar mucha más información al respecto en el libro Learning from data, de Yaser S. Abu-Mostafa.
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

Algoritmos de trading que dan forma al mundo

0
Publicado por Juan M. Almodóvar el 06 de octubre de 2012

Diseñamos algoritmos que ejecutan y gestionan las operaciones que se realizan en los mercados financieros. Estos algoritmos son cada vez más complejos y opacos llegando incluso a lo que se conoce como Black Box Trading. ¿Hasta qué punto estos algoritmos que mueven billones de dólares en cuestión de microsegundos son capaces de modificar el mundo?

Eso es lo que nos plantea Kevin Slavin, cofundador de la exitosa empresa de videojuegos Zynga en su charla How algorithms shape our world en TED.