Archivo de la etiqueta: mql4

Backtesting usando Excel. Parte I.

¿Cómo puedo realizar el Backtesting de mi sistema?

Una de las tareas más importantes del trader y, tal vez, la menos glamourosa, el el testear con datos históricos su sistema de trading, lo que se conoce como backtesting.

Tradicionalmente, se ha conocido esa tarea como paper trading y el trader cual escribano, se pasaba horas y días enteros cotejando los valores, comprobando si se superaba tal o cual indicador y simulando decenas o cientos de operaciones.

escribano
Imagen: https://archivoshistoriapatrimonio.blogspot.com.es/

Sin embargo, ahora no es imprescindible gastar tanto tiempo, esfuerzo y humor en tan ardua tarea ya que pueden simularse los sistemas con programas como Metatrader.

Sin embargo, la utilización de Metatrader para testear sistemas, con su herramienta Probador de Estrategias requiere ser capaz de programar en lenguaje mql4 (un lenguaje de programación muy parecido al C) lo cual puede no estar al alcance de todo el mundo.

Sin embargo, existe un paso intermedio entre lo que sería el paper trading tradicional, es decir, simular con papel y bolígrafo las operaciones con los datos históricos, y el Probador de Estrategias de Metatrader. Este paso intermedio es la utilización de la hoja de cálculo Excel para simular estas operaciones.

Obviamente requiere tener ciertos conocimientos de Excel. Me atrevería a decir que no requiere que estos conocimientos sean avanzados pero, probablemente estaría incurriendo en alguna falsedad: sí, no nos engañemos requerirá tener un conocimiento algo avanzado de Excel ya que, al menos, tendremos que saber utilizar la función SI y la elaboración de fórmulas complejas.

En cualquier caso, para un usuario normal será más asequible (y útil en otros aspectos de la vida) aprender Excel que a programar eficientemente en mql4.

Definiendo nuestro sistema de trading

Para este artículo vamos a realizar el backtesting sobre las acciones de Telefónica de un sistema de cruce de medias muy sencillo.

Antes de comenzar es muy importante escribir pormenorizadamente cómo funciona nuestro sistema de trading para poder simularlo.

Nuestro sistema operará calculando la media simple de 20 períodos y la media exponencial de 10 períodos.

Cuando la media exponencial de 10 períodos (media rápida) cruce a la media simple de 20 períodos (media lenta) al alza entraremos largos al precio de apertura del día siguiente.

Cuando la cruce a la baja entraremos cortos al precio de apertura del día siguiente.

Mantendremos la posición hasta que se produzca un nuevo corte en sentido contrario y revertiremos la posición, o bien alcancemos el take profit.

Sistema de Trading cruce de medias móviles
Sistema de Trading cruce de medias móviles

Vemos cómo tenemos dos entradas comprando (las flechas que apuntan hacia arriba) y una vendiendo (la flecha que apunta hacia abajo).

Las compras se producen los días 19 de julio y 15 de septiembre, ya que los cortes de producen los días 18 de julio y 14 de septiembre.

La venta se produce el día 15 de agosto, habiéndose producido el corte el día 14.

Desde el 13 de junio (primera fecha del gráfico) hasta el 3 de octubre (fecha de la publicación de este artículo) habríamos realizado dos operaciones cerradas y nos mantendríamos cortos en el mercado.

Habríamos obtenido un beneficio de 0,183 + 0,367 = 0,550 € por acción.

NOTA:

Precio Apertura (15/08) – Precio Apertura (19/07) = 9,484 – 9,299 = 0,183

Precio Apertura (15/08) –  Precio Apertura(15/09) = 9,484 – 9,117 =  0,367

 

Obtención de los datos e incorporándolos a Excel

Para comenzar nuestro backtesting con excel, lo primero que vamos necesitar es partir de la cotización histórica del instrumento financiero que vayamos a analizar. Estos datos podemos obtenerlos uno a uno nosotros mismos a partir del gráfico de velas (una labor tediosa) o podemos descargarlos de alguna web. Por ejemplo, en investing tenemos disponibles las cotizaciones de muchos productos financieros.

Si queremos saber los precios históricos de las acciones de Telefónica, podemos hacer clic en este enlace.

Histórico Telefónica
Cotización histórica de Telefónica. Fuente: Investing.com

Seleccionamos el tipo de vela (disponible Diario, Semanal y Mensual) y el rango de fechas.

Nos genera la tabla con los datos que podremos copiar y pegar en nuestra hoja de Excel o que podemos descargar en un archivo con formato csv.

Una vez tenemos los datos en nuestra hoja de cálculo comenzamos con la parte más complicada (y divertida) del backtesting.

Cálculo de la MA20 y la EMA10

En el día (o semana si nuestro gráfico es de velas semanales) que hace el número 20 (fila 21 en la imagen) colocamos la fórmula que nos calcule la media de las 19 velas anteriores y la del día 20 (lo estamos calculando a precio de cierre).

Después, basta arrastrar para disponer de los valores de la media móvil de 20 períodos.

Cálculo de la media móvil simple de 20 períodos con Excel

A continuación, calculamos la fórmula de la media móvil exponencial de 10 (EMA10).

Ahora la fórmula es algo más compleja y se hará siguiendo las siguientes consideraciones:

  1. El primer valor de la serie, en este caso el día 10 (fila 11 en la imagen) es la media simple de 10 términos.
  2. El segundo valor y posteriores se calcula utilizando la siguiente fórmula:

Fórmula de la Media Móvil Exponencial de 10 períodos

Siendo i el término que estamos calculando y n el número de términos totales.

Cálculo de la Media Exponencial de 10  términos en Excel
Cálculo de la Media Exponencial de 10 términos en Excel

Determinando el cruce de medias móviles

Ya tenemos calculadas las dos medias móviles, ahora lo que haremos será buscar el punto de corte entre ellas. Para ello determinaremos la posición relativa de las medias, poniendo un 1 si la media rápida (la de 10 períodos) está encima de la lenta (la de 20 períodos) y un 0 si ocurre al revés.

Para ello usamos la función SI:

=SI(F21>G21;0;1)

Cuando se dé un cambio de 0 a 1 entraremos LARGOS y cuando se dé de 1 a 0 entraremos CORTOS.

De nuevo usaremos la función SI de esta forma:

=SI(H22<>H21;SI(H22=1;”LARGOS”;”CORTOS”);””)

Vemos que se produce un cruce al alza el día 14 de septiembre como ya habíamos visto en el gráfico.

tendencia y entrada por cruce de medias en Excel
Tendencia y entrada por cruce de medias en Excel

En el próximo artículo veremos cómo calcular beneficios, pérdidas y ratios. Para ello descargaremos los datos de las acciones de telefónica de todo el año y completaremos la hoja de cálculo.