Para probar y optimizar los EAs hacen falta los puntos básicos (ticks) porque precisamente en este concepto se basa el trabajo de los EAs. La simulación puede realizarse sobre los ticks reales porporcionados por el bróker, o sobre los ticks generados por el simulador de estrategias basándose en los datos por minutos.
La simulación y optimización sobre ticks reales son las más próximas a las condiciones reales. En lugar de los ticks generados basándose en los datos por minutos, se usan los ticks reales de los instrumentos financieros, acumulados por el bróker. Se trata de los ticks de la bolsa y de los proveedores de liquidez.
Al realizar la simulación con ticks reales, el spread en los límites de la barra de minutos puede cambiar, mientras que con la generación de ticks, dentro del minuto se usa un spread fijo en la barra correspondiente.
Si se transmite la profundidad de mercado bursátil de un instrumento, las barras se construyen estrictamente según los precios de ejecución de la última operación Last. El evento de llegada de un tick OnTick se activa en todos los ticks, independientemente de si ha habido precio Last o no.
Preste atención a que las operaciones comerciales siempre se realizan según los precios Bid y Ask, incluso si el gráfico se construye según los precios Last. Por ejemplo, un experto que trabaje con los precios de apertura de barra recibirá la señal según un precio (Last), pero realizará la operación según otro (Bid o Ask dependiendo de la dirección). Al usar el modo de generación "Todos los ticks", las barras se construyen según los precios Bid, y las operaciones se realizan según Bid y Ask. Además, Ask se calcula como Bid + el spread fijo de la barra de minutos correspondiente.
Si en la historia del símbolo hay una barra de minutos, pero no hay datos de tick de este minuto, el simulador generará los ticks en el modo "Todos los ticks". Esto permite poner a prueba el asesor en el perido planeado en el caso de que el bróker no disponga de datos de tick completos. Si en la historia del símbolo no hay barra de minutos, pero si existen datos de tick de ese minuto, entonces esos ticks se ignoran. Los datos de minutos se consideran más fiables.
Los datos de tick tienen un tamaño significativamente mayor que los de minutos. Al realizarse el primer inicio de la simulación, su descarga puede ocupar bastante tiempo. Los datos de tick descargados se guardan por meses en archivos TKC en el catálogo \bases\[nombre del servidor comercial]\ticks\[nombre del símbolo]\.
El Probador de Estrategias genera los datos de ticks basándose en las entradas de un minuto de la caché en el formato de números enteros. Es decir, el Probador va copiando los datos históricos que necesita desde la plataforma y los convierte en el formato de números enteros para acelerar los cálculos.
En el Probador de Estrategias están previstos varios modos de generación de ticks. Más abajo viene la descripción del modo más preciso – "Todos los ticks". |
Para las barras de diferente volumen de ticks la generación de ticks se realiza de forma diferente:
Los ticks no se generan para la barra cuyo vulumen de ticks es igual a uno. Para ella se escribe el tick con el valor de precio Close (de cierre):
Los ticks tampoco se generan para las barras con dos ticks. Primero se escribe el tick con el valor de precio Open (de apertura), luego se escribe el tick con el valor del precio Close (de cierre):
Existen diferentes esquemas de generación de ticks para las barras con tres y más ticks, en función de su número.
Existen sólo cuatro posibles esquemas para las barras con tres o más ticks:
Variante de desarrollo |
Imagen |
|
---|---|---|
El precio se ha movido en una dirección y se ha vuelto al nivel del precio de apertura. De este modo, la barra tiene sólo High (precio máximo) o sólo Low (precio mínimo). |
||
El precio se ha movido en una dirección y se ha vuelto rompiendo el nivel de apertura. En este caso la barra también tiene sólo High (precio máximo) o sólo Low (precio mínimo). Sin embargo, los precios de cierre y de apertura no son iguales. |
||
El precio se ha movido en una dirección pero de vuelta no ha alcanzado el precio de apertura. |
||
El precio ha pasado unos puntos sólo en una dirección. En este caso la barra no dispone de High y Low. |
Los ticks se generan a base de unos puntos de referencia. El número de puntos de referencia no puede superar el volumen de ticks, ni tampoco ser más de 11 (el punto del precio de apertura no se toma en consideración).
Los puntos de referencia se dividen en tres partes: para la sombra de apertura, el rango de vela (distancia entre su High y Low) y la sombra de cierre.
Dependiendo del número de ticks, es posible la siguiente distribución de los puntos de referencia:
Número de puntos de referencia |
Sombra de apertura |
Rango de vela |
Sombra de cierre |
---|---|---|---|
11 |
3 |
5 |
3 |
10 |
2 |
6 |
2 |
9 |
2 |
5 |
2 |
8 |
2 |
4 |
2 |
7 |
2 |
3 |
2 |
6 |
1 |
4 |
1 |
5 |
1 |
3 |
1 |
4 |
1 |
2 |
1 |
3 |
1 |
1 |
1 |
|
Los puntos de referencia se calculan como el número de puntos desde el precio de apertura. La distribución ideal de los puntos (3-5-3) se calcula del modo siguiente:
Vela alcista
Calculación de puntos de referencia |
Imagen |
---|---|
|
Vela bajista
Calculación de puntos de referencia |
Imagen |
---|---|
|
Si la vela es de tipo "Doji" (Close = Open), entonces se analizan las velas anteriores. Si la vela anterior ha sido alcista, entoncs ésta se considera bajista, y viceversa.
Si la sombra se genera a base de tres puntos de referencia y los valores enteros de 3/4 del tamaño de la sombra y 1/2 del tamaño de la sombra son iguales (esto ocurre cuando la diferencia entre open y low o open y high no supera 2 puntos, es decir los pasos del precio para arriba y para abajo son iguales), entonces la sombra se dibuja de la siguiente manera:
Vela alcista
Calculación de puntos de referencia |
Imagen |
---|---|
|
Vela bajista
Calculación de puntos de referencia |
Imagen |
---|---|
|
La sombra de cierre se dibuja de la misma manera. |
Si la sombra se dibuja con dos puntos, esto se hace del siguiente modo:
Vela alcista
Calculación de puntos de referencia |
Imagen |
---|---|
|
Vela bajista
Calculación de puntos de referencia |
Imagen |
---|---|
|
La sombra de cierre se dibuja de la misma manera. |
El rango de la vela se genera con las ondas en ciclos. Si Prev = Low (el precio anterior es el precio Low), se utiliza el siguiente ciclo:
Si Prev = High ((el precio anterior es el precio High), se utiliza el siguiente ciclo:
Aquí:
N1, N2 – puntos de referencia en un ciclo;
Prev – precio anterior;
Step – tamaño del paso. Para calcular el paso se utiliza la fórmula siguiente: (H – L – 1)/(Número de ciclos) + 1;
El número de ciclos se calcula por el fórmula siguiente: (Número de puntos de referencia en el rango + 1)/2.
Los ticks intermedios entre los puntos de referencia se forman según las siguientes reglas:
En la ventana de configuraciones del Probador se puede seleccionar un modo de generación de ticks. Están disponibles las siguientes opciones:
En este modo se generan todos los ticks: OHLC, y también los intermedios. El modo de esta generación de ticks ha sido descrito más arriba.
En este modo se generan sólo los ticks OHLC de las barras de un minuto. Si el volumen de ticks es más de 4, entonces simpre se generan sólo los precios Open, High, Low y Close. Si el volumen de ticks es menos de 4, se aplican las reglas de generación descritas anteriormente.
La selección de este modo no significa que la simulación/optimización va a llevarse a cabo precisamente en el período M1. Por ejempo, al seleccionar el período H1 en el modo "OHLC en M1", los precios van a generarse en cada barra de un minuto para los valores Open, High, Low y Close. En este caso el evento OnTick() del EA también va a iniciarse cuatro veces en un minuto (apertura, cierre, mínimo y máximo de cada barra de un minuto), aunque la prueba se lleva a cabo en H1. |
Práctiamente, los precios OHLC existen en los datos históricos. De esta manera, durante la simulación se genera sólo la hora de llegada de los ticks Open, High, Low y Close, mientras que los valores de los precios se cogen del histórico.
En este modo se generan los precios OHLC de las barras del período (timeframe) seleccionado para la simulación. La función OnTick() del EA se inicia sólo al principio de la barra (a base del precio Open). Gracias a esta particularidad los niveles stop y las órdenes pendientes pueden activarse por el precio diferente al especificado (sobre todo durante la simulación en los períodos mayores). Pero esto permite llevar a cabo la simulación estimativa del EA de forma bastante rápida.
Como excepción podemos destacar los períodos W1 y MN1 para los cuales las barras se generan una vez al día y no una vez a la semana y una vez al mes, respectivamente. |
Existen ciertas limitaciones de la aplicación del modo "Sólo precios de apertura":
El modo de generación de todos los ticks es el más preciso, pero al mismo tiempo es el más lento. El modo "Sólo los precios de apertura" se utiliza para la simulación/optimización rápida pero aproximada. |
Este modo permite utilizar el Probador de Estrategias para los cálculos matemáticos. Para él no se requieren y no se cargan los datos históricos e información sobre los símbolos, tampoco van a generarse los ticks. En los EAs que se someten a la pueba serán llamadas consecutivamente sólo las funciones OnInit(), OnTester() y OnDeinit().
En este modo, como criterio de optimización se aplica automáticamente "El criterio personalizado". Todos los campos en la configuración del Probador se quedan inactivos, salvo el modo de optimización y la seleccion del EA.
Resulta muy útil utilizar los cálculos matemáticos para la búsqueda del extremo de una función matemática cuyo valor debe ser devuelto de OnTester(). La optimización se conduce a la búsqueda del valor máximo de la función. En caso de haber una cantidad considerable de combinaciones de los parámetros de entrada de la función matemática se recomienda utilizar el "Algoritmo genético". Esto permite acelerar bastante la búsqueda del extremo.