Simulación de estrategias comerciales con ticks reales

MetaQuotes | 4 agosto, 2016

En este artículo le mostraremos los resultados de la simulación de una estrategia comercial sencilla en 3 modos: "1 minuto OHLC", usando solo los precios Open, High, Low y Close de las barras de minutos; después un modelado detallado en el modo "Todos los ticks", y la simulación más fiable en el modo "Cada tick en base a ticks reales", usando los ticks guardados en la historia.

Esto nos permitirá comprender qué calidad alcanzamos en los diferentes modos, y nos mostrará cómo usar correctamente el simulador de estrategias para obtener resultados con rapidez. El modo "1 minuto OHLC" permite hacer una simulación valorativa rápidamente,  el modelado en el modo "Todos los ticks" nos da una buena aproximación a lo real, y la simulación basada en ticks reales proporciona los resultados más exactos, pero necesita del correspondiente gasto de tiempo. Además, los errores en la lógica del robot comercial pueden influir en la cantidad de operaciones comerciales y provocar que los resultados de la comprobación de la estrategia en la historia dependan del modo de simulación elegido.


Qué estrategia comercial hemos simulado

Hemos creado una sencilla estrategia comercial basada en la ruptura del diapasón en las últimas barras RangeLength. Las reglas para comerciar en ella son las siguientes: en la nueva barra recién abierta se calcula el diapasón de los precios más altos y más bajos en las últimas N barras. En el asesor adjunto, el parámetro RangeLength es igual por defecto a 20 barras y designa la anchura de la ventana en la que construimos el diapasón.

Tras la primera ruptura del diapasón hacia arriba o hacia abajo, comienza a acumularse la estadística de los ticks entrantes: cuántos ticks han resultado por encima del nivel diapasón roto y cuántos por debajo. En cuanto los ticks entrantes sean más o iguales a TicksForEnter=30, se toma la decisión de entrar en el mercado al precio actual. Si el diapasón ha sido roto hacia arriba, entonces la cantidad de ticks por encima del nivel de ruptura deberá ser superior a la cantidad ticks por debajo de este nivel. En este caso, se realiza la compra. Para entrar en una posición corta, todo es al contrario.

La salida de una posición abierta tiene lugar después de cierto tiempo, tras BarsForExit barras. Como puede ver, las reglas comerciales son sencillas. Para que se perciba mejor, las mostramos en la figura:


Veamos cómo cambian los resultados de la simulación de esta estrategia en los tres modos diferentes de modelado ticks.


Cómo hemos realizado la simulación

Hemos simulado la estrategia comercial con EURUSD en H1, los primeros 6 meses del año 2016 — desde el 01.01.2016  al 30.06.2016. Todos los parámetros del asesor se han establecido en los valores por defecto, ya que nuestra tarea consiste en realizar una simulación simple de la estrategia en los distintos modos de modelado.



Comparando los resultados de los diferentes modos de modelado

Los resultados de la simulación en los diferentes modos se muestran en un recuadro. En primer lugar, salta a la vista la diferencia en la cantidad de operaciones comerciales. Por consiguiente, todos los demás índices de la simulación son también distintos. Además, la simulación en el modo "1 minuto OHLC" ha tenido lugar en 1.57 segundos, lo que es 23 más rápido que en el modo "Todos los ticks". Esta diferencia tendrá una gran importancia al optimizar los parámetros de entrada del sistema comercial.

A su vez, el modo "Cada tick basado en ticks reales" ha invertido aún más tiempo: 74 segundos contra los 36.7 segundos del modo "Todos los ticks". Esto se explica fácilmente: al usar los ticks reales se han modelado más de 34 millones de ticks, lo que es casi el doble que en el modo "Todos los ticks". De esta forma, cuantos más ticks usemos al realizar la simulación, más tiempo necesitaremos invertir en una pasada en el simulador de estrategias.

Parámetro
1 minuto OHLC
Todos los ticks
Cada tick
basado en ticks reales
Ticks
731 466
 18 983 485
34 099 141
Beneficio neto
169.46 -466.81
-97.24
Trades
96
 158156
Operaciones
192
 316312
Reducción de la equidad (%)
311.35 (3.38%)
 940.18 (9.29%)
625.79 (6.07%)
Reducción del balance281.25 (3.04%)
882.58 (8.76)
591.99 (5.76%)    
Trades con beneficios (%)
50 (52.08%) 82 (51.90%)73 (46.79%)
Máximo de ganancias consecutivas
2
2
2
Tiempo de simulación, incluyendo el tiempo de generación de los ticks
1.6 segundos
36.7 segundos
74 segundos (1 minuto 14 segundos )

Los informes de la simulación en los distintos modos de modelado han sido reunidos en forma de figuras GIF animadas, para que se pueda ver la diferencia en las estadísticas.


Por consiguiente, los gráficos de balance y de los propios fondos también tienen diferencias. Pero, así y con todo, se ve que esta sencilla estrategia no tiene un aspecto muy atractivo: un periodo de crecimiento alterna con otro de caída, y los gráficos de cada simulación parecen una serie de casualidades.  No se puede comerciar con un sistema así, ya que el resultado será similar al lanzamiento de una moneda.



Sistemas comerciales que dependen de la llegada de ticks

El sistema comercial demostrado depende en gran medida del método de modelado: desde el número de ticks entrantes a su orden de llegada. Al realizar la simulación en el modo "1 minuto OHLC", nos encontramos con el menor número de ticks modelados, y para entrar en el mercado no siempre resultan suficientes. Los modos "Todos los ticks" y "Cada tick basado en ticks reales" pueden tener un orden de llegada de ticks totalmente distinto. Al modelar con "Todos los ticks", obtendremos una secuencia de ticks monótona ascendente o descendente, lo que prácticamente garantiza la entrada en el mercado al romper el diapasón. Al realizar la simulación en el modo "Cada tick en base a ticks reales", se usa la historia grabada de ticks, y en esta, la dinámica de cambio de precio puede resultar totalmente inesperada.

Como resultado, incluso al principio del intervalo de simulación podemos ver que en los gráficos se distinguen los propios niveles de entrada y salida, y también que se omiten ciertos trades.



Cuatro modos de generación de ticks

El simulador de estrategias en el terminal MetaTrader 5 permite comprobar estrategias en cuatro modos de modelado de ticks, estos se describen en el artículo Fundamentos de la simulación en MetaTrader 5. El modo más rápido y general es el modo "Solo precios de apertura", en el que la operaciones se realizarán solo en la apertura de una nueva barra. En este modo, el asesor no tiene acceso a ninguna acción dentro de la barra, y viene muy bien para simular estrategias que no tienen en cuenta cómo se desarrolla el precio dentro de la barra.

El siguiente lugar en cuanto a precisión de modelado, lo ocupa el modo "1 minuto OHLC", con el que se modelan los precios Open, High, Low y Close de cada barra de minutos que entra en el diapasón simulado de la historia. De esta forma, al simular en el marco temporal H1 durante una hora, el experto será llamado 240 veces: en cada una de las barras de 60 minutos, el manejador  OnTick() será llamado 4 veces, una vez para cada precio OHLC. Con esta simulación ya se puede usar Trailing Stop y analizar el desarrollo del precio en otros marcos temporales e indicadores, de ser necesario. Por ejemplo, simular una estrategia del tipo "Triple pantalla de Elder".

Estos dos modos vienen bien para simular multitud de estrategias comerciales, puesto que la mayoría de los tráders escriben robots para trabajar precisamente con la apertura de la barra. Pero si usted necesita realizar un modelado más preciso y detallado de los ticks entrantes, entonces necesitará el modo "Todos los ticks". En este modo se modela de forma adicional el desarrollo del precio dentro de cada barra de minutos, y la generación de ticks, además, tiene lugar según leyes bastante complejas, aunque predeterminadas. El mecanismo de modelado del precio para este modo ha sido descrito detalladamente en el artículo Algoritmo de generación de ticks en el téster de estrategias del terminal MetaTrader 5.

Si usted necesita una reconstrucción completa de la historia en el simulador de estrategias, use el modo "Cada tick basado en ticks reales". En este modo, el simulador descarga de forma autónoma del servidor comercial del bróker los ticks reales grabados y construye el desarrollo del precio precisamente conforme a ellos. Para los segmentos de historia sin ticks reales, el simulador modela el precio de la misma manera que en el modo "Todos los ticks".  De esta forma, si el bróker tiene toda la historia grabada de los símbolos necesarios, usted podrá realizar la simulación de datos históricos reales sin modelado artificial. Lo cierto es que toda esa precisión en los ticks tiene un precio, y será el aumento significativo del tiempo de simulación, como ya se ha mostrado en el recuadro con los resultados de la comparación de los tres modos.

Comience el desarrollo del sistema por el modo "1 minuto en OHLC"

Como puede ver, no se puede ganar en todo a la vez, si queremos acortar el tiempo y comprobar rápidamente una idea comercial, entonces perderemos precisión en los modos más sencillos de modelado. Si para la simulación es necesario proporcionar los precios de entrada y la secuencia de las señales comerciales, entonces hay que usar modos más precisos, que exigen de un mayor gasto de tiempo.

Antes de comenzar la simulación de una estrategia comercial, debe ser consciente de que es del modo elegido de lo que depende la precisión de los resultados y el volumen de tiempo invertido en su obtención. Si necesita valorar y comprobar rápidamente una estrategia comercial, use el modo "1 minuto en OHLC". Con él podrá valorar rápidamente el potencial del sistema comercial.

La siguiente etapa es la depuración y el modo "Todos los ticks"

Si los resultados preliminares no son satisfactorios, entonces podemos continuar afinando y analizando el sistema comercial en modos de modelado más precisos. Aquí será de mucha ayuda la depuración de la estrategia en el modo de simulación: usted podrá establecer los puntos de parada y comprobar el estado de las variables y la ejecución de las condiciones incorporadas en el asesor. En este punto le pueden esperar sorpresas desagradables, si usted no ha previsto algunos matices de su sistema.



Precisisión de la simulación vs. velocidad

Como se puede ver por los resultados de la simulación del sistema comercial descrito en los tres modos, el tráder siempre puede y debe elegir el modo de modelado más conveniente para su estrategia comercial.  Si usted simula el sistema en el marco temporal de días, entonces le convendrá el modo "Solo precios de apertura", una velocidad alta de simulación no perjudicará la calidad de los resultados obtenidos.

Si usted escribe una estrategia de scalping o arbitraria, o bien su estrategia se apoya en el cálculo de índices o de índices sintéticos en tiempo real, entonces necesitará el modo "Cada tick en base a ticks reales". La simulación en este caso ocupará bastante más tiempo, pero usted realizará una aproximación lo más cercana posible a la realidad de los resultados. Eso sí, no hay que olvidar que la historia nunca se repite, y por eso, incluso en este modo, unos parámetros de entrada perfectamente elegidos con la ayuda de la optimización no garantizan el éxito al iniciar el robot en una cuenta real.

Entre estos dos modos extremos se encuentran "1 minuto en OHLC" y "Todos los ticks", que funcionan más deprisa que "Cada tick en base a ticks reales", pero dan una precisión de simulación menor. En general, podemos formular una ley que describa el tiempo y la precisión de la simulación:

Cuanto más rápida sea la simulación, menor será la precisión de modelado del comercio. Cuanto mayor sea el detalle y la precisión con que se modela el desarrollo de los precios en la historia, más tiempo se necesitará para la simulación.

Los servidores comerciales llevan acumulando historia ticks real ya muchos años, y  el simulador de estrategias de MetaTrader 5 en el modo "Cada tick en base a ticks reales" descarga toda la historia necesaria de forma automática. Pero cuanto mayor sea la fiabilidad de la simulación, más recursos demandará. Por eso, le recomendamos que opte por un equilibrio entre precisión y velocidad. 

No para todas las estrategias es necesario un modelado detallado en las etapas de desarrollo iniciales. ¡Una elección correcta del modo de simulación le ayudará a ahorrar tiempo y a cribar la mayoría de estrategias incorrectas!

Y solo después de resolver la tarea principal, es decir, la creación de un sistema comercial automático rentable, usted podrá realizar la optimización con ticks reales. En esta etapa,  usted ya necesitará de la potencia de la red de cálculo distribuido MQL5 Cloud Network.