optimizar

Para obtener los mejores resultados de nuestro EA necesitamos conocer los parámetros óptimos para cada mercado, los backtesting nos permiten probar nuestra estrategia en históricos de precios que llegan hasta años en tan solo unos minutos.

Nuestra plataforma necesitará los datos históricos de precios para utilizarlos en el test. Abrimos el Centro de Historiales en el menú Herramientas » Centro de Historiales, o pulsando F2. Encontraremos el histórico de precios de multitud de instrumentos. Desde aquí podemos descargarlos todos aunque realmente no es necesario pues como veremos la consola de backtesting lo hace automáticamente por cada combinación de timeframe e instrumento que utilicemos (por ejemplo EURUSD 15M).

La consola de backtesting (Prueba de estrategia) de MetaTrader nos permite probar miles de combinaciones de configuraciones de Expert Advisors. Sin embargo las optimizaciones aun cuando muestren resultados positivos no implican garantía, solo pueden ser estimadas como una probabilidad mayor de obtener beneficios. Las condiciones del mercado son dinámicas y van cambiando, por lo tanto los EA deben ser reoptimizados cada cierto tiempo.

Optimización

Para optimizar un EA abrimos la consola de backtesting desde Ver » Prueba de estrategia, o pulsando Ctrl+R. A continuación:

  1. Seleccionamos el EA en el menú desplegable Asesor Experto.
  2. El instrumento en el menú desplegable Símbolo.
  3. El periodo de tiempo en el menú desplegable Período.
  4. En Modelo podemos elegir Sólo precios de apertura generalmente o Cada tick para una mayor precisión (tardará mucho más tiempo y no todos los EA lo necesitan).
  5. Marcaremos la casilla Utilizar datos y a continuación establecemos los rangos de fecha.
  6. El modo visual se activa en la casilla Modo visual, nos permite ver la simulación con controles de avance rápido y pausa.
  7. Finalmente marcamos la casilla Optimización y hacemos click en el botón Propiedades del experto para configurarlo.

Nos encontramos un menú con tres pestañas: Prueba, Entradas y Optimización.

En la pestaña Entradas encontraremos para cada parámetro del EA cuatro columnas: Valor, Iniciar, Paso y Detener. Junto a cada parámetro hay una casilla para marcar si queremos optimizarlo o dejarlo fijo. Si dejamos fijo el parámetro utilizará el valor de la columna Valor, si lo marcamos para optimizar utilizará Iniciar, Paso y Detener.

optimizacion

Estas tres columnas determinan para cada parámetro qué optimizaciones se realizarán. Supongamos que nuestro EA utiliza una media móvil simple SMA, esta media tiene entre sus parámetros el periodo (número de barras sobre la que se aplica), optimizamos este parámetro introduciendo, Iniciar: 10; Paso: 5; Detener: 100. Esto hará que el optimizador haga pruebas con el periodo de la media tomando los valores 10, 15, 20, 25, 30, 35… hasta 100. Como se ve Iniciar es el primer valor que tomamos, Detener es el límite para las pruebas y Paso es el incremento.

El resto de pestañas, Prueba y Optimización configuran otros parámetros interesantes para el test como son el depósito inicial, el objetivo a optimizar (riesgo, beneficio, drawdown, etc) y algunas restricciones como sólo operar compras y no ventas por ejemplo.

Tras seleccionar todos los parámetros que queremos optimizar pulsaremos el botón Inicio, el optimizador se pondrá a trabajar informándonos del número de optimizaciones totales que realizará, las que ya ha realizado, el tiempo que ha consumido y el estimado que le falta para terminar su cálculo. Las optimizaciones son lentas y están en función de la complejidad del EA y de la cantidad de parámetros a optimizar, es normal optimizar durante 1 hora o incluso más de un día. Una computadora potente con un procesador rápido y bastante memoria RAM libre aligerará sensiblemente el tiempo dedicado a las optimizaciones.

Backtesting

Al terminar la optimización podemos observar los resultados en la pestaña inferior Resultados de la optimización. Ordenamos los resultados en función de nuestras preferencias, Profit Factor, Profit, Total Trades, etc, y seleccionamos uno haciendo doble click. Automáticamente los parámetros de esa optimización quedan cargados en la columna Value de la consola de backtesting (si observamos la casilla Optimization se ha desmarcado) y podemos proceder a hacer backtesting de esa optimización pulsando el botón Start.

Una vez terminado el backtesting podemos observar el gráfico de rendimiento en la pestaña Graph y el informe final en la pestaña Report.

Para estimar la calidad de un EA tenemos que entender los resultados de su backtesting, es tentador observar el beneficio total obtenido pero este dato por si solo no es válido, un EA con gran beneficio a costa de un alto riesgo puede no ser tan conveniente como otro EA con beneficios más modestos y riesgo mínimo.

Expected Payoff: Este ratio muestra la ganancia esperada para cada operación que abrimos. Si multiplicamos el total de operaciones abiertas por el Expected Payoff obtendremos el o beneficio total neto (Total net profit ).

Profit Factor: El cociente entre el beneficio bruto (Gross profit) y la pérdida bruta (Gross loss). Un cociente por encima de 1 es necesario para un EA rentable, sin embargo es deseable acercarse al 2 y por supuesto superarlo, un cociente de 2 significa que el EA gana el doble de lo que pierde con sus operaciones.

Análisis de DrawDown

Un vistazo a la gráfica de equidad/balance sirve para hacer una primera aproximación al análisis de DrawDown. Una curva puntiaguda con picos y valles muy marcados es es resultado de un EA muy volatil que puede conseguir grandes beneficios en una racha para pasar a continuación a perderlos todos de golpe e incluso vaciar la cuenta. Por el contrario una curva suave, sin grande altibajos, es indicadora de un EA estable que afianza sus ganancias de forma continuada.

ea-volatil

ea-estable

Para cuantificar el análisis observaremos los siguientes parámetros:

  1. Absolute Drawdown: La diferencia entre el depósito inicial y el valor más bajo del balance.
  2. Maximal Drawdown: Es la mayor diferencia dada durante el histórico entre un pico y su valle.

El Maximal Drawdown va creciendo durante la operativa, en el siguiente gráfico podemos ver la progresión, el valor final está señalado por la flecha gruesa:

drawdown

La calidad del modelado es un factor importante a la hora de validar un backtesting. Para cuantificarlo observaremos:

Bar in test: Número de barras contadas en la prueba.
Ticks modelled: Número de ticks (cambio de cotización) utilizados en la prueba.
Modelling quality: Calidad del modelo en porcentaje, se calcula a partir de los datos utilizados (barras de minuto, cinco minutos, horas, etc).

modelado

Estas son algunas notas sobre el apasionante tema de la optimización… Si queréis más información podéis encontrarla en estos enlaces: