Nuevas pruebas Monte Carlo, fragmento de gestión monetaria y bloques personalizados

En los últimos meses, tanto el servidor de intercambio como Strategy Quant X se han actualizado con nuevos fragmentos, lo que permite evaluar la solidez de las estrategias. Definimos la "solidez" como la capacidad de las estrategias para conservar sus atributos cualitativos a lo largo del tiempo.

Hemos incluido tres nuevas pruebas de Monte Carlo y un fragmento de Money Management. A continuación, ofreceremos una descripción concisa de cada uno de ellos y de cómo pueden ayudar a ampliar con éxito la curva de capital de sus estrategias, permitiéndole así recorrer con éxito el camino de un operador algorítmico.

Hemos añadido los siguientes fragmentos nuevos:

  • Monte Carlo - Modificado Aleatorizar los parámetros de la estrategia 
  • Monte Carlo - Aleatorizar SWAP de todo un backtest  
  • Monte Carlo - SWAP aleatorio de cada operación 
  • Dimensionamiento proporcional fijo de la posición
  • Nuevos bloques personalizados basados en la lógica de subida/bajada

 

Este artículo del blog explicará y detallará estos fragmentos y cómo utilizarlos.

 

Monte Carlo - Parámetros personalizables de la estrategia de aleatorización

Se trata de un Aleatorizar el parámetro Estrategia prueba. Para la prueba por defecto, los parámetros que se aleatorizan están predeterminados. Las opciones de Trading son aleatorias en la práctica, mientras que los Turnos no lo son. Tal configuración, en mi opinión, nos impide evaluar las estrategias de inicio con todo el detalle que necesitaríamos.

Puede ver la configuración del fragmento en el ejemplo anterior.

 

Monte Carlo Modified Randomize Strategy parameters es un fragmento parametrizable que le permite aleatorizar los parámetros utilizados en las estrategias. Puede especificar lo que desea aleatorizar.

  • Periodos
  • Turno
  • Constantes
  • Otros parámetros
  • Salida Utilizada
  • Salida No utilizada
  • Booleano
  • Opciones comerciales

Esta prueba mejora significativamente su capacidad para probar estrategias y. Mi flujo de trabajo típico incluye varios pasos para utilizar estas pruebas.

  1. Aleatorizo los periodos de los indicadores.
  2. Aleatorizo la salida utilizada - stop loss y objetivos de beneficio.
  3. Aleatorizo las constantes. 
  4. ...

 

La mayoría de las estrategias incluyen un indicador con un parámetro de tipo Período (por ejemplo, Media Móvil tiene un período de 20).Este es el primero en el que determino si la estrategia no está sobreoptimizada a nivel de Período. Luego aleatorizo los parámetros de tipo Salida Utilizada (stop loss y objetivos de beneficio). En el caso de los desplazamientos, Si está probando el parámetro de tipo Desplazamiento , utilice valores de cambio máximo de 100 o más. El cambio máximo de 100 o más indica que el desplazamiento puede moverse hacia abajo o hacia arriba en 100% o más (de 1 a 2).

También se puede establecer la simetría de los parámetros (se aplican los mismos parámetros a las operaciones largas y cortas). Por defecto, este parámetro se establece en True.

 

Monte Carlo Aleatorizar SWAP de todo un backtest 

Un SWAP es la tasa de interés o crédito que se aplica a la cuenta de un operador cuando mantiene una posición durante la noche en operaciones con divisas o CFD. Esta comisión viene determinada por el diferencial de tipos de interés entre las dos divisas de un par de divisas o el coste de mantener una posición en CFD. Puede ser positiva (un crédito) o negativa (un débito) en función de la dirección de la operación y del diferencial de tipos de interés.

 

Si aplicamos esta prueba de Monte Carlo, cada backtest contendrá valores de swap generados aleatoriamente dentro del rango [-Rango,Rango].Dicho de forma sencilla, haciendo 500 (o un número diferente) backtests con swaps generados aleatoriamente, puede adquirir una perspectiva de análisis Monte Carlo sobre la alteración de los Swaps. 

En este ejemplo concreto, hemos realizado 100 simulaciones con SWAP aleatorio para cada operación.

 

Este parámetro del fragmento de código es aleatorio:

  • Rango: el rango dentro del cual se selecciona el canje.

Se genera un número aleatorio dentro del rango de -20 a 20 cuando se selecciona Rango = 20. El segundo número aleatorio será negativo si el primero es positivo. Esto garantizará que especifiquemos de forma coherente tanto la dispersión positiva como la negativa.

Los siguientes parámetros son fijos y no están sujetos a aleatorización:

  • Tipo de swap - Método de cálculo del swap ( puntos, dinero, porcentajes) 
  • Triple swap El día en que se aplica un triple swap 
  • Hora durante la que se contabiliza el canje

Es posible modificar cada uno de los parámetros mencionados anteriormente.

 

Monte Carlo Aleatorizar SWAP de cada operación 

En este ejemplo concreto, hemos realizado 100 simulaciones con SWAP aleatorio para cada operación.

 

Esta prueba difiere de la anterior en que aleatoriza cada operación en la prueba retrospectiva actual. La operación inicial puede incluir un swap largo positivo y un swap corto negativo, mientras que las operaciones posteriores pueden tener combinaciones de swaps totalmente distintas. Por lo tanto, esta prueba implementa un swap aleatorio para cada operación. Si el número de simulaciones Monte Varlo se fija en 500, habrá 500 backtests existentes, cada uno de los cuales tendrá un swap único.

El rendimiento de la estrategia en presencia de tipos de interés cambiantes que influyan en el tamaño de los swaps debe simularse mediante estas dos pruebas.

 

Dimensionamiento proporcional fijo de la posición.

El tamaño de posición proporcional fijo es un fragmento de gestión monetaria que le permite conectar el tamaño fijo de los contratos de lote con una proporción específica del saldo. Esto permite una adaptación más eficaz al aumento o disminución del saldo durante las pruebas retrospectivas.

El ejemplo anterior ilustra la curva creciente de equidad/saldo y el número creciente de lotes negociados en cada operación.

 

Ejemplo de dimensionamiento fijo Proporcional en Futuros

La estrategia con tamaño proporcional Fixed Money negocia un microcontrato Nasdaq por cada 2000 de saldo. Si el saldo es de 4000, la estrategia negociará dos microcontratos.

Ejemplo de dimensionamiento fijo Proporcional en Forex

Tengo un saldo de 2000 y me gustaría negociar cada 500 lotes de 0,01. En este caso, negociaré 0,04 lotes y tendré entre $2000 y $2500 en mi cuenta. Si mi saldo llega a 2501, negociaré 0,05 lotes.

Parámetros 

  • Tamaño del pedido por proporción de saldo
  • 1TP9Porción del saldo
  • Tamaño mínimo del pedido

La gestión del dinero está implementada para las plataformas Metatrader 4, Metatrader 5, Tradestation y Multicharts.

 

Sube/Baja Bloques personalizados 

Los bloques personalizados son esenciales para optimizar la flexibilidad de las estrategias de negociación algorítmica en StrategyQuant X. Permiten a los usuarios establecer su propia lógica y reglas de negociación, además del conjunto estándar de indicadores o acciones que están disponibles en la plataforma.

Los bloques personalizados pueden emplearse para generar condiciones, señales o indicadores únicos que sean adecuados con estrategias de negociación particulares. Por ejemplo, es posible establecer un bloque personalizado que determine si el Índice de Fuerza Relativa (RSI) se mantiene por encima de un umbral predeterminado durante una cantidad específica de barras. Esto proporciona a los usuarios la capacidad de regular la forma en que sus estrategias responden a las condiciones específicas del mercado en el tiempo. 

La lógica avanzada, como la detección de falsas rupturas, movimientos consecutivos de precios o condiciones personalizadas que implican múltiples comparaciones, también puede incorporarse en bloques personalizados. Estos bloques pueden configurarse en el Asistente Algo o utilizarse directamente en el Constructor de StrategyQuant o en la plantilla de estrategia.

La lógica del bloque personalizado isRising/isFalling ha habilitado la posibilidad de personalización. Estos se parametrizan con mayor precisión que el defeault -> Puede establecer / optimizar la duración de la subida o bajada de más de 2 bares.

En este ejemplo podemos ver que el bloque personalizado Is Rising BarRange puede ser optimizado desde 2 - 24 compases.

 Hay 54 nuevos bloques personalizados en total.

 

Puede descargar todos los fragmentos en codebase aquí.

 

 

clonex / Ivan Hudec

Ivan Hudec — “Clonex” en el foro

Llevo 15 años dedicándome al trading y trabajando con StrategyQuant X desde 2014. Actualmente me dedico a tres cosas: desarrollo y pongo a prueba estrategias automatizadas, amplío las funcionalidades de SQX con indicadores personalizados, fragmentos de código y herramientas de Python para el aprendizaje automático y la investigación cuantitativa, y ayudo a otros operadores a alcanzar sus objetivos más rápido, sin tener que pasar por los costosos errores que yo cometí a lo largo de estos años.
La mayoría de las estrategias de trading parecen fantásticas en las pruebas retrospectivas, pero se desmoronan en el mercado real. Mi trabajo es justo lo contrario: estrategias que son fiables, están validadas y son lo suficientemente sólidas como para apostar por ellas con dinero real. Escribo sobre ese proceso —lo bueno, lo malo y el sobreajuste del que nadie habla— en mi página web, algotrading.space.
Si quieres profundizar en la validación, el desarrollo personalizado de SQX o cómo crear una ventaja competitiva real con datos y código, ahí es donde lo comparto todo.  www.algotrading.space

1 Comentario
Más antiguo
Más reciente Más votados
Chris G
Chris G
2. 10. 2024 2:59 am

¡¡¡Esto es increíble, el Montecarlo en detalle siempre hace falta!!!

Seguir leyendo