Backtest – ¿Qué es un Backtest?

Backtest – ¿Qué es un Backtest?

Qué es un backtest

Hay un concepto para aprender a hacer trading muy interesante que lo mismo te interesa conocer. Qué es un backtest.

Bien.

En esta entrada... vas a entender qué significa el anglicismo backtest o backtesting que lo podríamos traducir por algo así como "prueba con datos históricos".

También vas a ver cómo se hace y cuándo hay que aplicarlo.

Pon atención.

Qué es un backtest: definición

Un backtest es una serie de pruebas sobre una estrategia en el pasado para evaluar cuál fue su rendimiento en un rango de datos histórico.


El término backtesting en finanzas es una "herramienta" extremadamente útil que tiene como fin evaluar el rendimiento de una estrategia de trading utilizando los datos antiguos de lo que ya ha pasado.

Te permite ver cómo se habría comportado esa estrategia si la hubieras aplicado durante un período de tiempo en el pasado y extraer conclusiones de los datos obtenidos.

Siempre que vayas a utilizar una estrategia nueva, ya sea de tuya o de otra persona, el backtest es el primer paso que tienes que realizar.

Un backtesting se puede realizar en cualquier mercado: forex, acciones, criptomonedas, etc. pero siempre necesitarás disponer de datos históricos de calidad, ya que si los datos no son buenos el backtest no tendrá sentido.

Hay que destacar que el backtest por sí solo no es suficiente para establecer si una estrategia es robusta o no, pero esto otro concepto que ya veremos y que no voy a tratar aquí para no desviarme del tema principal.

Tipos de backtesting que puedes hacer

El backtesting se puede hacer de dos formas en función del tipo de trading que estás haciendo.

Si estás con una estrategia de trading discrecional, normalmente la prueba de backtesting será manual.

Es decir, tú mismo probarás manualmente esa estrategia contra datos históricos ejecutándola paso a paso y tomando las decisiones de trading que te indica la estrategia.

En cambio, si estás haciendo una estrategia de trading automático, es decir, la estrategia se ejecuta a través de un software automáticamente...

Entonces para hacer el backtest, necesitarás tener la estrategia codificada (programada) y le pasarás a ese software los datos históricos como entrada para ejecutar la prueba que se hará de forma automática.

Y bueno, todo esto es tiene más sentido aplicado en la práctica.

Cómo hacer backtesting

El backtesting de forma automática es algo demasiado largo y complejo para este artículo, tendría que dedicar uno exclusivamente para ello. Además tendrías que aprender trading algorítmico.

Como estoy presentando conceptos básicos para principiantes, considero que es recomendable empezar con el backtesting para trading manual.

Así que te voy a contar cómo puedes ejecutar un backtest de forma manual en dos plataformas de trading que utilizo.

Pero lo primero que tienes que tener claro siempre para hacer pruebas de una estrategia, es que el backtesting tiene que ser lo más fiel a la realidad posible.

Principios a seguir en todo backtest

Tienes que realizar el backtest en el mismo mercado para el cuál está diseñada la estrategia.

Si por ejemplo es una estrategia para Forex, tienes que probarla en diferentes pares de divisas del mercado forex.

Y si la estrategia es válida para cualquier mercado, entonces tienes que probarla en diferentes activos de todos los mercados, ya sean acciones, índices, criptomonedas, metales, materias primas, etc.

Tienes que ejecutar las pruebas en el mismo o en los mismos marco temporales que trabajen la estrategia. 

Por ejemplo, si es una estrategia de swing trading, que trabaja en marcos temporales de 4H y 1H, tienes que hacer las pruebas en estos marcos temporales.

Y si es una estrategia de day trading  para ejecutarla sobre gráficos de 15 min. es ese marco temporal en el que tienes que hacer las pruebas.

No te muevas de esos marcos temporales para los cuáles está diseñada la estrategia.

No solo el mismo marco temporal es necesario, también en el mismo horario.

Si es una estrategia que se ejecuta los viernes, coge solo ese día entre los datos históricos para hacer el backtesting.

Y si es una estrategia que se ejecuta en la apertura de mercado, utiliza esas horas de los datos históricos para realizar las pruebas.

Hacer un backtest, consiste en realizar muchas pruebas, cuantas más hagas mejor.

No es ejecutarlo un día y ya está. Cuantas más veces hagas las pruebas, con más datos, obtendrás un resultado mucho más fiable del rendimiento que tienes aplicando tú mismo esa estrategia.

Además al ser manual, lo cuál es un handicap, conviene que hagas pruebas en diferentes días. Para introducir al menos un poquito del sesgo psicológico que llevarás contigo cuando la ejecutes en real.

Nunca va a ser psicológicamente igual que ejecutarla en real, pero si puedes acercarte un poco en la simulación, merece la pena que lo hagas.

Evita conocer los datos contra los que vas a probar.

Es obvio que tienes que evitar a toda costa ver los datos antes de hacer las pruebas.

Es preferible que hagas pruebas con activos sobre los que no conozcas los datos.

Si no puedes evitar esto, al menos, utiliza momentos temporales que no hayas visto previamente o que no recuerdes.

Ten en cuenta las particularidades propias del mercado en el que vas a operar.

Por ejemplo, las regulaciones de la SEC podrían prohibir temporalmente operaciones en corto en el mercado de acciones en el mercado americano. 

El mercado de acciones en general está sujeto a dividendos. 

El mercado de índices tiene otro factor importante a tener en cuenta que es el survivorship bias. 

Verifica que los datos están libres de esto, que es que cuando una empresa quiebra, se elimina del índice. Puede que obtengas resultados más optimistas por no tener en cuenta este factor.

En los futuros, como los contratos caducan normalmente cada 3 meses, tienes que tener en cuenta el rollover al juntar los datos de los contratos en una única serie, pero el precio de finalización de un contrato no suele ser el mismo que el inicio del siguiente.

En el forex y en las criptomonedas, cada broker o exchange tiene sus propios datos, no puedes utilizar cualquiera, tienes que utilizar los mismos sobre el que vayas a operar y algunos datos no serán fiables, como el volumen.

Intenta utilizar datos en calidad de tick.

Esto quiere decir que los datos representen cada uno de los cambios del precio, tanto del precio ask (precio de compra) como del precio bid (precio de venta)

Introduce una simulación de los costes de transacción que tiene el broker en el que vas a operar.

Los costes de transacción, son todos los costes que conlleva realizar la operación el mercado.

El más típico es el gasto de comisión, que va en función del volumen de compra o de venta.

Pero también hay otros más complicados de calcular, sobre los que se puede intentar aplicar una media con un margen de error positivo (para ponernos en el peor caso). Estos son el spread, el slippage y el swap.

Cada broker tendrás sus propios costes de transacción, por lo tanto, tienes que conocerlos y tenerlos en cuenta en el backtest sobre el broker que vayas a operar.

Utiliza el mismo tamaño de las posiciones que indique la estrategia.

Si la propia estrategia ya te indica una gestión monetaria de qué volumen debe tener las transacciones utiliza lo que la propia estrategia te indique.

Si la estrategia no tiene ningún método para gestionar el tamaño de las operaciones, entonces tienes que definirlo.

Puedes hacerlo manteniendo una cantidad fija de dinero o de volumen o puedes utilizar un porcentaje fijo del capital disponible en el momento de hacer la operación (por tanto la cantidad de volumen sería dinámica).

Pero utilices una u otra siempre tiene que ser la misma política en todo el backtest, si no, no tendría sentido.

Particularmente, mi referencia principal es el modelo de porcentajes. Es la opción que nos dará mejores resultados para medir, y nos muestra los beneficios del interés compuesto.

Cómo hacer backtesting en Tradingview

Si no tienes esta herramientas y quieres probar esto entra aquí y créate una cuenta, puedes empezar con una cuenta totalmente gratuita.

Una vez que estés dentro realizar un backtest es muy sencillo.

Abres el activo que quieres probar, por ejemplo vamos a poner el mercado forex con las divisas GBP / USD en marco temporal de 4H.

Una vez abierto el gráfico tienes que pulsar en "Ir a" en la parte inferior y aquí vas a poner la fecha histórica donde quieres visualizar los datos para empezar el backtest.

qué es un backtest

Es posible que si has puesto una fecha demasiado antigua, no se dispongan datos históricos desde esa fecha. En ese caso te lo indicará y tendrás que partir de la última fecha disponible o irte a otro broker o activo y probar de nuevo.

Una vez lo tengas, das click en Repetición (marcada en rojo) y te aparecerá la barra de herramientas rodeada en azul.

Además aunque no se ve en la imagen, te saldrá una línea vertical roja en la pantalla.

Con esta línea puedes posicionarte en la barra a partir de la cuál comenzará nuestro backtest. Una vez estés en la barra sobre la que quieres empezar y hagas click sobre ella se eliminará todo el gráfico que viene a continuación de la barra. 

Lo mejor es que marques alguna de las barras finales que ves en la pantalla, porque el resto ya las esstás viendo y lo ideal es que no veas los datos sobre los que vas a hacer las pruebas.

qué es un backtesting

Una vez marcada la barra empieza el backtesting. 

qué es backtesting

Como ves en la imagen ya no aparece el gráfico, se ha cortado.

Ahora lo que tienes que hacer es aplicar las estrategia como si estuvieras operando de verdad y registrando los resultados.

Puedes avanzar el gráfico con el botón de Forward señalado en azul. De esta forma vas aplicando la estrategia, obteniendo los resultados y anotándolos.

En el caso de que no te deje hacer esto porque tienes la versión gratuita (este tipo de test sólo lo permite en algunos marcos temporales para la versión gratuita, pero no en todos).

Lo puedes hacer sin utilizar la herramienta de repetición, lo cuál es un poco incómodo, pero lo puedes hacer.

Simplemente irías operando con la parte de gráfico que se ve en la pantalla, y puedes ir avanzándolo pulsando la flecha derecha.

Cada vez que la pulsas el gráfico avanzará una vela.

Puedes utilizar los indicadores, las herramientas de dibujo y de trading que incluye Trading View en este modo de simulación, para poder aplicar tu estrategia.

Y te puede ayudar mucho colocar las posiciones largas o cortas, reflejando visualmente como si la introdujeras en el broker en real.

qué es un backtesting en forex

Una vez colocada, avanzarás el gráfico de nuevo con Forward, si estás en la herramienta de Repetición o con la tecla derecha, si no puedes utilizar la herramienta de Repetición y podrás ver el resultado de tu operación.

Tienes que realizar este proceso una gran cantidad de veces y registrar los resultados.

Recuerda que cuantos más datos registres, mejores serán los datos estadísticos de la muestra y por tanto, mejores mediciones tendrás después.

Cómo hacer backtesting en Meta Trader

Si no lo tienes, aquí te dejo el link para descargar Meta Trader 5.

Aunque lo voy a explicar en Meta Trader 5, los mismos pasos puedes aplicarlos para ejecutarlos en MT4.

La idea es la misma que en Trading View, aunque en este caso no tienes una herramienta de repetición.

Abres el activo, por ejemplo Repsol en el gráfico en el marco temporal a probar. En este caso he puesto diario.

backtesting bolsa

Te mueves a la fecha sobre la que queremos empezar a probar.

En este caso he ido al inicio de los datos históricos, pulsando la tecla de Inicio.

Como no puedes eliminar el gráfico, el backtest empezaría sobre la última vela visible.

Y para avanzar el gráfico utiliza la tecla F12, que avanza paso a paso una vela cada vez que pulsas la tecla.

Igual que antes, puedes introducir los indicadores y herramientas gráficas que necesites para probar la estrategia. En este caso he puesto una media móvil de 20 períodos.

El procedimiento es igual que en Trading View, vas introduciendo las operaciones simuladas según los criterios de la estrategia que estés probando, observa el resultado avanzando el gráfico y lo recoges.

Vas realizando esta operativa por cada operación que colocas. Al ir recogiendo el resultado de cada operación, ves viendo como va, esto juega el papel de introducir un poco el factor psicológico. 

Si vas viendo el resultado acumulado paso a paso en cada operación, con lo que vas ganando o perdiendo... e intentas imaginar que estás en real, vas a tener una cierta idea de las emociones que puedes tener cuando pases a real.

Una vez recogidos una gran cantidad de datos de muestra en diferentes activos, en diferentes momentos históricos del activo y en diferentes días de pruebas, puedes empezar a extraer las métricas más importantes.

Cómo se puede medir un backtest

Para poder medir los resultados, lo primero que tienes que hacer es registrarlos.

Esto lo puedes hacer en un documento excel donde vayas anontando cada operación del backtest que vas haciendo, partiendo de un capital inicial virtual.

Aquí vas a poder guardar los datos de cada operación y el resultado que obtienes, tanto en términos absolutos de dinero como en porcentajes del beneficio o pérdida que ha dado cada operación.

Asociado a cada operación registrarás el efecto de acumulación o pérdida que produce en el capital de la cuenta virtual, para poder ver su evolución.

¿Qué datos puedes extraer del backtest?

Lo primero que quiero que sepas es que estos datos los puedes extraer en global de todo el test o extraerlos también por períodos de tiempo, por ejemplo un año.

De esta forma podrás ver los rendimientos globales y los anuales.

Una vez tienes claro este concepto de global/parcial, te cuento las métricas que puedes obtener:

Curva del capital. Puedes dibujar una gráfica de evolución del capital.

En el mismo excel, tienes que registrar por cada operación la fecha en la que se ha realizado, como si fuera la fecha histórica donde se produjo la operación.

Con estas dos variables, podrías representar un gráfico donde tienes el tiempo en el eje horizontal y el valor del capital en el eje vertical.

Número de operaciones. El número total de operaciones te dará una referencia de la calidad del test.

A más operaciones, más fiabilidad en las estadísticas, ya que el tamaño de la muestra es mayor.

Profit Factor. Es la ganancia total dividida por la pérdida total. 

Es importante que sea mayor que 1 porque si es menor que 1, la estrategia ha producido pérdidas. Y conviene que sea como mínimo de 1,25.

Es evidente que cuanto más alto, mejor.

Drawdown. Es el mayor retroceso que ha sufrido el capital desde su máximo. Se puede medir en porcentaje o en dinero y también se puede ver el tiempo que ha tardado en recuperarse.

El drawdown es una medida muy importante para saber a la presión psicológica que puedes llegar a estar sometido, porque esa presión te podría influir en la forma de operar.

Considero que un buen drawdown no debe superar el 10%. Si lo supera, podrías ajustar el porcentaje de riesgo que asumes en cada operación. Al reducirlo, reducirías el drawdown.

Puedes jugar ajustándolo hasta que quede en el 10%.

Ratio Retorno / Drawdown. Es la relación entre el porcentaje de beneficio y el porcentaje de drawdown.

Se divide un porcentaje de retorno entre el de drawdown y nos mide lo siguiente: "he tenido que soportar perder X% para llegar a ganar Y%"

Porcentaje de acierto. Es el número de operaciones positivas dividido entre el número de operaciones negativas.

Nos mide la probabilidad de que una operación sea positiva.

Conclusiones

Ya has conces el significado y el concepto de backtest, los diferentes tipos que existen. 

También sabes ya cómo hacer un backtest de forma manual en Meta Trader y en Trading View y cómo medirlo.

Ahora recuerda poner en práctica este concepto SIEMPRE que tengas o quieras utilizar una estrategia.

Nunca operes en real con una estrategia nueva sin haberla probado antes.

De esta forma podrás medir el rendimiento que puedes obtener tú mismo de una estrategia manual y estar mucho más seguro cuando la lleves al trading real.

También quiero que sepas, que esto no es más que una introducción al backtesting. 

El testeo de estrategias forma parte del núcleo duro del trading y es un tema que se debe tratar en profundidad.

Y sobre estrategias de inversiones y de trading puede que te interese entrar a una lista donde envío emails sobre ello.

Si te interesa, mira aquí.

Emails sobre invertir y especular en los mercados

Un saludo y pasa un gran día.