3 claves para el backtesting algo criptográfico PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

3 claves para el backtesting de algo crypto

Muchos artículos sobre el comercio algorítmico de criptomonedas simplifican demasiado la realidad de construir una plataforma comercial y realizar pruebas retrospectivas del código. Aquí revisaremos 3 aspectos del backtesting que a menudo se pasan por alto pero que son clave para lograr resultados.

3 claves para el backtesting algo criptográfico PlatoBlockchain Data Intelligence. Búsqueda vertical. Ai.

Vayamos directo al grano, las 3 claves del backtesting:

  • vela valores bajos para paradas
  • administrar precio de ejecución
  • iterativamente comparando el backtest con los reales

Esto significa que es necesario realizar un backtesting sólido. mucho esfuerzo (¡No es de extrañar!), pero profundicemos en esto más a fondo.

Muchas plataformas de backtesting utilizan velas Cerrar valor para cada tick. Operando en vivo con órdenes stop-loss es el valor bajo en un tick lo que detendrá su posición.

vamos aook en un ejemplo. En el siguiente gráfico para BTC, imaginemos que ejecutamos una orden de COMPRA en la línea azul de la vela verde inferior, aproximadamente a mitad de camino entre el mínimo y el máximo para ese tick.

El mínimo del siguiente tick podría desencadenar un stop si se tratara de un stop-loss ajustado. Pero si su código de backtest supone una VENTA con stop-loss al cierre, entonces ese no es el caso y la posición se extendería hacia adelante en su simulación. Mire de cerca la vela roja que sigue al tic de entrada verde (cruz), sus valores de cierre y mínimo son muy diferentes. En este caso concreto, este último arrojaría un beneficio mayor.

De ahí el impacto de una COMPRA a un precio más alto que el de apertura. puede tener graves consecuencias para su simulación y backtesting. Es no la diferencia entre el precio ejecutado y el tick de apertura; en cambio, puede haber una gran diferencia en la forma en que la posición se extiende y obtiene ganancias.

El precio de ejecución puede tener un efecto en cascada sobre las ganancias de una operación.

Considere 2 posiciones, una entró a las 20.00:20.50 (para usar números redondos), la segunda a las 0.50:XNUMX, un precio ligeramente más alto (compra de mercado). Esta diferencia [relativamente pequeña] de XNUMX unidades puede tener un efecto cascada del beneficio de la posición a lo largo del tiempo. ¿Por qué? Porque en un tick posterior la posición 20.50 podría detenerse ya que un valor bajo podría ser inferior a su configuración de stop-loss. Mientras tanto, la primera posición continúa durante muchos más ticks para obtener ganancias. ¡Gran diferencia!

Para lidiar con esto necesitamos estimar nuestros precios ejecutados...

Es importante tener en cuenta que el trabajo del backtesting es estimar los rendimientos de un modelo/estrategia cuando se ejecutó en el pasado.

Su código de backtesting no sabe qué precio recibió una operación (tiempo pasado) en el lado de COMPRA o VENTA.

Al analizar datos históricos del mercado, no se puede conocer el precio real de ejecución de la orden. De hecho, es posible que tenga un registro que muestre el precio real de una posición, pero el backtrader esté mirando datos generales del mercado, no registros comerciales individuales.

Usar el precio de apertura para un tick de entrada no es realista, ni tampoco lo es usar el precio de cierre. ¿Por qué esto hace una gran diferencia? Porque, como se analizó en la sección anterior, una entrada a un precio de ejecución más alto podría fácilmente provocar que se active una orden de venta limitada antes que en la simulación de backtest.

Quiere que los resultados de su backtesting sean ligeramente pesimistas.

No existe una respuesta real sobre dónde deben estimarse con precisión los precios de ejecución; es importante comprender que no se puede lograr esto exactamente correctamente en las simulaciones. Asumir un precio ABIERTO para sus órdenes de COMPRA es generalmente optimista y no es el enfoque ideal. De manera similar, asumir un precio CIERRE para sus órdenes de VENTA probablemente se desvíe mucho de los resultados reales.

COMPRAR en el mercado

Aquí hay algunas opciones para elegir. para órdenes de COMPRA de mercado:

a) estimar un precio de ejecución a mitad de camino (o una distancia predefinida) entre ABRIR y CERRAR de un tick

b) estimar un precio de ejecución a medio camino (o una distancia predefinida) entre el nivel BAJO y ALTO de un tick

c) elija un precio aleatorio entre ABRIR o BAJO y CERRAR o ALTO

Si bien la acción del mercado tiende a ser de naturaleza aleatoria, no soy partidario de (c) porque su código de prueba retrospectiva no será idempotente; devolverá resultados diferentes cada vez que se ejecute con los mismos datos. Esto es complicado.

La opción (b) destaca un mercado más volátil, mientras que la opción (a) lo es menos. Esto depende de usted, pero debe tomar una decisión. Podrías, por ejemplo, utilizar un índice de volatilidad como el CVI y luego elija de acuerdo con ese valor en el período que está realizando el backtesting.

Órdenes límite de VENTA para toma de ganancias

Aquí hay algunas opciones para elegir. para toma de ganancias VENDER órdenes limitadas:

a) estimar un precio de ejecución a mitad de camino (o una distancia predefinida) entre OPEN y HIGH de un tick

b) estimar un precio de ejecución a medio camino entre el CIERRE y el ALTO de un tick

c) eligió un precio aleatorio entre los valores de velas anteriores

Órdenes límite de VENTA con stop-loss

Aquí hay algunas opciones para elegir. para órdenes de límite de VENTA con stop-loss:

a) estimar un precio de ejecución a medio camino entre ABRIR y CERRAR de un tick

b) estimar un precio de ejecución a medio camino entre el CIERRE y el BAJO de un tick

c) eligió un precio aleatorio entre los valores de velas anteriores

Observe el uso de valores BAJO versus ALTO dependiendo del orden postura. Una orden de venta límite de toma de ganancias se ocupa de un precio en aumento, mientras que una orden de venta límite preventiva de stop-loss se ocupa de un precio decreciente. ¡Es probable que ambos se enfrenten a lagunas que superen los valores límite!

Manejo de órdenes de límite de pérdidas pasadas con brecha hacia abajo

Una forma muy común de expandir las pérdidas de su posición es tener un diferencia de precios hacia abajo más allá de su orden de límite de pérdidas. Su plataforma comercial debe gestionar esto identificando la posición por debajo de su orden de límite de pérdida y ejecutando una orden de venta de mercado antes de que caiga más en números rojos.

orden de límite de stop-loss mostrada en el gráfico de Binance TradingView

Recuerde que muchos intercambios comerciales no admiten órdenes de mercado de limitación de pérdidas, por ejemplo. Binance, por lo que estás obligado a usar límite de pérdida órdenes para proteger sus posiciones. Una orden de límite de pérdidas tiene un "precio límite" y un "precio límite", el primero desencadena una venta límite sobre el precio del segundo.

Muchos intercambios como Binance no admiten órdenes de límite de pérdidas.

¿Qué significa esto para su algoritmo de backtest? Para tener una visión conservadora/pesimista se debe tomar un precio de venta en alguna parte entre el precio límite del stop y el mínimo del tick. Cuanto menor sea la relación, más conservador será el resultado. Se da el caso de que un porcentaje significativo de estas órdenes límite de stop-loss se ejecutarán a su precio límite, pero otras se ejecutarán por debajo del precio límite y esto debe tenerse en cuenta.

Contabilización de órdenes de venta con toma de beneficios

Si su plataforma comercial admite modelos de toma de ganancias (debería hacerlo), mediante los cuales una posición se cierra con ganancias una vez que alcanza un nivel de salida, estas órdenes deben administrarse de manera agresiva.

En este escenario, una orden de mercado dejará ganancias sobre la mesa; es mejor realizar una orden de venta limitada a un precio específico.

Un enfoque sólido cuando se busca obtener ganancias en una posición es obtener la parte superior del libro de órdenes (ver arriba) y establecer el precio límite de VENTA en uno de estos precios. Es probable que esto se ejecute a un precio (beneficio) más alto que una orden de mercado en este momento.

¿Qué significa esto para su algoritmo de backtest? Para tener una visión conservadora/pesimista se debe asumir un precio entre el nivel de salida de toma de ganancias y el máximo. Un precio de venta real depender de la extensión del libro de pedidos en el momento de una operación pero, por supuesto, no existe un "libro de órdenes" en un simulador de backtest, por lo que debemos realizar una estimación a partir de los datos disponibles.

No hay forma de mejorar los algoritmos de backtest a menos que se comparen con los resultados reales. iterativamente.

A menos que compare iterativamente los resultados de su backtest con los resultados comerciales reales, no puede confiar en su backtesting.

A continuación se muestra un ejemplo concreto de cómo lograrlo:

  • ejecute su plataforma comercial en vivo durante un período de tiempo, por ejemplo. 24 horas
  • registrar los resultados: cada operación, cada salida, cada stop-loss
  • después de este período, ejecute su código de prueba retrospectiva en ese mismo período
  • ¡Compare los resultados del backtest con sus resultados reales!

Compare cada operación en detalle, ¿qué suposiciones hizo su código de prueba que no sean representativas de las operaciones reales?

¿Cuáles son las diferencias?

  • ¿Tu backtest es optimista? ¿Si es así, donde? ¿cómo? ¿por qué?
  • ¿Su backtest es demasiado pesimista?

Quiere que su backtest muestre constantemente un resultado ligeramente pesimista; conservador.

Después de hacer esto varias veces, apague su plataforma comercial y evolucione tanto el código de prueba como su plataforma comercial, luego iterar.

Debido a que su plataforma de operaciones en vivo puede funcionar con pedidos de tamaño relativamente pequeño, no cuesta mucho ejecutarla como prueba.

Por supuesto, durante cualquier período de tiempo habrá acciones inesperadas en el mercado; el punto aquí es identificar áreas donde su backtest claramente no está estimando lo que revelaron sus datos reales.

Algunos ejemplos de lo que encontré al hacer esto:

  • el backtest fue demasiado optimista sobre los precios LÍMITES DE VENTA, en el comercio real a menudo hubo situaciones de brecha hacia abajo que redujeron las ganancias
  • el backtest fue demasiado optimista sobre los precios de ejecución de COMPRA, en el comercio real era raro ejecutar un precio de apertura de tick
  • el backtest no capturaba órdenes de venta STOP-LOSS en valores bajos dentro de un tick; en el comercio real, esto significaba finalizar posiciones antes de tiempo.

Esta es la única forma de obtener ganancias de su plataforma de comercio de cifrado. Desarrolla tu backtesting con el tiempo e itera sobre los resultados reales para mejorarlo.

Ajuste automatizado de órdenes límite de plataforma comercial en Binance

¡Probar su modelo de negociación de algoritmos es un trabajo duro! Esto no debería sorprendernos. Aquí no existe un "camino fácil".

Source: https://medium.com/@gk_/3-keys-to-algo-crypto-backtesting-99f006cfd390?source=rss——-8—————–cryptocurrency

Sello de tiempo:

Mas de Mediana

amesfelix

Nodo de origen: 1098837
Sello de tiempo: 28 de octubre de 2021