Archivo de la etiqueta: trading paper

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.

Operativa de trading: cruce de EMA40 y EMA18

Bueno, en este artículo vamos a describir pormenorizadamente la primera operativa de este blog. Según nuestras estadísticas en lo que va de año 2016 (hasta octubre) tiene una esperanza matemática positiva en cualquiera de sus tres modalidades de salida.

Lo hemos analizado para gráficos de 4 horas en el SPX500.

El sistema (como todos) es muy sencillo: simplemente se trata de buscar el punto de corte entre dos medias móviles exponenciales, la de 40 períodos (EMA40) y la de 18 períodos (EMA18). Aunque pueden ajustarse los períodos de ambas medias, nosotros recomendamos sobre todo el de la EMA40 ya que es muy utilizado también como soporte / resistencia por lo que se trata un poco de la “profecía autocumplida” del análisis técnico.

En fin buscamos el punto donde ambas medias se cortan: Si la EMA40 queda por debajo estamos entrando en tendencia alcista por lo que entramos largos (compramos). Si, por contra, la EMA40 queda por encima entramos cortos (vendemos).

Cruce EMA40 y EMA18 trader paper

Puede ocurrir que el precio esté más alto o más bajo que el punto de corte. Es decir, por ejemplo, el día 9 de septiembre de 2016 a las 12:00 en gráfico de 4 horas, las EMA40 y las EMA18 se cortaron en 2180 siendo su precio inferior éste. Como quiera que la EMA40 se puso encima de la EMA18 nos hubiésemos puesto cortos a un precio de 2175.

A la hora de salir existen tres variedades:

  1. Salir cuando el precio corte a la EMA40, colocando sucesivos Stops Loss y Stops Wins según esta va a cambiando. Es decir, colocamos el primer SL en el valor de la EMA40, esto es, 2180. Solemos elegir un precio un poquito mayor, por lo que los pondríamos en 2182.
  2. Salir cuando las dos EMAs vuelven a cortarse. En este caso no colocamos Stop Loss (o los colocamos muy alejados) debiendo estar muy pendientes de la evolución de ambas medias.
  3. Salir cuando hemos obtenido una ganancia objetivo o ha saltado un Stop (ya sea SL o SW). Es decir, a la entrada colocamos una compra o una venta, dependiendo de si estamos cortos o largos, en el promedio del máximo (o el mímimo) del histórico producido en esta estrategia para el gráfico y valor analizado. En el caso del SPX500 en gráfico de 4h es de 29 ptos si lo hacemos por salida con cruce de precio con EMA40 o de 37 si lo hacemos por cruce de ambas medias. Así pues, colocamos nuestra salida limitada entre 29 y 37 puntos.

Vamos a analizar el ejemplo de trading paper que hemos puesto, en cada una de las tres opciones de salida.

  1. Recordamos que hemos vendido a  2175, colocamos el Stop Loss en 2182 y dejamos correr moviendo los Stops a 2165 a las 8:00 del día 12 (ya sería Stop Win), etc. el corte del precio con la EMA40 está a punto de producirse a las 20:00 pero no llega a saltar el SW, produciéndose definitivamente a las 16:00 del día 15 a un valor de 2147. Resultado: 2175 – 2147 = +28 ptos.
  2. En la segunda opción de salida buscaremos el corte de las dos medias, que se produce el día 21 a las 20:00 a un valor de 2145. Resultado: +30 puntos.
    cruce ema40 y ema18 trader paper salida
  3. Por último, si hubiésemos colocado una compra limitada a -29 puntos, es decir, a 2146 ésta se hubiese producido el propio día 9 a las 20:00. Incluso si hubiésemos colocado la compra limitada a -37, es decir, a 2138 también se habría dado el mismo día a la misma hora. Cuando utilizamos esta última técnica de salida hemos de ser muy flexibles y estar muy atentos al mercado, colocando Stop Wins agresivos, por ejemplo, a la mitad del mínimo al que aspiramos mientras movemos el mínimo más hacia abajo. En este caso, el mínimo que se produjo fue a 2108, que nos hubiese dado un  beneficio de 67 puntos.

Hay que tener muy clara una de las máximas del trading que nos dice que es imposible comprar en mínimos y vender en máximos, por lo que ese no ha de ser nuestro objetivo sino acotar las pérdidas y dejar correr las ganancias y que “el último euro se lo lleve otro“.

Tenemos que tener presente que esta estrategia de trading produce bastantes señales falsas por lo que hemos de estar preparados para rachas de pérdidas y ser persistentes.

A continuación os muestro una tabla con la operativa trader paper de SPX500 con gráfico de 4h en lo que va de año 2016.

Cruce de las medias móviles exponenciales EMA40 y EMA18

La última operación de la tabla es la que acabamos de explicar.

Además, en la tabla se han marcado en rojo aquellas operaciones que nos hubiesen dado pérdidas con los dos primeros métodos.

Estadísticamente vemos que con el método de salida 1, es decir, cuando el precio corta con la EMA40 obtenemos 14 operaciones positivas y 6 negativas, lo cual nos da un 70% de operaciones en verde, con una media de ganancias de  9,8 ptos y un beneficio en lo que va de año (hasta octubre de 2016) de 196 ptos.

El método de salida 2, el  cruce de EMA40 y de EMA18 nos da un porcentaje menor de operaciones positivas, el 60%, pero un mayor beneficio en cada una de ellas, obteniendo un promedio de 14,15 puntos, para un total de 283 puntos totales.

El tercer método, el de la venta limitada, lo dejamos para que lo analice el lector.