Algoritmos genéticos en trading

Índice

Entre los tipos de algoritmos que hay, los algoritmos genéticos son los que han ganado más popularidad en los últimos años dentro del mundo del trading.

Cada vez más traders los usan para crear y optimizar sus sistemas dentro de la industria. Si esto te suena a chino, vamos a bajarlo a tierra.

¿Qué tienen que ver los algoritmos genéticos con la optimización de mi sistema de trading?

Más de lo que imaginas. La cantidad de indicadores y reglas que puedes utilizar para crear su sistema de trading a partir de estos indicadores es tan grande que es casi imposible probarlas todas.

Intentar testear todas las reglas para encontrar la que te de mejores resultados requiere de mucho tiempo y sobre todo un equipo de gran capacidad de cálculo que no está al alcance de todo el mundo.

Aquí es donde los algoritmos genéticos entrar a hacer su magia. Encuentran en poco tiempo la mejor solución o la más cercana a ella, dentro de un universo de combinaciones.

1. ¿Qué es un algoritmo genético?

Comencemos por la base de todo: qué es algoritmo.

Un algoritmo lo puedes ver como un conjunto de reglas o pasos muy bien estructurados, que describen exactamente cual es la ruta o proceso a seguir para encontrar la solución a un problema concreto.

Ahora, vayamos a por los algoritmos genéticos.

Los algoritmos genéticos, desarrollados por John Holland en el año 1975, están basados o inspirados en la teoría de la evolución genética o selección natural de los seres vivos para buscar o encontrar la solución más óptima dentro de un conjunto de posibles soluciones.

Son un tipo de algoritmo que pertenece a la familia de la computación evolutiva. Esto quiere decir que van evolucionando con el tiempo, y van adaptando la solución del problema hasta encontrar la mejor.

2. Características de los algoritmos genéticos

Estas son las principales características de los algoritmos genéticos:

  • Son aleatorios. Los procesos de búsqueda de la mejor solución no están atados a una regla en particular si no que lo hacen aleatoriamente hasta encontrarla.
  • Consideran un conjunto de posibles soluciones. Existe más de una solución al problema y combinando algunas de ellas se puede encontrar una mejor solución.
  • Cuando se implementan estos algoritmos no se sabe con certeza porqué han tenido éxito o porque han fallado.

El tercer punto es importante, no podemos encontrar una causalidad en nuestra búsqueda. Sigamos…

3. Cómo funcionan los sistemas de trading con algoritmos genéticos

Para entender como funcionan los algoritmos genéticos es necesario entender antes algunas cosas que vamos a ver con un ejemplo.

Imagina que una persona es representada por un cromosoma y este cromosoma por un conjunto de genes.

Piensa en los genes como el desarrollo de una cualidad (el color de la piel, el color de los ojos la estatura, etc.).

Si dos padres son de baja estatura, existe una probabilidad muy alta que sus hijos sean bajos también. Si dos padres son de piel blanca lo más probable es que sus hijos sean de piel blanca, este proceso de transferir sus cualidades y características son el principio de la herencia.

Pero también pueden ocurrir alteraciones o mutaciones aleatorias en la transmisión de genes de padres a hijos. Esta mutación modifica los genes del hijo y permite la aparición de personas con nuevas cualidades distintas a la de los padres. Este es el principio de la variabilidad.

El proceso de selección natural le permite a una especie adaptarse al medio ambiente. Los individuos más aptos o fuertes tienen una alta probabilidad de tener hijos fuertes en la siguiente generación. Los individuos menos aptos o débiles tienen menos probabilidades de tener hijos en la siguiente generación.

Estos principios de la teoría genética que te acabo de mencionar, los debemos tener muy claros porque nuestro algoritmo genético debe cumplir con ellos. Entonces, un algoritmo genético funciona así:

  • Inicialización: generamos una población inicial aleatoria de individuos constituida por el conjunto de soluciones candidatas a resolver el problema.
  • Evaluación: clasificamos a estos individuos según el criterio a optimizar aplicando una función de aptitud, conocida como función fitness, para determinar cuánto de buena es una solución.
  • Selección: elegimos los individuos que serán cruzados de acuerdo al valor de la función de aptitud. Los individuos mas óptimos, o con mejor aptitud, tienen mayor probabilidad de cruzarse que los menos óptimos.
  • Recombinación o cruce: combinamos los individuos seleccionados, de dos individuos/padres se obtienen dos hijos que combinan las características de ambos padres. El objetivo del cruce es crear nuevas poblaciones para llegar a nuevas posibles soluciones.
  • Mutación: se modifican aleatoriamente varios genes de algunos individuos para explorar nuevos posibles genes que produzcan posibles mejores soluciones que las encontradas hasta el momento y que no estaban cubiertas por los individuos de la población original o actual.
  • Reemplazo: una parte los individuos originales (o todos) son reemplazados por los nuevos y se seleccionan a los mejores para conformar la siguiente generación.
  • Condición de termino o parada: Cada ejecución de todos pasos anteriores es lo que definimos como una generación. El ciclo se detiene cuando se cumple el número máximo de generaciones o cuando no hay cambios en la población.

4. Cómo crear un sistema de trading con algoritmos genéticos

El problema de la creación y optimización en los sistemas de trading es parecido al problema de la selección natural de la teoría evolutiva. Por medio de la selección natural de una especie, los individuos más aptos se reproducen y transmiten sus genes a la próxima generación. Después de varias generaciones se reducen los parámetros óptimos para adaptarse al medio ambiente.

Imagina que quieres diseñar un sistema de trading en un determinado par de divisas y en un gráfico de barras de 15 min para entrar largos al mercado sólo cuando ocurra una corrección en un mercado alcista.

Antes de continuar quiero aclarar que no debes confundir el algoritmo de trading que incluye las reglas para entrar y salir del mercado, con el algoritmo genético que se encarga de encontrar los más óptimos o subóptimos.

Lo primero que debes hacer es definir las reglas de trading. Imaginemos que usas una media móvil simple, por ejemplo, 200 periodos y el indicador RSI (14 periodos).

Si el precio cierra por encima de la MA de 200 y el RSI por encima de 50 podemos decir que estamos en tendencia alcista, sin entrar en detalles para simplificar el ejemplo.

Combinando las dos condiciones anteriores obtenemos las reglas de nuestra estrategia de trading:

  • Comprar cuando el precio cierra por encima (mayor) de media móvil simple de 200 periodos y el RSI esté por debajo (menor) de 50.
  • No operar si no se cumple la regla anterior.

Los parámetros de entrada van a estar formado por el conjunto de parámetros de las reglas anteriores. Estos dos parámetros se van a optimizar utilizando algoritmos genéticos para intentar maximizar los beneficios de la estrategia.

El algoritmo intentara maximizar, porque a pesar que diseñemos bien nuestro algoritmo no tenemos garantizado que nos genere algún beneficio.

De esta forma, podemos saber cuáles serán los valores ideales del RSI, por ejemplo: en lugar de ser menor a 50 el algoritmo genético puede determinar que los mejores resultados se obtienen cuando el RSI es menor a 40. O igual usar el indicador MACD en lugar del RSI…

Los dos parámetros de entrada se codifican como un cromosoma. Esta codificación puede ser binaria o punto flotante (números reales) y consiste en un array con tantos elementos como parámetros se desean optimizar, en este ejemplo dos. El conjunto de valores de una solución se denomina un gen.

5. Ejemplo: algoritmos genéticos en Metatrader

En Metatrader 5, puedes acceder a la ventana del probador de estrategias con el atajo de teclado Ctrl + R. Esto te lleva a la siguiente ventana:

Si haces clic en la opción “Optimización Genética” puedes acceder a la configuración tal como se muestra en la siguiente ventana:

Metatrader selecciona automáticamente el algoritmo genético como método de optimización. Como ves, la plataforma ya indica que este es el método de optimización rápida, porque como te he comentado antes, no es necesario probar todas las opciones posibles para lograr la optimización.

Ahora sólo debes seleccionar un criterio de optimización entre todas las opciones como ves en la imagen:

Una vez configuras los parámetros les das “Empezar” y listo.

6. Conclusiones

Los algoritmos genéticos son una buena herramienta para encontrar soluciones óptimas o subóptimas con menos recursos. Si lo hacemos sin usar genéticos necesitaremos un equipo más potente y seguramente más tiempo, pero estaremos buscando la mejor solución posible a nuestro problema.

Al final, es una herramienta más. Tiene sentido para acortar plazos y recursos, pero no es el santo grial. Lo que de verdad importa es el qué, el porqué y el para qué, más que el cómo.

¿Has usado ya este tipo de algoritmos?

Te leo en comentarios, gracias por llegar hasta aquí.

Entradas relacionadas

Si quieres aprender más sobre esto, puedes apuntarte gratis aquí:

¡Comparte con alguien que lo necesite!

UN REGALO

LLÉVATE
2 ESTRATEGIAS
GRATIS

Descarga dos estrategias de trading para comenzar a aplicar. Con reglas muy sencillas, testeadas en los últimos años. Ahora en tu bandeja de entrada. Así empecé yo. Igual te sirve.