Documentación

Aplicaciones

Última actualización el 26. 2. 2019 by Kornel Mazur

Comprobaciones cruzadas: pruebas automatizadas de solidez de la estrategia

El mayor peligro de las estrategias generadas mediante cualquier proceso de aprendizaje automático es el sobreajuste (o ajuste de curvas) de la estrategia a los datos históricos sobre los que se construyó es .

Durante o después de desarrollar una nueva estrategia, debe asegurarse de que sea sólida, lo que aumentará la probabilidad de que funcione también en el futuro.

 

¿Qué es la robustez?

Es simplemente la propiedad de la estrategia de poder hacer frente a condiciones cambiantes:

  • En primer lugar, la estrategia debería funcionar con datos desconocidos (si las características del mercado no han cambiado), con o sin reoptimización periódica de los parámetros.
  • No debería romperse si se pierden algunas operaciones.
  • Una estrategia robusta no debería ser demasiado sensible a los parámetros de entrada - debería funcionar incluso si se cambian ligeramente los valores de los parámetros de entrada, como el periodo del indicador o alguna constante o si se cambian ligeramente los datos históricos - se aumenta el diferencial o el deslizamiento, etc.

la prueba más básica de robustez consiste en probar la estrategia con datos desconocidos (fuera de la muestra).

Si ejecuta la evolución genética, la estrategia evoluciona sólo en la parte de datos En Muestra. La parte fuera de la muestra es "desconocida" para la estrategia, por lo que puede utilizarse para determinar si la estrategia funciona también en la parte desconocida de los datos.

 

Evitar estrategias sobreajustadas (ajustadas a curvas)

La parte azul de cada gráfico son los datos fuera de la muestra (desconocidos)., Podemos ver que la estrategia de la izquierda funciona bien también en esta parte, mientras que la estrategia de la derecha falla en los datos desconocidos - es casi seguro que se ajuste a la curva.

 

Comprobaciones cruzadas automáticas de robustez en SQ X

Las comprobaciones cruzadas son métodos adicionales opcionales que se pueden aplicar a cada estrategia después de que se genere y pase los primeros filtros.

Consulte este artículo sobre cómo Utilización de comprobaciones cruzadas en Builder y Retester

Las comprobaciones cruzadas pueden verificar la solidez de la estrategia desde más puntos de vista: negociándola en mercados adicionales, o utilizando métodos Monte Carlo para simular 100s curvas de renta variable diferentes, o incluso utilizando la optimización Walk-Forward o Matrix.

Lo importante es que puede utilizar filtros de comprobación cruzada para descartar la estrategia si no pasa la prueba de comprobación cruzada. Esto le permite crear embudos, en los que la estrategia se examina mediante métodos cada vez más avanzados (y que exigen más tiempo), y la estrategia que falla se descarta automáticamente.

Embudo automatizado de pruebas de robustez en StrategyQuant X

Ejemplo de embudo de filtrado mediante comprobaciones cruzadas durante la compilación

De ti depende cuántas comprobaciones cruzadas emplearás y cómo configurarás sus filtros.

Los controles cruzados se dividen en tres grupos (básicos, estándar y exhaustivos) en función del tiempo que requieran.

También se aplican desde las más sencillas a las más complicadas. Así, si la estrategia no supera la Comprobación cruzada 1, se descarta y no se comprueba con la Comprobación cruzada 2.

 

Tenga en cuenta que la comprobación cruzada de una estrategia puede llevar mucho tiempo.
Algunos métodos de comprobación cruzada realizan simulaciones complicadas y cientos o incluso miles de pruebas retrospectivas de la estrategia con diferentes parámetros y tardan miles de veces más que la generación inicial de la estrategia y la prueba retrospectiva inicial. Así, una estrategia sin ninguna comprobación cruzada puede generarse (por ejemplo) en 0,2 segundos, pero con algunas comprobaciones cruzadas aplicadas podría tardar fácilmente entre 10 y 200 segundos por estrategia.

 

Las comprobaciones cruzadas también se pueden utilizar en Retester (sin filtrado), por lo que no es necesario utilizar todas las comprobaciones cruzadas en el modo de compilación.

Posible uso de los controles cruzados

Una posible aplicación de comprobación cruzada podría ser utilizar:

  • Comprobación cruzada Pruebas con mayor precisión
  • Comprobación cruzada Manipulación de operaciones Monte Carlo
  • Comprobación cruzada Nueva prueba en otros mercados
  • Comprobación cruzada opcional Métodos de repetición de Monte Carlo

StrategyQuant realizará entonces los siguientes pasos para cada estrategia generada:

  1. La estrategia se genera aleatoriamente y se prueba con la precisión más rápida del "marco temporal seleccionado" (depende de su configuración, pero es la predeterminada).
  2.  La estrategia es automáticamente filtrada y desechada (dismissed) si no pasa sus filtros globales, por ejemplo, si no tiene suficientes operaciones o si el Beneficio Neto < $1000
  3. Comprobación cruzada Pruebas con mayor precisión volverá a probar esta estrategia con precisión de minuto o incluso de tick real - para asegurarse de que la estrategia fue backtested fiable utilizando la precisión básica. Tenga en cuenta que sólo las estrategias que pasen el punto 2. llegarán aquí. Si la estrategia no pasa esta primera comprobación, será descartada.
  4. Comprobación cruzada Manipulación de operaciones Monte Carlo ejecutará un número de simulaciones de diferentes curvas de equidad manipulando las operaciones existentes - para asegurar que la curva de equidad original no se logró sólo por suerte. Filtrará las estrategias que no pasen esta prueba de Monte Carlo
  5. Comprobación cruzada Nueva prueba en otros mercados probará la estrategia en mercados o plazos adicionales. Si no es rentable en otros mercados se filtra.
  6. Comprobación cruzada opcional Métodos de repetición de Monte Carlo ejecutará un número de simulaciones donde cada simulación es un nuevo backtest de la estrategia usando pequeñas variaciones en los parámetros de los indicadores de la estrategia, opciones de trading como spread, slippage, o en los datos históricos.Tenga en cuenta que cada simulación es un backtest independiente, por lo que si tardó 0.2 segundos en realizar el backtest de la estrategia en el paso 1., tardará 100 x 0.2 s. = 20 segundos en finalizar esta comprobación cruzada para esta única estrategia si utiliza 100 simulaciones Monte Carlo.
    Si la estrategia supera también estas comprobaciones cruzadas, se guarda en la base de datos y se puede tener bastante confianza en que es lo suficientemente sólida.

 

Encontrará una descripción más detallada de las comprobaciones cruzadas en la sección Comprobaciones cruzadas - pruebas de robustez sección.

¿Le ha resultado útil este artículo? El artículo era útil El artículo no era útil

Suscríbase a
Notificar a
2 Comentarios
Más antiguo
Más reciente Más votados
Feedbacks de Inline
Ver todos los comentarios
James Colton
17. 1. 2023 10:38 pm

Establecí una prueba con los parámetros por defecto y obtuve resultados satisfactorios cada minuto más o menos. Luego, al observar que muchos resultados eran significativamente superiores a los criterios mínimos de aceptación, volví a iniciar la prueba con unos estándares mínimos moderadamente más altos que deberían haber capturado quizás 10% tantas estrategias como generaban los parámetros de prueba anteriores. Tras 6 horas, ni un solo resultado superó la revisión inicial. ¿Necesita el constructor ejemplos de éxito para saber dónde buscar? En otras palabras, ¿Debería esperar mejores resultados si inicialmente establezco mis estándares más bajos de lo que jamás consideraría operar?

tomas262
Admin
Responder a  James Colton
19. 1. 2023 7:22 pm

puede enviarnos el flujo de trabajo para el análisis, comprobamos sus archivos de configuración CFX lo que podría estar configurado incorrectamente