Como realizar un backtesting en Metatrader 4 de calidad

IndicatoriNosu julio 03, 2010 6 Comentarios
Compártelo: Facebook GoogleTwitterEmail

En el artículo de hoy quiero mostraros como se realiza un backtesting de calidad en Metatrader 4. Todos lo que usamos Metatrader hemos usando el satrategy tester alguna vez para probar algún sistema automático (Expert Advisor), sin embargo los resultados obgtenidos en dicha prueba no son siempre los más fiables. El mejor parámetro para determinar la calidad de los resultados de las pruebas de Expert Advisors en Metatrader es el modelling quality cuyo valor puedes ver en el informe final del strategy tester en la esqwuina superior derecha. El valor de la calidad del backtesting debe estar por encima de 90% para que se pueda considerar como un backtesting de calidad siendo el óptimo un 99% (nunca o casi nunca se llega al 100%).

El backtesting de Metatrader se realiza utilizando los datos históricos de todos los timeframes inferiores al timeframe en el que vas a realizar la prueba y, por tanto, gran parte de la calidad del backtesting viene determinada por la disponibilidad de dichos datos para el período elegido para el backtesting. Así, si voy a realizar un backtesting de un EA para el período 1 de Enero de 2009 y 1 de Febrero de 2010 en gráficos de 1 hora, el estrategy tester intentará utilizar los precios históricos de apertura, cierre, máximo y mínimo de las velas de gráficos de 60, 30, 15, 5 y 1 minutos perdiéndose calidad en los resultados del backtesting cuando los datos de los diferentes timeframes no estén disponibles. Ahora explicaré como conseguir un modelado de calidad de al menos el 90% utilizando los datos históricos de velas M1.

Lo primero que se ha de hacer es obtener el histórico de gráficos M1 de tu broker. Para ello hay varias vías:

  • Colectar los datos M1 en tiempo real: tendrás que tener un gráfico M1 abierto y esperar a que el tiempo pase y se vayan acumulando los datos minuto a minuto, día tras día hasta que consideres que tienes datos suficientes para tu backtesting. Esta es, sin duda, la vía menos viable.
  • Descargar los datos M1 utilizando el desplazamiento lateral en el gráfico. Mediantes este método no consigues descargar datos de más de dos meses, puede que tres, para un instalación nueva de Metatrader por lo que tampoco se adapta a las necesidades de la inmensa mayoría de nosotros.
  • Descargar los datos M1 a través del history center : a través del history center de Metatrader se pueden descargar los datos del timeframe que quieras pero con varios problemas: la cantidad de datos puede estar limitada y no todos los brokers tienen habilitada esta función. Si tu broker tiene deshabilitada esta función los datos se descargan desde metaquotes y pueden estar desincronizados con la zona horaria de tu broker. Por tanto, esta tampoco es la mejor opción pero puede valer si tu broker lo ofrece.
  • Descargar los datos M1 desde la base de datos de tu broker de forma externa. Esta es la mejor opción. Pregunta a tu broker como y donde puedes acceder a la descargar de los archivos con los históricos de precios de velas M1.

Procedamos pues con los pasos para realizar un backtesting de calidad:

  1. Instala un Metatrader a parte del que uses normalmente, para ello simplente especifica una carpeta de instalación diferente al instalar Metatrader. No abras ninguna cuenta demo ni real. Si lo abres cierralo.
  2. Ve a a la carpeta Archivos de programa>Metatrader4>history>Servidor y borra todos los archivos con nombre de un par de divisas, no borres symbols.sel nisymgroups.raw. Borra también todos los archivos de la carpeta downloads en metatrader4>history>downloads
  3. Descarga los datos mediante la opción del punto 4 de las mencionadas anteriormente o mediante la opción del punto 3 si tu broker ofrece esta descarga de forma adecuada. Los datos descargados se guardarán en la carpeta archivos de programa>Metatrader>history>downloads.
  4. Abre Metatrader. Te aparecerá la ventana para abrir una demo, cierra dicha ventana. Las ventanas de gráficos no deben mostrar nada pues has borrado los datos en el paso dos.
  5. Ve a Herramientas>Opciones y pincha sobre la pestaña gráficos. Por el máximo en los campo “Max. barras en historial” y en “Max. barras en gráfico”. Para poner el máximo no selecciones de las opciones sino que escribe en la casilla tantos 9 como te deje el programa. Pulsa Aceptar.
  6. Ahora ve a Herramientas>History Center. Despliega hasta que encuentres el par de divisas cuyos datos has descargado y selecciona dicho par. Al seleccionar el par no haber aparecer ningún dato pues los borrastes en el paso 2. Haz clic en el botón Importar. Se abrirá una ventana en la que debes seleccionar el archivo descargado. Una vez cargado dicho archivo pulsa Aceptar y otra vez Aceptar.
  7. Al no tener ninguna cuenta abierta no habrá conexión con ningún servidor. Ve a Archivo>Abrir sin conexión y selecciona el par de divisas con el que has estado trabajando durante todo el proceso en la opción en la que aparezca M1.
  8. Ahora debes ejecutar el script “period converter” en el gráfico M1 para pasar los datos a temporalidades superiores (este script viene incluído en Metatrader, mira bajo la lista de Asesores Expertos e Indicadores Personalizados). Debes ejecutar el script una vez por cada temporalidad que quieras construir y es necesario tener los datos de la temporalidad en la que vayas a realizar la prueba y en todas las temporalidades inferiores. Así, si vas a realizar la prueba en gráficos H1 deberás ejecutar el script period converter 4 veces: para 5, 15, 30 y 60 minutos. Cada vez que ejecutas el script debes introducir en los parametros del script el número de minutos para la conversión: 5, 15, 30, 60, 240, etc.
  9. Tras realizar el paso 8 ve a Archivo>Abrir sin Conexión y podrás abrir todos los gráficos del par de divisas y timeframes para lo que hayas realizado el paso 8. Abre el gráfico en el que vayas a realizar el backtesting, añade el Expert Advisor que vayas a probrar y Feliz Backtesting.

Un modelo del 90% de calidad es suficientemente aceptable. No obstante si quieres obtener el 99% hay un tutorial que explica el proceso utilizando los datos de Dukascopy. Un proceso mucho más engorroso y que bajo mi punto de vista no ofrece demasiadas ventajas pues para la mayoría de EAs un 90% es más que suficiente. No obstante, EAs con estrategias de scalping pueden ser extermadamente sensibles a cambios muy pequeños en los precios y puede que necesites llegar al 99% de calidad en el backtesting, si este es tu caso aquí tienes el enlace al mencionado tutorial: Como obtener un 99% de calidad en el backtesting

OJO!!! que obtener una buena calidad del backtesting no significa que los resultados del EA vayan a ser positivos!!!

Mostrar Mas