Curso Gratuito - Trading IA

Optimización de estrategias

Manuel
Manuel 109 puntos
editado septiembre 2023 en Plataformas

Hola, hoy voy a comentar un aspecto del que no solemos hablar habitualmente.

Cuando estamos diseñando una estrategia suelen salir números "mágicos" que no sabemos muy bien como establecer. Por ejemplo los niveles del indicador RSI suelen ser 70, 50 y 30.

¿Estos son los mejores valores? A veces asumimos estos como valores válidos porque son los que vienen por defecto y los que siempre vemos en ejemplos.

Normalmente en las plataformas tenemos la opción de realizar una búsqueda de estos parámetros para encontrar valores que mejoren los resultados de nuestra estrategia.

Este proceso de búsqueda es el de optimización y no es más que establecer un rango de valores que queremos probar para estos parámetros y un valor a optimizar (normalmente el balance) y la plataforma hará las simulaciones necesarias para darnos los mejores valores para estos parámetros.

Un método para hacer esto es la "fuerza bruta" imaginemos que queremos probar estos tres parámetros del RSI en los rangos [65-75][45-55][25-35]. La plataforma va a hacer una simulación con cada una de las posibles combinaciones, por ejemplo RSI con los niveles [71-52-27]. Esto nos da un total de 1.331 simulaciones.

No sé vosotros, pero en mi equipo una simulación tarda sobre 1,5 minutos, por lo que esta optimización podría llevar unas 33 horas, 😴 puedes ir a dormir tranquilo.

Hay una opción para aliviar un poco esto obteniendo resultados bastante bueno. En metatrader y tradestation tenemos la optimización mediante algoritmo genéticos que son técnicas de inteligencia artificial para abordar problemas con demasiadas combinaciones obteniendo resultados bastante buenos.

Básicamente utilzan el modelo de combinación de los genes (de ahí su nombre) para pasar de una solución a otra posiblemente mejor hasta que encuentra un resultado.

Aquí dejo una imagen de optimización de mi estrategia de scanner en la que he optimizado 6 parámetros con un total de posibles combinaciones de 2.811.072 y ha tardado 18 minutos en obtener el resultado.

He mostrado los datos de distintas formas para que tengáis una idea de lo pontente que es esta herramienta. Lo muestro en metatrader, en tradestation no hay tantas posibilidades de visualización en gráficos y creo recordar que no ser puede ver cómo cambian los valores según cambian los parámetros que a mi modo de entenderlo es muy útil.

Podéis ver como varía el beneficio cuando cambias los valores de los parámetros y ver la relación entre ellos y en qué zonas se eleva el beneficio y cuáles baja.

Esta optimización podríamos decir que es el equivalente a la sobreoptimización de una Red Neuronal, por lo que las redes neuronales pueden aportarnos mejores resultados. Pero esto ya lo dejamos para otro post.

Bueno, espero que sea de ayuda.

Saludos.

Comentarios

  • Yo siempre que veo un histograma como el de la foto, y eligiendo la combinación de parámetros que da el resultado más alto, me da la impresión de que como cambie un poco el mercado, la estrategia deja de funcionar. 😅

    Entiendo que lo ideal sería algo como una montaña, con un pico.

    Entonces habría que elegir los parámetros donde, si te mueves un poco, sigas teniendo buen resultado.

    También decir que esta tarea de elegir parámetros de este modo se complica cuando tienes más de dos...

    Tiene metatrader alguna herramienta que ayude a elegir en base a ese criterio?

  • Manuel
    Manuel 109 puntos

    Hola Sergio, tienes razón, cuando optimizamos un sistema siempre corremos el riesgo de sobreajustarlo.

    Date cuenta de que lo que llamas pico de la curva, es el máximo de una función que debe depender de todos tus parámetros. Si ajustásemos solo un parámetro sería una línea, si fuesen dos un plano y ya con tres pues vamos al lío.

    Lo que nos interesa es optimizar una función que dependa de aquellos parámetros que más influyen en el resultado. Cuando tenemos un sistema muy complejo, con muchas variables, es posible hacer una análisis de componentes principales

    Con estos análisis podemos reducir el número de variables y simplificar el proceso.

    Pero no me quiero liar, en metatrader puedes hacer un estudio visual cruzando el resultado con los valores para distintos parámetros en los gráficos de 1F, 2D y 3D.

    De una forma visual puedes ver cómo afecta al resultado el cambio de los parámetros y te haces una idea de cuáles son los valores óptimos.

    Normalmente este es un estudio previo al desarrollo de un modelo de red neuronal y ésta será la que determine la probabilidad de estar en una señal ganadora o perdedora.


    No sé si me explico. Haré un estudio y lo veremos.


    Saludos.

  • enormi
    enormi 183 puntos

    Creo que al final lo más importante cuando haces el proceso de optimización es tener muy claro desde el principio lo que estás buscando. La gran ventaja que supongo tienes tú, es que aquí el que llega a tener un sistema terminado, lo conoce como la palma de su mano y así es mucho más fácil saber por dónde tienes que tirar. Además es fundamental tener un plan, me refiero igual que tu trading plan, pero para la optimización, con el número de parámetros relevantes, rangos y demás. Se debe de buscar el mejor resultado con los parámetros mínimos y que mayor impacto tengan para que el sistema se mantenga robusto. En el momento en que nos pasamos añadiendo parámetros a la optimización es posible estar en el camino de la sobreoptimización.

    Yo antiguamente optimicé muchos sistemas en metatrader, sin conocerlos demasiado o nada y conseguí curvas de rendimiento que dan miedo. No valían para nada, pero aprendí.

    Ahora estoy aquí para aprender de nuevo☺️

  • Muy interesante Manuel estos aportes y el gran potencial que tienen estas herramientas.👏

    A mi aún se me escapan estas cosas por mi poco conocimiento en programación.

    Os sigo leyendo.