5.1 El significado y la trampa del backtesting

El autor:La bondad, Creado: 2019-06-25 13:38:05, Actualizado: 2023-11-09 20:44:21

img

Resumen de las actividades

El backtesting es el lugar más diferente entre el comercio cuantitativo y el comercio tradicional. De acuerdo con los datos reales del mercado que han ocurrido en la historia, la señal de estrategia de simulación activa y coincide con la transacción rápidamente, y el informe de rendimiento y otros datos se obtienen durante un período de tiempo. Para las acciones nacionales y extranjeras, futuros de productos básicos, divisas y otros mercados, el backtesting es el componente más importante del desarrollo de estrategias.

El significado de backtesting

En los capítulos anteriores, aprendimos los conceptos básicos del lenguaje de programación convencional, y te enseñamos cómo usar estos fundamentos de programación para escribir algunas estrategias comerciales simples. Se puede decir que el camino ha ido por más de la mitad. Sin embargo, una vez que se escribe una estrategia, que todavía tiene una larga distancia al entorno real del mercado. También requiere una prueba posterior constante debugging backtesting debugging y así sucesivamente, hasta que la estrategia pueda implementar completamente el contenido del modelo y funcionar sin problemas.

Desde la perspectiva de la lógica cuantitativa de la negociación, una estrategia de negociación se basa en una serie de cogniciones y suposiciones del mercado.

img

Además, desde la perspectiva de las operaciones comerciales cuantitativas, las pruebas retroactivas pueden ayudar a detectar errores en la lógica de la estrategia, como funciones futuras, precio de deslizamiento, ajuste de varios grados, etc. Proporcionar evidencia confiable de que la estrategia se puede utilizar para el comercio de mercado real.

  • Verificar la exactitud de la señal de negociación.

  • Verifique si la lógica de negociación y sus ideas son factibles.

  • Descubrir defectos en el sistema de negociación y mejorar la estrategia original.

Por lo tanto, el significado de backtesting es realizar un proceso de negociación lo más fiel posible, verificar la validez de los datos históricos, evitar errores costosos para la estrategia equivocada, ayudarnos a filtrar, mejorar y optimizar las estrategias comerciales.

Trampa de pruebas de retroceso

  • La trampa de La señal de negociación es inestable

La estrategia de negociación se basa en datos históricos estáticos durante la backtesting, pero los datos de la negociación real son dinámicos. Por ejemplo: Si el precio más alto es mayor que el precio de cierre de ayer, abra una posición larga. Estas condiciones de posición abierta en el mercado real, si la línea K no se ha completado, entonces el precio más alto es dinámico, es probable que las señales comerciales parpadeen hacia adelante y hacia atrás. Durante la backtesting, el motor de backtesting se basa en datos históricos estáticos que pueden ser simulados y sintetizados.

  • La trampa de la función Future

La función futura utiliza el precio futuro, lo que significa que las condiciones actuales pueden modificarse en el futuro, y la misma función futura también puede causar que la señal comercial sea inestable, como el indicador zigzag

Como se muestra a continuación: La función del indicador de zigzag indica el punto de inflexión de los picos y bajos. Puede ajustar su propio valor de acuerdo con el último precio en tiempo real, pero si el precio actual cambia, el resultado de la función de giro en zigzag también cambiará. Si utiliza este indicador con dicha función futura, la señal de orden actual puede configurarse y colocarse, pero esta señal puede no ser cuantificada más adelante.

img

  • La trampa del Robo de precio

El llamado comportamiento de Precio de robo se refiere al uso de precios pasados para el comercio. Por ejemplo: Si el precio más alto es mayor que un cierto precio fijo para abrir una posición utilizando el precio de apertura. Esta condición de posición de apertura es Precio de robo, porque en el mercado real, cuando el precio más alto es mayor que un cierto precio, el precio puede haber sido mayor que el precio de apertura de una cierta distancia, y luego usar el precio de apertura para abrir una posición es imposible. Sin embargo, en el entorno de backtesting, hipotéticamente puedes abrir una posición al precio de apertura.

También existe otro caso en el que si las diferencias de precios sobrepasan el precio fijo establecido por la estrategia, en el entorno de backtesting, la señal de negociación se producirá y se puede ejecutar; pero en el mercado real, obviamente no se puede ejecutar.

  • La trampa del Precio de negociación imposible

Precio de negociación imposible puede dividirse en varios casos:

El primer tipo: en el mercado real, algunas bolsas tienen el límite diario de aumento y reducción de precios.

En segundo lugar: el mecanismo de correspondencia de órdenes de intercambio, que son prioridad de precio y prioridad de tiempo. Algunas variedades de la profundidad de la orden de mercado a menudo tendrán un gran número de órdenes esperando su ejecución. En el mercado real, usted tiene que esperar órdenes que antes de su colocación para ejecutar, a veces su orden nunca será ejecutada. Pero en el entorno de backtesting, la orden pendiente se ejecutará a cualquier precio sin esperar.

Tercero: Para las estrategias de arbitraje, los beneficios de backtesting generalmente son muy altos, porque cada vez que se ha asumido que la operación de backtesting ha capturado todos esos precios de propagación. En circunstancias reales, la mayoría de los precios son imposibles de ejecutar, o a veces solo se ejecuta una dirección o un objetivo comercial de la acción comercial, en general, es casi seguro que la dirección o el objetivo comercial propicio se ejecutará primero, luego debe tratar de ejecutar inmediatamente la dirección opuesta o la variedad de las órdenes de estrategias de arbitraje. incluso con un período de retraso tan corto, los spreads de esta oportunidad comercial pueden haberle costado más de 1 o 2 puntos de precio, mientras que toda la estrategia de arbitraje de propagación solo obtuvo muy pocos puntos de precio de ganancia. Este tipo de situación es muy difícil de backtest en el entorno de simulación.

Cuarto: El evento del cisne negro. Como se muestra en el círculo rojo de la siguiente figura, el franco suizo en el evento del cisne negro de divisas, aunque en la superficie hay precio de apertura, precio más alto, precio más bajo y precio de cierre. de hecho, tal situación extrema del mercado viene con una línea k que la mayor parte son vacíos, muchos pedidos de stop-loss causa el evento de estampida, la liquidez es casi cero, para las órdenes de ejecución es muy difícil, pero en el entorno de backtesting, es posible detener la pérdida.

img

  • La trampa del sobreajuste

Cada vez que veo la siguiente imagen, tanto mi corazón como mi mente se divierten. esta imagen nos muestra un significado verdadero, un modelo ridículo, lo suficientemente complejo, está perfectamente adaptado a cualquier dato.

img

Para la negociación cuantitativa, la backtesting se basa en datos históricos, pero la muestra de datos históricos es limitada.

El proceso de modelado de la estrategia cuantitativa es esencialmente un proceso de búsqueda de datos locales no aleatorios a partir de un gran número de datos aparentemente aleatorios.

Así que no te engañes. Si encuentras un mal rendimiento fuera de la muestra, no sientas lástima o no quieras admitir que el modelo no funciona, y continúa optimizándolo hasta que los datos de la muestra fuera también se desempeñan tan bien como dentro.

  • La trampa del sesgo del sobreviviente

Wall Street tiene un chiste popular: Supongamos que hay 1.000 monos en el mercado que participaron en la inversión. En el primer año, 500 monos se perdieron en el mercado. A mitad del segundo año, quedan 250 monos. Al final del tercer año, quedan 125 monos.

img

En el noveno año, el último mono quedó. Luego lo miras, más lo miras, más te sientes su cara familiar. Finalmente, ves la portada de una revista financiera y gritas "Oye, ¿eso es Warren Buffett?

Aunque esto es solo una broma, todavía se puede asignar a la situación del mundo real. Por ejemplo, si hay 1000 gestores de fondos, después de 10 años, unos 10 gestores de fondos superarán al mercado durante 10 años consecutivos. Esto puede ser causado por la suerte y las decisiones al azar, estos gestores de fondos habilidad no tiene nada que ver con ello.

Al igual que el informe de backtest a continuación, la mayoría de los inversores elegirán la figura de la izquierda, que tiene un rendimiento muy sólido sin retracement significativo.

img

pero por favor, espera, como se muestra a la derecha, que es la situación real. la curva de la izquierda es sólo el mejor entre estos muchos backtests. es decir, hay muchos mucho peor rendimiento que la situación de la izquierda.

  • La trampa del coste de impacto

En un entorno de negociación real, los precios siempre fluctúan. Cuando usted es optimista acerca de una oportunidad de negociación, el precio puede haber cambiado en el momento de realizar un pedido. Por lo tanto, el problema del deslizamiento, ya sea en el comercio subjetivo o en el comercio cuantitativo, es inevitable.

Pero la backtesting se basa en datos estáticos, es difícil simular el entorno de negociación real. Por ejemplo: el precio de la orden es 1050 para comprar, pero el precio de negociación real puede ser 1051.

Prueba de retroceso sin deslizamiento

img

Como se muestra anteriormente, es un informe de backtest sin deslizamiento, la curva de ganancias se ve bien, pero hay diferencias entre el backtest y la negociación real en el mercado real.

Prueba de retroceso con deslizamiento

img

Como se muestra anteriormente, la misma estrategia, si se agrega con 2 puntos de deslizamiento, los resultados de backtesting con y sin deslizamiento son muy diferentes, lo que significa que esta estrategia necesita ser mejorada o abandonada.

En resumen

Algunas personas pueden preguntar, ya que puede haber tantos problemas en el comercio cuantitativo, ¿cómo puedo probar que mi estrategia está bien? La respuesta es simple, debemos primero simulación de comercio por esta estrategia algún tiempo antes de usar el dinero real, si el precio de negociación y la situación de simulación de negociación son casi los mismos con la lógica de la estrategia, entonces al menos probar la lógica de la estrategia no tiene problema.

En cualquier caso, para un desarrollador experimentado de sistemas comerciales, la backtesting es una necesidad. Porque puede decirle si una idea de estrategia se puede validar en los datos históricos. Pero muchas veces la backtesting no significa que el futuro será rentable. Debido a que hay demasiados hoyos en la backtesting, después de pagar el precio, lo entenderá. Y estas lecciones se acumulan en dinero real. Este artículo es principalmente para reducir los desvíos y trampas.

Ejercicios extraescolares

  1. ¿Qué es el sobreajuste y cómo evitarlo?

  2. ¿Cuáles son los ejemplos en la vida real del "sesgo del sobreviviente"?


Relacionados

Más.