Rankia España
Blog Expert Advisors - Robots de forex por EA Billionaire
Actualidad sobre los Expert Advisors - Robots de Forex y Sistemas Automatizados (EAs)

Optimización de Expert Advisors III: Entendiendo el verdadero funcionamiento del Algoritmo Genético

Hola Amigos!

vamos a hablar hoy del funcionamiento del Algoritmo Genético, y su comprensión, para usarlo de la mejor manera posible.

Metatrader fue y sigue siendo toda una revolución para el operador retail por que permite el uso de estrategias automatizadas, llamadas Expert Advisors, compulsadas contra datos históricos y sobre todo OPTIMIZADAS.

Dentro de la ingeniería de la optimización, tan frecuente en la industria automotriz, como en muchas otras ingenieras mecánicas, el algoritmo genético es uno de los más usados. Sin embargo, no es el más óptimo y voy a explicar por qué.

Buscando el óptimo

En primer lugar, tenemos que imaginar nuestros parámetros o superficie paramétrica como una serie de valles, montes y lagunas, en 3D y a veces en 12D. Como nuestra imaginación alcanza sólo hasta la tercera dimensión, vamos a imaginar valles, montes y lagunas en un espacio tridimensional.

Vamos a suponer que nuestro eje Z es la ganancia Neta (Net Profit) y el eje X y el eje Y dos parámetros externos de entrada de nuestro sistema automático. Ambos parametrizables. Según empiezo a andar por mi eje X y Z empezará a subir colinas, bajar a valles, y si tengo mala suerte a sumergirme en lagunas. Algunas muy profundas. :)

Supongamos que parto del Sur y que mi óptimo absoluto, el Monte Everest :) se encuentra diametralmente en el Norte. Un algoritmo de optimización no es otra cosa, que una rutina matemática para recorrer el mejor camino y acabar en ese Everest. Sin embargo, delante del Everest tendré el Annapurna, otro 8000, pero no tan alto como el Everest. Por el camino puedo tener el Montblanc, y un poco antes el Monte Perdido en los pirineos. Todos estos son máximos, pero no EL MÁXIMO. EL MÁXIMO, es siempre el Everest. Haga lo que haga. No hay otro máximo.

Como optimizador, mi objetivo es llegar al Everest en todos los planos paramétricos, es decir, en todas las combinaciones de ejes X y Z posibles. Es decir, busco el mejor Net Profit, Ganancia Neta, con el menor DrawDown, con el mejor Profit Factor, con el menor número de trades, con las bajadas más suaves y cortas en duración en tiempo (meses), con la mayor estabilidad en años, con la mejor rachas de operaciones, con la racha más corta o rachas más cortas y controlables de operaciones perdedoras, con la mejor racha de meses ganadores, con el mejor acoplo al mercado actual, etc, etc. En definitiva son muchas excursiones que tengo que hacer en diferentes dimensiones paramétricas. Y en algún punto tendré que sacrificar ganancia por consistencia, o DrawDown por frecuencia de operaciones, o peores rachas a cambio de DrawDowns que duren menos meses.

En mi metáfora, un monte o pico, es un óptimo del eje Z, valor que busco. Un valle es una combinación de parámetros peor, y una laguna es por debajo del nivel de agua, es decir, una combinación de parámetros que me arroja pérdidas.

El Algoritmo Genético

Pues bien, ahora vamos a usar otra metáfora. Vamos a suponer que somos el primer organismo unicelular en el Planeta Tierra!! :) Y somos los únicos. Nos dividimos en dos y una célula hija la meten en el Mar Rojo (que es bastante salado) y otra la meten el Lago Baikal (que es dulce). La celulita del Mar Rojo muere. :( La del Baikal se divide en dos y meten una en el Lago Titicaca y otra sigue por el Baikal. La del Baikal se encuentra con partículas de petróleo y muere. :( La del Titicaca se alimenta de oro en el agua y se divide en dos. :) Y así sucesivamente. Eso es el Algoritmo Genético. Es un sistema que se va subdividiendo, muriendo y continuando por los caminos exitosos, en perfecta imitación de la genética. Y por eso se llama así: ALGORITMO GENÉTICO. Vaya casualidad...

Partíamos del Sur, y obviamente no sabemos que el Everest está 180 grados al Norte nuestro, sólo vemos lo inmediatamente cercano. Nuestro Algoritmo Genético parte uno a 45 grados al Este y otro 45 al Oeste. El del Este se mete en un lago bien profundo y muere, corta esa generación. El del Oeste se encuentra una subida empinada y sigue contento, animado de que esa subida puede ser la del Everest. Se subdivide en Noroeste y Noreste. La del Noreste le lleva a otro lago. Muerte. :( La del Noroeste se subdivide, una sigue subiendo y otra baja ligeramente. ¿Qué ocurre? Que puedo encontrar un óptimo, pero no necesariamente EL ÓPTIMO.

Pero... pero... ¡Esto tiene solución! Menos mal, por que de tantas generaciones genéticas abortadas, algo bueno tendría que salir. :)

Teoría Matemática

Hay una teoría matemática, desarrollada en una universidad rusa, cuyo teorema son 3 folios. En ese algoritmo que no es el genético se procede de otra manera en la búsqueda del óptimo. Sin embargo, eso no está programado en Metatrader. El punto es que tengo muchas formas de intentar encontrar ese Everest. O también me puedo contentar con el Annapurna, total es un 8000.

Aquí el punto no es querer ser mejor que un sistema inteligente que va viendo si hay más pendiente y empieza a tirar más generaciones, a subdividirse y procrear árboles de cálculo cuándo encuentra una planicie o una cadena montañosa. Y a cortar las generaciones, cuándo hay demasiada lagunita. Realmente si lo vemos objetivamente el algoritmo genético es bien ingenioso.

El punto de partida es la clave

El punto es tu PUNTO DE PARTIDA. Si partías del Sur y buscabas un Everest en el Norte, tu probabilidad de encontrarlo en una optimización es X. Es relativamente baja. Suponte que tienes una cordillera de 5000s, los Urales y partes de Madrid, pues probablmente te vas a quedar por los Urales con este sistema de búsqueda y si sigues buscando acabarás en los grandes lagos siberianos. AGUA. Y así nunca llegarás al Tibet. Pero... Y si partes de la India? Tu probabilidad de llegar al Everest buscando desde allí pendientes más elevadas y lagunas, es mucho mayor que si partes de Madrid, así te evitas los Alpes, y los Urales.

Entonces si cojo un muestreo diferente. Por ejemplo. Hago una primera optimización sólo con datos de 2010, pero en paralelo hago otra con datos de 2009 YYYYYYYYY datos de 2010, estoy partiendo de otro sitio. De estas dos elegiré los montes más elevados. Así es como tienes que trabajar con tu algoritmo genético. Que es más trabajo, claro. La pregunta es si quieres subir 8000s o te conformas con montículos de 3000 ms. :)

El punto de partida lo es todo con el Algoritmo Genético. Y ojo, que un muestreo mayor, oséa coger datos de 12 años no implica el mejor valor. Obviamente un muestreo de un año es un punto de partida, también muy escaso.

Resumen

El algoritmo genético es de gran valor, pero lo tienes que usar con criterio y partiendo al menos de DOS o TRES puntos de partida diferentes, para buscar tu óptimo. Es decir muestras estadísticas de diferente cantidad de datos. Preferentemente conjuntos y subconjuntos de los mismos datos.

Por otro lado, si quieres afinar, necesitarás usarlo de muchas maneras, no sólo optimizando Ganancia Neta, pero también optimizando en rangos paramétricos muy cortos (una vez te encuentras en tu cordillera montañosa) el DrawDown Máximo y también el Profit Factor. Si sabes combinar astutamente esos tres podrás conseguir resultados soprendentes, que te permitirán parámetros que luego en tu live, pagarán tu esfuerzo en horas, en dolaritos o euritos extra con menor DD y mayor frecuencia de trades en tu cuenta.

saludos cordiales,

EA-Billionaire
www.robot-de-forex.com/webinarios/lanzamiento1
www.youtube.com/robotdeforex
www.twitter.com/robotdeforex

 

 

 

 

 

 

Ya puedes descargar la guía "Cómo empezar en forex desde cero"

Si quieres saber qué es el forex y cómo operar en el mercado de divisas, te invitamos a que descargues de manera gratuita esta guía elaborada por el equipo de derivados de Rankia.

Descargar ahora 

 

  1. en respuesta a Isidrator
    - Ver mensaje
    #5
    Ea billionaire

    Hola Isidrator,

    claro que el algoritmo genético tiene sus limitaciones. Sin embargo, se obtienen óptimos excelentes sabiendo trabajar con él. Hay que partir de muchos puntos de partido, muchos más que 3 y saber lo que haces.

    En cualquier caso en breve daremos webinarios sobre el tema del algoritmo genético, espero puedas asistir.

    saludos cordiales,

    EA-Billionaire
    www.robot-de-forex.com/webinarios/lanzamiento1
    www.youtube.com/robotdeforex
    www.twitter.com/robotdeforex

  2. #3
    Isidrator

    Quien me iba a decir que me encontraria con algoritmos evolutivos aplicados a las finanzas, en resumen, son algoritmos de optimización, buscan un minimo o maximo global, lo que ocurre es que computacionalmente es imposible buscar en todo el espacio de busqueda asi que casi siempre obtendremos un minimo/maximo local, 3 puntos de partida es poco si el tiempo de proceso es rapido, cuantos mñas puntos de partida tengais mejor será el resultado final. Si teneis curiosidad buscad el algoritmo de las colonias de hormigas o el de la bandada de aves o peces, son ideas ingeniosas que nos recuerda que la naturaleza a veces es más lista que nosotros.

    Saludos

  3. #2
    Economyforex

    Mil gracias por esta explicación. Ahora entiendo mucho mejor el funcionamiento del AG y por tanto es posible pensar en diferentes formas de aprovecharlo.

  4. #1
    Chpforex

    joder macho ahora lo veo todo un poco más claro y nunca hubiera pensado de esta manera. Te agradezco que compartas tu conocimiento con nosotros de forma gratuita.

    Muchas Gracias y sigue escribiendo artículos que sigamos aprendiendo y creciendo

Autor del blog
  • Ea billionaire

    Trader Automático a tiempo completo en el mercado Forex. Conferenciante de temas Forex, trading automático. El gurú en habla hispana de los EAs - Sistemas Automáticos de Trading.

Envía tu consulta

El blog especializado de EAs en español. Esperamos tus aportes y participación. saludos cordiales, EA-Billionaire
Este sitio web usa cookies para analizar la navegación del usuario. Política de cookies.
Cerrar