3
Seguir
1444
Seguidores

Instrucciones para realizar pruebas retrospectivas de la plataforma cuantitativa FMZ Inventor

Creado el: 2019-07-06 12:15:50, Actualizado el: 2023-10-25 20:00:15
comments   22
hits   9711

Instrucciones para realizar pruebas retrospectivas de la plataforma cuantitativa FMZ Inventor

La mayoría de las estrategias deben someterse a pruebas retrospectivas para verificarlas antes de ponerlas en práctica. FMZ admite algunos tipos de contratos al contado, futuros y perpetuos de monedas digitales, así como todo tipo de futuros de materias primas. Sin embargo, el mecanismo de backtesting de la Plataforma Cuantitativa Inventor es diferente del backtesting común en la barra, lo que ha causado confusión para muchos novatos. Este artículo explicará y responderá en detalle algunas preguntas comunes sobre backtesting.

¿Cómo funciona el sistema de backtesting?

Instrucciones para realizar pruebas retrospectivas de la plataforma cuantitativa FMZ Inventor

Como se muestra en la figura anterior, el tiempo de inicio y el tiempo de finalización de la prueba retrospectiva se pueden considerar como un eje de tiempo. Al realizar una prueba retrospectiva, el punto de tiempo de la prueba retrospectiva se mueve de izquierda a derecha a lo largo del eje para iniciar la prueba retrospectiva. En este punto de tiempo, solo este punto puede La estrategia utiliza datos históricos previos para realizar compras y ventas basadas en estos datos, lo que finalmente da como resultado ganancias o pérdidas. Obviamente, la distribución de los puntos de tiempo del backtesting es discreta y la densidad de la distribución representa la precisión del backtesting. Por supuesto, teniendo en cuenta que cuanto más densos sean los puntos de tiempo de las pruebas retrospectivas, más tiempo llevará, el sistema de pruebas retrospectivas real debe lograr un equilibrio entre precisión y eficiencia.

Mecanismo tradicional de backtesting onBar

El mecanismo de backtesting de la barra se basa en la línea K, es decir, cada línea K genera un punto de tiempo de backtesting, en el que se pueden obtener los precios altos de apertura y bajos de cierre, el volumen de negociación y otra información de la línea K actual, como Así como la información anterior a este momento. Información histórica de la línea K. La desventaja de este mecanismo es obvia: solo se puede generar una compra y venta en una línea K, y el precio generalmente se basa en el precio de cierre de la línea K. Además, una línea K solo puede obtener cuatro precios: apertura alta y cierre bajo. En cuanto a cómo cambia el precio dentro de la línea K, si el precio más alto ocurre primero o el precio más bajo ocurre primero, etc., no hay forma de saberlo. para obtener dicha información. Tomando la línea K de 1 hora como ejemplo, en el comercio real, la información del mercado se obtendrá cada pocos segundos y las instrucciones comerciales se emitirán durante la sesión comercial en lugar de esperar a que finalice la línea K. La ventaja del mecanismo de backtesting onbar es que es fácil de entender y la velocidad del backtesting es extremadamente rápida.

Plataforma cuantitativa del inventor FMZ: mecanismo de backtesting onTick

Instrucciones para realizar pruebas retrospectivas de la plataforma cuantitativa FMZ Inventor

La imagen de arriba es la interfaz de configuración de backtesting de FMZ. Los modos de backtesting se dividen en dos tipos: backtesting a nivel de simulación y backtesting en tiempo real, que se presentan a continuación:

¿Qué es una garrapata?

A diferencia de los datos de la línea K, el tick es el precio en un punto específico en el tiempo. Según los datos de la línea K, en realidad solo conocemos el momento en que se produjeron el precio de apertura y el precio de cierre. No está claro cuándo el precio alcanzó el máximo dentro del ciclo de la línea K. De hecho, los datos de la línea K también se generan en función de las marcas. Con base en los datos de la línea K, también podemos simular los cambios en un tick específico de un período de la línea K. Aunque no es un tick real, puede hacer que nuestras pruebas retrospectivas sean más precisas. Además, el período de la línea K utilizado para la simulación puede ser mucho menor que el período utilizado para las pruebas retrospectivas, por lo que la precisión es mayor.

Pruebas retrospectivas a nivel de simulación

Para realizar pruebas retrospectivas a nivel de simulación, debe seleccionar el período de la línea K y el período de la línea K subyacente utilizado para las pruebas retrospectivas. Por ejemplo, si la estrategia utiliza pruebas retrospectivas cada hora y la línea K subyacente es de 5 minutos, entonces el intervalo entre los puntos de tiempo de las pruebas retrospectivas se basará en los ticks generados por la simulación de la línea K de 5 minutos, lo que se refleja en los cambios continuos. en el precio de cierre de la última línea K de 1 hora. El mecanismo de generación de ticks dentro de una línea K basada en la línea K es similar al de MT4. Esta publicación tiene una descripción detallada: https://www.fmz.com/bbs-topic/662

Instrucciones para realizar pruebas retrospectivas de la plataforma cuantitativa FMZ Inventor
Para demostrar este mecanismo, utilizamos una estrategia sencilla. El código de la estrategia es el siguiente:

function main() {
  while(true){
      var records = exchange.GetRecords() //GetRecords可以填参数,获取不同周期K线。
      var ticker = exchange.GetTicker()
      Log('K线收盘价: ', records[records.length-1].Close, 'ticker买一卖一价: ', ticker.Buy, ticker.Sell)
      //js回测不用Sleep,会自动跳到下一个tick。Python需要一个小的休眠时间
  }
}

Resultados del backtesting: Instrucciones para realizar pruebas retrospectivas de la plataforma cuantitativa FMZ Inventor Para cada línea K, solo se fijan los ticks de apertura y cierre, y se agregan 12 ticks simulados en el medio, de modo que una línea K formará 14 puntos de tiempo de backtesting. Si el backtest es de un día, el ciclo de la línea K subyacente es de 5 minutos, con un total de 24×12×14 = 4032 puntos de tiempo, mientras que el backtest tradicional onBar tiene solo 24, lo que mejora enormemente la precisión. Las posiciones de apertura y cierre también se pueden completar dentro de un ciclo de línea K. Aunque los ticks generados en el medio son simulados, el impacto no es significativo. En la prueba retrospectiva, siempre que el precio de oferta sea mayor que el precio de venta y el precio de venta sea menor que el precio de oferta, se realizará una transacción. Este método de backtesting tiene en cuenta tanto la velocidad como la precisión del backtesting y se recomienda para todos.

Pruebas retrospectivas en tiempo real

El backtesting en tiempo real utiliza ticks reales, y el intervalo más corto entre cada punto de tiempo es de solo 1 segundo. Esta precisión del backtesting es exacta cada segundo, pero debido a la gran cantidad de datos, la velocidad del backtesting es lenta y el tiempo del backtesting no se puede medir. Garantizado. Muy largo. La imagen de abajo muestra la garrapata real. Las pruebas retrospectivas en tiempo real se pueden utilizar para validar estrategias con precisión. Instrucciones para realizar pruebas retrospectivas de la plataforma cuantitativa FMZ Inventor

La brecha entre el backtesting y el trading real

Incluso las pruebas retrospectivas en tiempo real y el comercio real aún tienen deficiencias de datos obvias, como la incapacidad de obtener el historial de transacciones, la incapacidad de obtener cambios de profundidad reales, retrasos reales en la red, etc. Aun así, el sistema de backtesting actual de FMZ es relativamente completo y tiene muchas pequeñas funciones, como simular errores de red, que pueden usarse para probar la tolerancia a fallos de las estrategias, simular retrasos en la red, dibujar íconos de mercado, etc.

Preguntas frecuentes

¿Por qué solo se admiten unos pocos pares comerciales e intercambios para realizar pruebas retrospectivas?

Actualmente, solo existen unos pocos pares de datos comerciales comunes. De hecho, la relación entre estrategia y producto no es muy grande, pero es suficiente para verificar la estrategia.

¿Puede simular la tasa de financiación cobrada por BitMEX?

Sí, puedes activar el registro de eventos seleccionando BitMEX Backtest. Instrucciones para realizar pruebas retrospectivas de la plataforma cuantitativa FMZ Inventor

¿Dónde se realiza el backtesting?

Las pruebas retrospectivas de las estrategias de JavaScript se realizan en el navegador y Python puede elegir los servidores de FMZ o su propio host.

¿Se pueden descargar los registros de backtest?

Sí, hay un botón de descarga en la esquina superior derecha del registro.

¿Puedo realizar pruebas retrospectivas localmente?

FMZ ha hecho público el código abierto de su motor de backtesting Python. Referencia: https://www.fmz.com/bbs-topic/1687