Backtest, ¿quieres saber qué es y cómo hacerlo?

El backtest es la gran diferencia entre el trading discrecional y el trading cuantitativo. Es una herramienta muy útil que tiene como el objetivo de evaluar el rendimiento de una estrategia usando datos pasados, permitiéndote conocer cómo se hubiera comportado dicha estrategia si hubiese estado operando durante es periodo de tiempo. Es un herramienta muy poderosa y fácil de poner en práctica, no obstante te puede llevar a engaños si no lo sabes realizar e interpretar de manera correcta.
El backtesting por sí solo no es suficiente para poder definir una estrategia como robusta o no. No obstante, es una herramienta indispensable en el desarrollo de una estrategia de trading, de la que extraerás una información muy valiosa para su posterior análisis.

Datos para hacer backtesting

Hoy en día el acceso a los datos de mercado es barato y fácil, sin embargo, debes tener mucho cuidado con la fiabilidad de los datos. Hace algunos años la precisión de los datos era una pura pesadilla para los traders, en la actualidad la mayoría de los proveedores de datos ofrecen una alta calidad en los datos. No obstante, hay vendedores de datos que por razones desconocidas el precio de cierre es algo diferente del último precio de negociación. Si tu algoritmo de trading utiliza el precio de cierre en alguna de sus reglas, el resultado del backtest no será fiable.

Datos para hacer backtest con futuros

Si quieres hacer trading con futuros deberás tener en cuenta el rollover. Los futuros funcionan por contratos que tienen una duración preestablecida; por ejemplo, el contrato del futuro del petróleo crudo vence cada mes, mientras que el de otros futuros, como el de los índices, suelen vencer a los tres meses.
Evidentemente tres meses no es tiempo suficiente para realizar un backtest, por lo que deberás juntar los datos de cada uno de los vencimientos para crear un futuro sintético que unirá todos los vencimientos. De esta manera podrás hacer backtest de varios años, y no sólo de unos meses.
Pero esto presenta otro problema: el precio de finalización de un contrato no suele ser el mismo que el de inicio del siguiente. No entraré más en detalle sobre los futuros para no extender demasiado este artículo (te recomiendo mi artículo de rollover si te interesa este tema). Algunas proveedores de datos como Tradestation ofrecen el futuro continuo que te ahorra mucho trabajo, aunque tampoco es una solución perfecta.

Datos para hacer backtest en FOREX

En referencia al FOREX (mercado de divisas), hay que tener en cuenta que es un mercado descentralizado, de modo que no hay ningún organismo regulador central donde se recojan los datos oficiales. En el FOREX cada bróker tiene sus propios datos. Esto ocurre porque, al no existir ningún organismo central (como sí ocurre con los índices o los futuros), cada bróker debe crear su propia infraestructura de datos, conectándose a varios proveedores de liquidez a la vez, o creando su propio marketplace. La solución recomendable frente a este inconveniente es que operes con el mismo bróker del que obtengas los datos, siempre y cuando este sea un bróker ECN (Electronic Communication Network o Red de comunicación electrónica) y puedas obtener datos en calidad tick.

Datos para hacer backtest en acciones y ETFs

El backtest de tu estrategia deberá tener en cuenta todos los cambios que se hayan producido en la historia de la cotización de una acción concreta o un índice, como por ejemplo podría ser la prohibición temporal de ventas en corto (por la SEC en Estados Unidos o por la CNMV en España). Si no lo has tenido en cuenta, puede que obtengas resultados irreales de rendimiento fruto de operaciones que no hubieras podido ejecutar en ese momento, y por tanto estará lejos de la realidad. Otro aspecto que debes recordar si decides operar en el mercado de acciones es si los datos de los que dispones están ajustados a dividendos, splits y contrasplits.
Si tu estrategia opera o tiene en cuenta algún índice, será muy importante que los datos de dicho índice estén libres del conocido como survivorship bias (sesgo de supervivencia). Los índices son un promedio de acciones seleccionadas (normalmente las más relevantes del sector que represente ese índice) y cuando una empresa quiebra o va muy mal, se elimina su acción del índice. Si tu estrategia opera las acciones que formaban parte de ese índice y tus datos no tienen en cuenta que puede que algunas de ellas se hayan eliminado, los resultados que obtengas en el backtesting serán solo de las acciones que hayan «sobrevivido» en el tiempo en ese índice; por tanto obtendrás valores de rendimiento más optimistas de lo que realmente hubiera ocurrido.

¿Cuántos datos deben cargarse para hacer backtesting?

Para hacer backtesting no deberás usar todos los datos que tengas disponibles por dos motivos (hay traders que no opinan los mismo):

  • Debes comprobar que los datos son correctos, sobre todo al principio de la serie porque a veces podrás ver barras muy mal formadas en los primeros meses/años de cotización. Por supuesto, esto debes evitarlo en tu backtest.
  • También deberás separar en el backtesting dos segmentos de datos: In Sample (IS) y Out of Sample (OOS). Normalmente dejarás el 70% de los datos como In Sample y el 30% como Out of Sample.

In Sample del backtest

En los datos IS es donde llevarás a cabo el entrenamiento de la estrategia: comprobarás que la estrategia funciona correctamente (por ejemplo, si entra y sale del mercado cuando debe), evaluarás si tiene beneficios o pérdidas, realizarás los ajustes pertinentes si fuera necesario, y optimizarás los distintos parámetros para buscar la combinación más robusta de todos ellos, no la mejor, que te permita explotar el patrón que estás analizando en la serie de precios.

En el curso de introducción al trading cuantitativo puedes todo esto con más detalle. Pulsa el botón para más información.


Out of Sample del backtest

En los datos OOS del backtesting harás la validación de la estrategia. Es decir, compararás el rendimiento de la estrategia en los datos IS con los OOS. No deberás hacer ningún ajuste de los parámetros posteriormente, ya que van a ser unos datos “nuevos” que tu sistema no habrá visto antes, y esa es la razón por la que la verificación tendrá validez. Este punto es extremadamente importante ya que es donde deberás evaluar si tu estrategia ha sido sobreoptimizada. Problema éste potencialmente peligroso conocido también como curve fitting. Esto ocurre cuando se busca exhaustivamente cualquier combinación de variables que exprima al máximo las capacidades del sistema, queriendo optimizar tanto los parámetros de la estrategia en referencia a los datos usados durante el backtest (datos IS), que lo que se está haciendo realmente es forzar la estrategia para que obtenga los mejores resultados solamente en ese rango de datos. Las probabilidades de que esas exactas condiciones se repitan en el futuro son prácticamente nulas. En palabras sencillas, lo que ha ocurrido es que has adaptado las reglas del sistema de trading al pasado, que por supuesto no se replicarán el el futuro. Recuerda que lo importante es que el sistema funcione en el futuro (mercado real) y no con datos pasados. Aunque desgraciadamente, sólo tenemos la posibilidad de usar el pasado para tratar de “predecir” el futuro. Te dejo enlace de mi artículo Walk Forward Analysis donde se explica más en detalle qué es el In Sample y Out of Sample.

En la siguiente imagen puede ver lo que debemos esperar (imagen de la izquierda) cuando comparamos el In Sample y el Out of Sample de un backtest, y lo que no (imagen de la derecha).

Qué costes debes incluir en el backtest

Los costes de transacción son todos los costes que van implícitos cuando realizas una operación en el mercado. Deberás incluirlos en el backtesting, ya que serán costes reales que van a existir durante la operativa. La más común es la propia comisión que carga el bróker por cada operación. Esta comisión va en función del volumen operado, es decir, del importe o lote del trade. Si tu bróker te cobra, por ejemplo, 5$ por lote ida y vuelta o roundtrip (2,5$ para entrar y 2,5$ para salir del mercado), una operación de 2 lotes te costará 10$, mientras que una de 0,1 lotes te costará 0,5$.
También existen otros costes indirectos que afectan a la operativa, como son el spread, el slippage y el swap.

Slippage

Este ocurre generalmente en momentos de alta volatilidad, cuando el precio se mueve rápidamente arrastrando la orden de
entrada y ejecutándola a un precio distinto al que tu estrategia tenía predefinido. El slippage puede producirse tanto en la entrada como en la salida y jugar tanto a favor como en contra. Lo habitual es que juegue en contra con las órdenes tipo
stop o a mercado, que pueden ser desplazadas si el precio las activa con velocidad. Por lo contrario, en las órdenes tipo limitada suele ser a favor. No obstante el “slippage encubierto” que puedes pagar con las órdenes límite es la no ejecución de la orden porque no ha llegado a cruzarse la orden contraria a la que tu tienes en el mercado. En este caso, también los resultados de backtest perderían relevancia a medida que se van perdiendo más operaciones en real.

Los activos con más volumen y profundidad como el futuro del S&P 500 son los que menos spread tienen, pero otros como por el ejemplo el futuro del carne de cerdo, suelen tener horquillas (spread) muy elevados que por supuesto debes tener en cuenta cuando haces backtesting de un sistema de trading. En la imagen de abajo puedes ver que en el precio 84.625 del Ask no hay órdenes colocadas, lo que implica que si quieres vender a ese nivel, no se ejecutará la orden y lo hará en el siguiente nivel que es 84.650.

Spread

El spread u horquilla, también conocido como horquilla, es la diferencia entre el precio de compra (ask) y el precio de venta (bid). Cuando realizas una transacción, siempre está comprendida por una compra y una venta (o viceversa). Esa diferencia entre el precio bid y el ask se convierte en un coste para ti. Normalmente en las plataformas, el precio por defecto que verás en el gráfico es el bid (hay plataformas donde siempre será el bid, mientras que hay otras donde puedes escoger entre bid o ask), de manera que te podría parecer que has realizado una compra a un precio al que la cotización que ves en tu gráfico no ha llegado (precio ask). Los pares de divisas más líquidos, como el euro/dólar, son los que menos spread tienen, mientras que los más exóticos tienen un spread significativamente mayor.

Swap

El swap es la diferencia entre los tipos de interés de las divisas involucradas en el par con el que estés trabajando. Este tipo de interés lo fijan los bancos centrales de cada zona, como la Reserva Federal (FED) para el dólar estadounidense o el Banco Central Europeo (BCE) para el euro. Para dejarlo claro te voy a poner un ejemplo con el par de divisas EUR/USD. El tipo de interés del
euro en estos momentos es del 0%, mientras que el tipo de interés del dólar estadounidense es del 2%. En caso de querer comprar 1 lote estándar (equivalente a comprar 100.000€), deberías calcular la diferencia del tipo de interés del euro (0%) y el del dólar (2%). A continuación debes multiplicar el resultado por la cantidad de unidades compradas (100.000€) y dividirlo entre el número de días de un año comercial (360). El resultado sería lo que costaría o lo que se ganaría al mantener esa operación abierta durante la noche. Siguiendo con el ejemplo, en caso de comprar 1 lote de EURUSD, el swap sería el siguiente:

0% – 2% = -2%

-2%/100 = -0.02$

-0.02 (swap) x 100.000(lote) = -5,55$

Es decir, cada noche que tengas la operación abierta el bróker te cobrará 5,55$. Si en lugar de comprar EURUSD, lo vendes. El resultado sería justo el opuesto. Es decir, el bróker te pagará 5,55$ cada noche que tengas el par abierto.

Evaluación de los resultados de un backtest

El backtest arroja una gran cantidad de información. A continuación te voy indicar las métricas en las yo más me fijo cuando hago backtesting a una estrategia. La imagen siguiente es el Performace summary de una de mis estrategias de trading que tienes a tu disposición aquí.

Backtest sistema de trading After para Sp500

Número de operaciones

Como su nombre indica el número total de operaciones de una estrategia. Cuantas más operaciones tenga el backtest más relevancia estadística tendrá el patrón que estés tratando de explotar. Esta métrica va muy ligada a la temporalidad que estés usando. Si usas barras diarias tendrás menos operaciones que si usas por ejemplo barras de 60 minutos. Mi recomendación es que uses todos los datos disponibles del activo que estés analizando con independencia de la temporalidad con el objetivo de asegurar que los datos que analizas tengan todo tipo de mercados. Hay traders que recomiendan usar datos más recientes para operaciones intradía. En mi experiencia, es mejor usar todos los datos y luego con el Rolling Walk Foward y con reoptimizaciones periódicas ir actualizando el valor de los parámetros. Esto llevará a que tardes más tiempo en realizar el trabajo ya que tu PC le llevará más tiempo hacer los cálculos si estas usando un time frame de 15 minutos y tienes cargados 15 años por ejemplo. Pero recuerda que te estás jugando tu dinero y ya sabes lo que pasa con la prisas.

Profit factor

El Profit factor es una métrica simple pero muy importante. Resulta de la división entre el beneficio bruto y la pérdida bruta de una estrategia de trading. En mis backtest siempre pido que este por encima de 1,5, evidentemente, cuanto más alto mejor. No obstante si tienes una estrategia con Profit factor por las nubes ¡cuidado! porque puede ser un aviso de que el backtest te está “mintiendo”. No hay dinero fácil, y en los mercados financieros menos.

Profit factor = Beneficio bruto / Pérdida bruta

Calmar ratio

Resulta de dividir la rentabilidad anualizada entre el valor absoluto del drawdown. Si haces un backtest de tres años, esta métrica mide el rendimiento según el máximo drawdown que ha sufrido la estrategia. Es como decir: he necesitado soportar un drawdown del X% para poder obtener un rendimiento del Y%. Por ejemplo, si se realiza un backtest en 10 años, la ratio final debe ser, como mínimo, de 10 veces el valor anual.

Ratio Calmar = Rentabilidad anualizada / |Drawdown|

Drawdown

Se define como el retroceso que ha sufrido la curva de capital respecto de su último máximo antes de superarlo. El drawdown del backtest no tiene porque ser el máximo que sufra el activo, es más, casi nunca lo es porque el máximo drawdown está siempre por llegar. En mis análisis, utilizo como referencia el drawdown que resulta del análisis de Montecarlo (que será objeto de otro artículo más adelante) y que es mucho más pesimista, y por tanto realista. No te engañes con el drawdown que puedes “soportar” en el backtest, porque siempre en real será mucho menos. En la siguiente imagen tienes resaltados con una flecha roja los momentos que en los que se produce un drawdown.

Drawdown de un sistema de trading

Beneficio medio por operación

Mide el beneficio medio que obtienes por cada operación que ejecute es sistema. Esta métrica es muy importante, especialmente en sistema de alta cadencia operativa en las que las comisiones toman mucha más importancia. Al menos deberá cubrir 3 o 4 veces las comisiones estimadas que deberás pagar por operar un activo concreto. Aquí también es importante diferenciar los activos: no será lo mismo operar el S&P 500 que el futuro de carne. En el primer caso con 50$ de beneficio medio por operación puedes tener suficiente (un poco justo pero suficiente), en el segundo caso con menos de 300$ de beneficio medio por operación ni me pensaría en operar este activo.

Beneficio medio por operación = Beneficio neto / Nº de operaciones

Porcentaje de aciertos

Mide la probabilidad de que una operación sea positiva. Dependerá en gran medida del tipo de sistema que estés operando. Si el si el sistema el del tipo de reversión a la media la tasa de acierto será muy probablemente superior al 60%. Este tipo de sistemas son “más fáciles” de operar desde el punto de vista psicológico. También decir que suelen tener beneficios medios por operación más reducidos. Si por el contrario, el sistema es del tipo tendencial, la tasa de acierto puede ser del 40% o menos, lo cual los hacen más duros de soportar en la operativa real. Como casi siempre, lo correcto es un termino medio, es decir, que tengas un portafolio de sistemas con diferentes lógicas que se compensen entre ellas y que te hagan más llevadera la operativa real.

Conclusiones

  • Usa datos históricos de calidad.
  • Separa los datos en In Sample (70%) y Out of Sample (30%).
  • Considera todas las comisiones que debes pagar de manera realista: comisiones del bróker, slippage, spread y swap (para FOREX).
  • No todos los activos son iguales a la hora de hacer backtesting de una estrategia.
  • Analiza las métricas de manera objetiva. ¡No te engañes!
  • Asegúrate que el beneficio medio por operación cubre holgadamente todas las comisiones que debes pagar.
  • No te creas backtest espectacularmente buenos. Son ciencia ficción y por tanto MENTIRA.

Por llegar al final del artículo, te regalo un Ebook para que te inicies en el trading cuantitativo. Si ya tienes experiencia, seguro que encuentras algo de valor en el documento, o eso espero.

Si quieres aprender como hacer backteting correctamente y mucho más, te invito a hagas mi curso de introducción al trading cuantitativo. ¡Pulsa en el botón de abajo para más información!

Deja un comentario

Artículo añadido al carrito.
0 artículos - 0,00