Optimización y Backtesting con Metatrader 4

0
136
Indicador personalizado de MT4

backtesting

¿Por qué realizar un backtesting?

Si queremos optimizar los resultados de los Expert Advisores (EA) que utilizamos lo primero que necesitamos es conocer los parámetros optimos para cada instrumento en que pensamos emplearlo de tal modo que podamos saber bajo que condiciones funciona mejor. Para lograr esto debemos recurrir a los backtesting que nos permiten probar nuestras estrategias de trading en pocos minutos por medio de datos históricos de precios a los cuales tiene acceso la plataforma Metatrader 4. La aplicación nos permite usar el conjunto y la cantidad de datos que deseemos, correspondientes a unos días hasta años incluso.

Con el fin de poder realizar un backtesting nuestra plataforma logicamente necesitará los datos históricos de precios para utilizarlos durante la evaluación. Para esto debemos abrir el “Centro de Historiales” (History Center” ubicado en el menú Herramientas (Tools). Esto también lo podemos realizar apretando la tecla F2. Ahi podremos encontrar los datos históricos de los precios de gran cantidad de instrumentos los cuales pueden ser descargados si así lo deseamos. Sin embargo como veremos a posteriormente esto no es necesario ya que la consola de backtesting lo hace de forma automática para cada instrumento y marco de tiempo que se quiera emplear durante el análisis, por ejemplo el GBP/USD en 1Hora.

La consola de backtesting para probar nuestras estrategias de trading en Metatrader 4 permite evaluar infinidad de combinaciones y tipos de Expert Advisor lo que le abre inmensas posibilidades al usuario que sepa programar en MTQ4. Mediante el backtesting podemos determinar si un EA aún requiere trabajo de programación para mejorarlo y así conseguir su optimización. No obstante, hay que aclarar antes de continuar que las optimizaciones aún cuando mejoran los resultados de los EA no implican una garantía absoluta, solamente aumentan las probabilidades de obtener ganancias al utilizar determinado EA. Hay que tener en cuenta que las condiciones del mercado son muy cambiantes y por lo tanto no es posible (al menos por el momento) producir un EA que se adapte y funcione en todas las situaciones. Por tal motivo es necesario optimizar cada cierto tiempo.

Optimización de los Expert Advisors

Con el fin de optimizar un EA debemos abrir la consola de backtesting desde “VER” (View) en donde encontraremos la casilla “Prueba de estrategia” (Strategy Tester) la cual podemos activar con un click.  También podemos activar el Strategy Tester por medio de las teclas Ctrl+R. Una vez que tengamos abierta esta función procedemos a hacer lo siguiente:
  • Seleccionamos el EA que deseamos evaluar por medio del menú desplegable “Asesor Experto” (Expert Adviser).
  • Seguidamente seleccionamos el instrumento en el menú desplegable “Simbolo” (Symbol).
  • Después escogemos el periodo de tiempo en el menú desplegable “Tiempo” (Period).
  • En el siguiente paso, en la casilla que dice “Modelo” (Model) podemos elegir “Solo los precios de apertura” (Open prices only), “Cada Tick” (Every Tick) y “Punto de control” (Control Point) para especificar que datos debe leer el sistema a la hora de hacer la prueba. De los tres tipos de lectura, el que dice “Cada Tick” es el que brinda mayor precisión ya que toma en cuenta cada dato del periodo que se especificará posteriormente. Logicamente toma más tiempo y no todos los EA lo necesitan. Generalmente el modelo más usado es el de “Solo los precios de apertura” ya que es más rápido aunque no tan preciso. Por su parte el método de “Punto de Control” proporciona un análisis bastante crudo que no debe ser tomado en cuenta, sirve solamente para darse una idea.
  • Luego marcamos la casilla “Utilizar datos” (Use date) y establecemos el rango de fechas para determinar los datos del mercado del periodo de tiempo que nosotros queramos.
  • Después del “Utilizar Datos” aparece otra parte importante del Strategy Tester, el “Modo Visual” (Visual Mode) el cual nos permite ver el proceso de simulación con controles de avance rápido y pausa por si queremos detener la simulación de forma momentanea.
  • Posteriormente apretamos la tecla “Propiedades del Experto” (Expert Properties) para que nos aparezca una ventana con el nombre del EA y tres pestañas: “Iniciar” (Testing), “Entradas” (Testing )y “Optimización” (Optimization). De esta forma podemos configurar los parámetros de la optimización para que brinde los mejores resultados posibles.

En la pestaña de Entradas podremos observar para cada parámetro del EA unas cuatro columnas: “Valor” (Value), “Iniciar” (Start), “Paso” (Step) y “Detener” (stop). A la par de cada parámetro hay una casilla que siver para indicar si queremos optimizarlo o dejarlo fijo. En caso de que dejemos fijo el parámetro empleará el valor de la columna “Valor” pero en caso contrario empleará para la optimización los valores especificados en “Iniciar”, “Paso” y “Detener”.

En la siguiente imagen se puede observar como luce el Strategy Tester y las diferentes partes que lo componen:strategy tester Metatrader4

Haga click para agrandar la imagen

Seguidamente se muestra una imagen de la ventana “Propiedades del Experto” y de las secciones que contiene donde se pueden modificar sus parámetros:

Haga click para agrandar la imagen

Las columnas “Iniciar”, “Paso” y “Detener” permiten establecer para cada parámetro del EA que optimizaciones realizará el sistema. Para entender esto vamos a utilizar como ejemplo el indicador IMScalper empleado en la sección donde explicamos como instalar un Expert Advisor.En este caso, vemos que utiliza un indicador llamado MATrendPeriod del cual podemos modificar el parámetro del periodo (número de candelas sobre las que se aplica la media móvil) y que podemos optimizar introduciendo los siguientes valores: Iniciar 5, Paso 5 y Detener 200.

Con esto, una vez que se corra la simulación del Expert Advisor efectuará pruebas con el periodo de la MATrendPeriod asignandole diferentes valores que iran incrementandose en 5 periodos hasta llegar a 100, es decir que la prueba será corrida con un MATrendPeriod con los siguientes valores para su periodo: 5, 10, 15, 20, 25…190, 195 y 200. Como probablemente ya dedujeron Iniciar es el primer valor que el sistema va a emplear, Paso es el incremento en cada prueba y Detener es el límite máximo de las pruebas, es decir el valor más elevado que va a tomar el parámetro a optimizar.

Las otras pestañas de la ventana “Propiedades del Experto, “Prueba” y “Optimización”  sirven para configurar otros parámetros del EA como el objetivo a optimizar (beneficio, pérdida máxima, riesgo y otros), el depósito inicial y ciertas restricciones como solo realizar operaciones de compras y no de ventas por ejemplo o viceversa.

Después de haber seleccionado los parámetros que se quieren optimizar, se aprieta el botón de “Inicio” en el Strategy Tester y el optimizador comenzará a trabajar de inmediato mientras nos informa del número de optimizaciones que realizará, las que ya ha efectuado, el tiempo que falta para terminar el proceso y el tiempo consumido. La duración de las optimizaciones dependen de la complejidad del EA, de la cantidad de parámetros a optimizar  y de la potencia de la computador. Debido a esto las optimizaciones pueden durar desde 1 hora hasta un día o más.

Backtesting de los Expert Advisors

Una vez que finaliza la optimización, se pueden observar los resultados obtenidos en la pestaña inferior “Resultados de la Optimización”. Seguidamente podemos ordenar los resultados de acuerdo a nuestras preferencias y ciertos criterios como por ejemplo Profit, Profit Factor, Total Trades, etc, y escogemos uno de ellos haciendo doble click sobre el. De forma automática los parámetros obtenidos durante la optimización son cargados en la columna “Value” de la consola de backtesting e inmediatamente podemos comenzar con el backtesting de la optimización al apretar el botón “Start”.

Una vez que finaliza el backtesting, se puede observar el gráfico de rendimiento mediante la pestaña “Gráfico” (Graph) y el informe final por medio de la pestaña “Reporte” (Report). Con el fin de determinar el posible rendimiento que nos puede brindar un EA que tengamos, es necesario entender correctamente los resultados del backtesting. Si bien en un inicio puede resultar tentador observar unicamente el beneficio total obtenido luego del backtesting, la realidad es que no nos podemops guiar unicamente por este dato a la hora de evaluar un EA. Por ejemplo, si un EA produce un gran beneficio pero tiene un riesgo muy elevado que pueda vaciarnos la cuenta, puede que no sea tan conveniente si se compara con un EA cuyos beneficios sean menores pero con un riesgo mucho menor.

Existen algunos terminos que deben ser tomados en cuenta a la hora de analizar los resutados de un backtesting entre los cuales destacan los siguientes:

  • Profit Factor:Este es el cociente que se obtiene al dividir el beneficio mutuo (Gross Profit) entre la pérdida bruta (Gross Loss). Para que el EA sea rentable es necesario que el Profit Factor sea mayor a 1 e idealmente debe acercarse o superar a 2 de ser posible. Un cociente de 2 significa que el Expert Advisor normalmente durante sus operaciones gana el doble de lo que pierde.
  • Expected Payoff: Este es un radio que muestra la ganancia esperada por cada operación que abra el EA. Para obtener el beneficio total neto (Total Net Profit) se debe multiplicar el total de posiciones abiertas por el valor del Expected Payoff.

Análisis del drawdown de un EA

El primer paso para hacer un análisis del Drawdown de un EA es observar el gráfico Equidad/Balance producido después del backtesting. En caso de que este gráfico presenta una curva puntiaguda con picos y valles destacados lo más seguro es que el EA sea demasiado volátil lo cual significa que permite obtener grandes beneficios en algunos momentos pero tambien presenta rachas de pérdidas tan grandes que probablemente acabarían haciendonos perder nuestras ganancias e incluso el capital de la cuenta de trading. Logicamente un EA tan inestable como este no es el que nos conviene.

Por el contrario, si el gráfico Equidad/Balance presenta una curva suave, sin grandes picos ni caidas, es un indicativo claro de que el EA es estable y produce ganancias de manera constante y contínua. Este tipo de EA es el que más nos conviene ya que si bien no nos producirá ganancias espectaculares de un día para el otro, a largo plazo nos permitirá obtener beneficios constantes con un riesgo bajo para nuestro capital.

Claro está que este es un análisis un poco subjetivo, si queremos cuantificarlo debemos estudiar los siguientes parámetros obtenidos del backtesting:

  • Maximal Drawdown: Constituye la mayor diferencia producida durante el periodo del análisis entre un pico (ganacia) y su valle correspondiente (pérdida). Entre mayor sea el valor del Maximal Drawdown, más volatil es el EA.
  • Absolute Drawdown: Este importante parámetro es la mayor diferencia entre el depósito inicial y el valor más bajo del balance obtenido para el periodo histórico usado en la optimización y el backtesting .
Hay que tomar en cuenta que la calidad del modelado es un aspecto fundamental a la hora de efectuar la validación de un backtesting. Para cuantificar el modelado se observan los siguientes factores:
  • Bar in test: Es el número de barras/candelas que son tomadas en cuenta durante la prueba.
  • Ticks modelled: Es la cantidad de ticks (variación en la cotización) empleados durante la prueba.
  • Modelling quality: Es un porcentaje que expresa la calidad del modelo y es calculado a partir de los datos utilizados en el análisis que pueden ser barras/candelas de 1 minuto, 5 minutos, 15 minutos, 1 hora, etc.
 
Con esto finalizamos por el momento el tema de la optimización y el backtesting, posteriormente detallaremos algunos aspectos importantes que deben ser tomados en cuenta cuando efectuamos el análisis de un Expert Advisor.

Raul Canessa

Leave a reply