Edge Ratio en StrategyQuant X

Una pregunta común de muchos comerciantes que utilizan StrategyQuant X es: ¿Cómo puedo comparar la calidad de las señales de entrada de estrategia? ¿Qué señal tiene una mejor ventaja y tiene una mayor probabilidad de éxito?  En este artículo, le mostraré cómo utilizar la nueva herramienta EDGE Ratio para evaluar la calidad de las señales de trading. El Edge Ratio fue mencionado públicamente por primera vez en un libro muy bueno de Curtis Faith Way of the Turtle. 

En la última versión de StrategyQuant X - build 131 hemos añadido la posibilidad de trabajar con el valor ATR(14) en un momento de apertura de posición. Este valor se puede acceder a través del campo order.ATROnOpen, que es una característica clave para el uso de la herramienta de ratio EDGE.

 

 

¿Qué es el Edge Ratio?

El Edge Ratio es la relación MFE / MAE normalizada por la volatilidad del instrumento en el momento de abrir la posición.

Expliquemos ahora los componentes individuales a partir de los cuales se calcula la proporción de bordes:

Excursión máxima adversa (MAE) mide la pérdida máxima sufrida por una sola operación mientras está abierta.

Por el contrario, Excursión máxima favorable (MFE) mide el mayor beneficio máximo obtenido por una sola operación mientras está abierta.

ATR - Average true range (rango medio real) mide la volatilidad del instrumento.

 

La imagen anterior muestra mejor la relación entre MAE / MFE y Beneficio/Pérdida.

La primera fila muestra que el Beneficio/Pérdida de la posición fue de 5.7 , mientras que MAE - la mayor caída durante la operación fue de 32.5 Pips. El mayor beneficio observado de MFE durante una operación fue de 45,6 pipos. Así que podemos ver que mientras que el beneficio final de la posición fue moderado, el MFE fue mucho mayor por lo que el potencial de la operación no fue satisfecho.

El análisis de estos ratios puede ayudarle a descubrir si sus métodos de salida son suficientemente buenos. En el caso del MAE, puede ayudarle a saber si sus salidas son suficientemente buenas. Puede leer más sobre estos ratios en este buen artículo enlace.

 

Volvamos al cálculo del Edge Ratio propiamente dicho. El ratio de aristas se calcula del siguiente modo

  1. Registre el MAE en pips y el MFE en pips para cada operación
  2. Divida cada uno de ellos por ATR(14) para ajustar la volatilidad y normalizar para futuros análisis entre mercados.
  3. Sume cada valor (MAE normalizado y MFE normalizado) y divídalo por el número total de operaciones.
  4. La relación de flancos es la MFE normalizada de volatilidad media dividida por la MAE normalizada de volatilidad media.

Por tanto, cuanto mayor sea la MFE y, simultáneamente, menor sea la MAE, mayor será la relación de borde. Esto significa que la señal tiene un borde más alto. (El potencial de beneficio comercial es mayor que el potencial de pérdida).

 

¿Cómo podemos utilizar el ratio de borde en StrategyQuant X?

En primer lugar, podemos utilizar el ratio de ventaja como indicador del rendimiento de la estrategia. Podemos trabajar con la hipótesis de que las estrategias con un ratio de ventaja más alto pueden ser más resistentes a posibles cambios en el comercio fuera de la muestra / real. Sin embargo, se trata de una hipótesis que debería apoyarse en amplios análisis de validación, idealmente con varios cientos de miles de estrategias probadas a lo largo de múltiples periodos.

En 2020, realicé una investigación sobre la muestra de 1,2 millones de estrategias generadas aleatoriamente e intenté identificar las características (ratio de Sharpe, factor de beneficio, etc. ) cuyos valores pueden afectar al verdadero rendimiento fuera de la muestra de una estrategia. Básicamente, intenté identificar la clasificación (condiciones de filtrado de estrategias) para seleccionar estrategias para la negociación en vivo. Utilicé el ratio Pseudo Edge en mis cálculos ratio MFE / MAE y sorprendentemente el ratio pseudo-edge demostró ser un buen predictor de la selección de estrategias de alta calidad. Sin embargo, esta investigación aún no ha concluido, por lo que trataremos este tema en un próximo artículo.

El tipo de órdenes afecta a los resultados del edge ratio. Yo utilizo principalmente órdenes de mercado para medir la calidad de la señal de apertura y cierre, ya que las órdenes Stop/Limit implican otros factores/dimensiones que afectan al valor real de la señal.

 

Otras preguntas

En este punto, deben considerarse otros factores importantes. Sabemos que StrategyQuant cuenta con un constructor de motores genéticos muy eficiente, que además se mejora constantemente.

Sin embargo, hay que contar con que podemos trabajar con miles de millones de combinaciones de bloques de construcción de estrategias. El número de condiciones y posibilidades se denomina grados de libertad. Desde la perspectiva del aprendizaje automático y la ciencia de datos, cuanto mayor sea el número de grados de libertad, mayor será el riesgo de sobreajuste de la estrategia, aunque esta supere las pruebas MC y otras pruebas de robustez.

Esto no es sólo un problema para nosotros, los desarrolladores de algo, sino también para los científicos que trabajan en el campo de los algoritmos evolutivos. En cualquier caso, el sobreajuste durante el desarrollo de estrategias puede conducir al fracaso de la estrategia en condiciones de tiempo real y, finalmente, al colapso de su borde.

La relación Edge puede ser un componente importante del puente entre las estrategias de desarrollo de flujos de trabajo puramente genéticas y un desarrollo IDEA FIRST. Un papel clave en este proceso lo desempeña el Bloques personalizados - SQX, disponible a partir de la versión 127, que nos permite definir nuestras propias partes de la estrategia. Creo que los bloques personalizados son un verdadero cambio de juego y una parte importante del flujo de trabajo de creación de estrategias en StrategyQuant.

Puede definir filtros de Régimen, predefinir condiciones de entrada de ruptura y preparar el diseño de su estrategia de forma muy sofisticada. Con un diseño de estrategia razonable y una configuración moderada del motor genético, en mi opinión, es posible eliminar significativamente el factor de sobreajuste en el desarrollo de estrategias desde la perspectiva de la complejidad de la estrategia y la complejidad de la configuración del constructor del motor genético.

Cabe señalar que incluso durante todo el primer flujo de trabajo de la idea es es extremadamente importante prestar atención al método de partición de datos "entrenar/testear/validar".

StrategyQuantX es tan flexible que hay varias formas de analizar el ratio de borde. Hay flujos de trabajo complejos en los que hay que trabajar con un análisis de estrategia externo, extrayendo reglas de xml para sincronizarlas con SQX, etc. y hay opciones más sencillas que se pueden utilizar dentro del flujo de trabajo existente de SQX. En nuestro análisis no utilizaremos ninguna herramienta externa, todo lo que necesitamos está incluido en StrategyQuant.

 

Enfoque incremental mejorador

Para este enfoque, utilizaremos bloques personalizados, plantillas y desarrollo incremental de estrategias utilizando el motor genético de SQX. Como primer paso, utilizaremos el análisis Edge ratio para evaluar la calidad de las señales y seleccionar las que tengan mayor potencial.

A continuación, basándonos en este análisis, seleccionaremos los grupos de bloques/estrategias con mayor potencial y los utilizaremos en el proceso de desarrollo genético de StrategyQuantX. De esta forma reduciremos los grados de libertad y eliminaremos la posibilidad de que SQX encuentre estrategias demasiado sensibles al ruido.

 

1. Selección de la cesta de bloques probados

En este paso, seleccionaremos la cesta de los bloques de construcción que probaremos en nuestro análisis.

Podemos seleccionar bloques de construcción que ya están implementados en StrategyQuant o crear los suyos utilizando la funcionalidad de bloques de construcción personalizados.

Aquí tienes varios enlaces útiles donde puedes aprender a crear tu bloque de construcción personalizado:

No olvide una cosa importante. Si utiliza bloques personalizados y examina señales largas y cortas al mismo tiempo, entonces tiene que establecer el bloque opuesto para cada bloque personalizado. De nuevo, necesitamos entender completamente esta funcionalidad en SQX.

También puede utilizar bloques predefinidos que están en Strategyquant X por defecto. A continuación, en la imagen, puede encontrar los bloques de construcción seleccionados que probaremos en nuestro análisis.

Selección de componentes básicos para nuestro análisis

2. Creación de una plantilla de estrategia de pruebas para realizar análisis.

Las plantillas de estrategia nos permiten generar casi cualquier tipo de estrategia en StrategyQuant. Antes de proceder a la creación de la plantilla de estrategia para nuestro análisis, por favor revise la descripción detallada de cómo funcionan las plantillas en nuestra documentación. aquí.

Para nuestro análisis crearemos una plantilla con la siguiente estructura: La estrategia estará siempre en el mercado. Entrará en una operación larga cuando se produzca una señal larga. Entrará en una operación corta cuando se produzca una señal opuesta a la operación larga.

En la imagen de abajo podemos ver cómo establecemos nuestras señales de entrada y salida.

En la imagen de abajo podemos ver l no utilizar ningún método de salida y entramos en el Enter/Reverse At Market.

En la imagen de abajo podemos ver que la lógica de salida es simple.

 

3. Configuración de Builder en StrategyQuant X

En primer lugar, tenga en cuenta que cuando se utiliza la plantilla de estrategia, algunos ajustes se anulan. En otras palabras: Lo que establezcamos en la plantilla de estrategia tiene prioridad sobre lo que establezcamos en el constructor.

Decidimos generar a partir de la plantilla que creamos en el segundo paso. Cambiamos los ajustes en la configuración de compilación adicional para reflejar nuestra intención:

  • utilizaremos la generación aleatoria de estrategias
  • utilizaremos como máximo una condición(señal) para generar.

Bloques/condiciones que elegimos de la lista de bloques que queremos analizar. Podemos elegir los bloques personalizados que preparamos en el primer paso.

No seleccionamos ningún método de entrada o salida precisamente porque están anulados en la plantilla de la estrategia.

Otra cosa esencial. Es importante establecer un número mínimo de señales analizadas - en otras palabras, el número de operaciones.

Analizar las señales de edge ratio con un número reducido de operaciones es, en mi opinión, una tontería estadística. Un número demasiado alto de señales resultará en un factor de beneficio bajo para la estrategia, y probablemente la mayor parte de sus beneficios serán devorados por los costes de negociación. Por otro lado - un bajo número de señales puede ser estadísticamente insignificante.

Si queremos estimar el número mínimo de operaciones de forma estadísticamente correcta, el Fórmula de Cochran para el tamaño de la muestra puede ayudarnos.

 

4. Generación de estrategias

Después de haber preparado todos los ajustes, podemos ejecutar el Builder en StrategyQuantX. Ejecutamos el constructor durante unas horas para obtener una gran muestra de estrategias con señales.

En la imagen de abajo, se puede ver nuestra base de datos después de unas horas. Tenga en cuenta que tenemos estrategias en el banco de datos que terminaron en una pérdida - que tienen un beneficio neto negativo, pero tienen una alta relación de borde. No nos importa el resultado de la estrategia. Nos importa si la señal tiene un ratio de borde positivo.

Seleccionaremos las estrategias con señales que tengan un edge ratio superior a nuestro umbral. Elegimos estrategias con un ratio de borde superior a 1,5 .

En la imagen de abajo puede ver cómo será la estrategia aleatoria. Desde el pseudo-código, se puede ver que la estrategia utiliza una regla para entrar en largo y su señal opuesta para entrar en corto. Así es exactamente como queremos medir la calidad de las señales. No hay otras salidas, sólo la señal pura.

 

 

5. Evaluación de la robustez de la señal

Es una buena idea pensar en una posible evaluación más profunda de las señales. Al tener estrategias con muy baja complejidad ( Sólo tenemos una señal sin otras variables), podemos analizar la robustez más fácilmente.

En este punto, recomiendo realizar una prueba de Monte Carlo para aleatorizar los parámetros. De esta forma, puede hacerse una idea de si una señal determinada no es una casualidad estadísticamente sobreajustada, o puede optimizar una estrategia de señal determinada para ver si los parámetros de señal son robustos. Permutación de Parámetros del Sistema - SPP es bueno para mostrarnos dónde se sitúan los ajustes de los parámetros de la señal dentro de la distribución de resultados.

 

6. Uso de Improver para buscar métodos de salida y entrada adecuados

Hemos seleccionado estrategias robustas ( señales ) y queremos construir estrategias sobre ellas. Strategy Improver está disponible para este propósito. Ahora podemos establecer algunos ajustes en la configuración de construcción adicional de forma más flexible. En este caso, establecemos Stop Loss como la opción requerida. También cargamos las estrategias que seleccionamos anteriormente en el paso 4 en el banco de datos "Estrategias a mejorar".

 

En este paso, establecemos qué partes queremos mejorar. Dejaremos las señales o condiciones de entrada como están, mejoraremos sólo los métodos de entrada/salida.

En Building Blocks, establecemos los tipos de Entrada y Salida. No olvide añadir indicadores y bloques de entrada stop/límite. Si no los añade, el mejorador no encontrará ninguna mejora.

Algunas opciones de Improver funcionan de forma diferente. La diferencia está principalmente en la clasificación de estrategias. Cuando se mejoran las estrategias, se establece cuántas estrategias mejoradas debe haber en la base de datos, al menos para que el mejorador pase a la siguiente estrategia. Si fijas un valor alto, puede que el mejorador no encuentre suficientes estrategias para mejorar y se quede atascado.

Hay un error menor en StrategyQuantX 131 a partir de 22.4.2021 que hace que sea imposible utilizar el ajuste de la clasificación de tiempo correctamente. De todas formas debería estar solucionado en unos días, ahora tenemos que adaptar y ajustar nuestro flujo de trabajo para que no sea un problema.

El objetivo es asegurarse de que el mejorador encuentra estrategias, así que configuro el mejorador para que me encuentre al menos diez estrategias de cada estrategia base. También es importante reducir el número de operaciones, ya que es probable que el motor genético seleccione estrategias con órdenes stop/límite y, por lo tanto, el número de operaciones se reducirá y será inferior al número original de señales.

 

Conclusión

Lo bueno de este enfoque incremental es que podemos separar las fases de evaluación. En el paso 6 pudimos analizar por separado la calidad de la señal. Ahora, tras añadir las nuevas salidas, podemos evaluar por separado la robustez de los métodos de salida. Analizar problemas multidimensionales a la vez es muy difícil y, como mínimo, propenso a errores.

Es posible que se haya preguntado cómo determinar si se trata de un flujo de trabajo mejor que el actual. La solución que yo utilizo es reservar dos años de datos con los que validar mis conclusiones. Pruebe a generar unos cuantos miles de estrategias según su flujo de trabajo y valide el rendimiento frente a dos años de datos reales fuera de muestra. A continuación, trate de utilizar ese flujo de trabajo para comparar la distribución de los resultados y hacer una estimación estadística de si la diferencia media en el rendimiento de la estrategia es estadísticamente significativa. En un post posterior, analizaremos estadísticamente este flujo de trabajo y determinaremos hasta qué punto es eficiente.

Puede descargar el fragmento de edge ratio aquí

 

 

Suscríbase a
Notificar a
8 Comentarios
Más antiguo
Más reciente Más votados
Feedbacks de Inline
Ver todos los comentarios
A Casey
A Casey
16. 5. 2021 5:55 am

Muy buen post, ¡espero con impaciencia el próximo!

Marco
Marco
22. 5. 2021 6:25 am

Probé este modelo. Si No seleccionamos ningún método de salidaLas estrategias sólo tienen una operación. ¿Estoy equivocado algunos ajustes?

clonex
clonex
Responder a  Marco
28. 5. 2021 4:08 pm

Tienes que establecer un método de salida en las etapas posteriores ....

eduardo
eduardo
2. 6. 2021 12:24 am

Has plasmado lo que yo pensaba sin saberlo desde hace mucho tiempo. Es un trabajo espectacular, oro puro, estoy ansioso por conocer tus avances en el próximo blog

Emmanuel
19. 1. 2022 12:50 am

Excelente artículo !!! y muy útil !!! gracias Clonex !

tonyc
tonyc
7. 5. 2022 3:42 am

¿Puede compartir el archivo EdgeRatio.sqx?

tomas262
Admin
Responder a  tonyc
11. 5. 2022 11:39 am

Puede encontrar más información sobre la ración Edge aquí https://strategyquant.com/codebase/trade-edge-ratio/ en nuestra base de código

Farhan
13. 7. 2022 9:21 am

Gracias por la gran idea. en la primera etapa Si establezco el filtro de comercio #of a> 200 entonces se filtra todas las estrategias, ya que sólo tomó 1 comercio. así que no tengo ninguna estrategia para continuar en la segunda etapa para mejorar

Última edición hace 1 año por Farhan

Seguir leyendo