El proceso completo de simulación y optimización se describe con detalle en el registro. Vamos a ver qué es precisamente lo que sucede en el simulador de estrategias después de pulsar el botón "Inicio".
La simulación/optimización no comienza de golpe, primero el simulador prepara el entorno. Comprueba si existe historia del símbolo en el que se realiza la simulación y sincroniza toda la historia disponible en el servidor comercial. Si en la plataforma no hay historia del instrumento a simular, entonces la sincronización con el servidor comercial puede ocupar varios minutos.
Tester EURCAD: preliminary downloading of M1 history started |
ha comenzado la carga provisional de la hsistoria M1 del símbolo EURCAD |
Tester EURCAD: 20% history downloaded |
la carga se ha realizado al 20% |
Tester EURCAD: 95% history downloaded |
la carga se ha realizado al 95% |
Tester EURCAD: preliminary downloading of M1 history completed in 0:14.640 |
la carga ha finalizado, el tiempo invertido ha sido - 0:14.640 |
Tester EURCAD: history data begins from 2014.12.29 00:00 |
existen datos de minutos del símbolo desde 2014.12.29 00:00 |
Si la simulación se basa en ticks reales, entonces la plataforma sincroniza los ticks disponibles dentro de las fechas de la simulación. La descarga de ticks puede ocupar bastante tiempo.
Tester EURCAD: preliminary downloading of history ticks started, it may take quite a long time |
ha comenzado la carga preliminar de ticks de EURCAD, el proceso puede ocupar un tiempo considerable |
Tester EURCAD: "bases\MetaQuotes-Demo\ticks\EURCAD\201609.tkc" download |
los ticks de septiembre de 2016 se han cargado por la ruta indicada |
Tester EURCAD: "bases\MetaQuotes-Demo\ticks\EURCAD\201608.tkc" download (823.38 Kb/sec) |
los ticks de octubre de 2016 se han cargado por la ruta indicada |
Tester EURCAD: 21% ticks downloaded (796.02 Kb/sec) |
la carga se ha realizado al 21%, velocidad de carga - 796.02 Kb/sec |
Tester EURCAD: "bases\MetaQuotes-Demo\ticks\EURCAD\201604.tkc" download (764.22 Kb/sec) |
los ticks de abril de 2016 se han cargado por la ruta indicada |
Tester EURCAD: preliminary downloading of history ticks completed, 116.78 Mb in 2:32.063 (786.40 Kb/sec) |
la carga de ticks ha finalizado, volumen de ticks cargado - 116.78 MB, tiempo invertido - 2:32.063 |
Tester EURCAD: ticks data begins from 2016.04.01 00:00 |
existen datos de ticks del símbolo EURCAD desde 2016.04.01 00:00 |
A continuación se comprueba la existencia de cambios cruzados. Por ejemplo, si la simulación se realiza con EURCAD y la divisa del depósito es USD, entonces para calcular el beneficio y las exigencias del margen al efectuar operaciones comerciales se necesitarán los instrumentos EURUSD y USDCAD. Por eso se efectúa la sincronización completa de la historia y de estos instrumentos. En caso necesario, los datos de ticks también se sincronizan. El proceso de preparación de los datos de precio queda fijado con todo detalle en el registro del simulador:
Tester EURUSD: preliminary downloading of history ticks started, it may take quite a long time |
ha comenzado la carga preliminar de ticks de EURCAD, el proceso puede ocupar un tiempo considerable |
Tester EURUSD: preliminary downloading of history ticks completed, 1021.82 Kb in 0:03.218 (317.53 Kb/sec) |
la carga de ticks ha finalizado, volumen de ticks cargado - 1021.82 MB, tiempo invertido - 0:03.218 |
Tester EURUSD: ticks data begins from 2011.12.19 00:00 |
existen datos de ticks del símbolo EURUSD desde 2011.12.19 00:00 |
Tester USDCAD: preliminary downloading of M1 history started |
ha comenzado la carga provisional de la historia M1 del símbolo USDCAD |
Tester USDCAD: preliminary downloading of M1 history completed in 0:00.203 |
la carga se ha realizado, el tiempo invertido ha sido - 0:00.203 |
Tester USDCAD: preliminary downloading of history ticks started, it may take quite a long time |
ha comenzado la carga preliminar de ticks de USDCAD, el proceso puede ocupar un tiempo considerable |
Tester USDCAD: "bases\MetaQuotes-Demo\ticks\USDCAD\201609.tkc" download |
los ticks de septiembre de 2016 se han cargado por la ruta indicada |
Tester USDCAD: "bases\MetaQuotes-Demo\ticks\USDCAD\201608.tkc" download (683.69 Kb/sec) |
los ticks de agosto de 2016 se han cargado por la ruta indicada, velocidad de la carga - 683.69 Kb/sec |
Tester USDCAD: preliminary downloading of history ticks completed, 103.25 Mb in 2:30.109 (704.36 Kb/sec) |
la carga de ticks ha finalizado, volumen de ticks cargado - 103.25 MB, tiempo invertido - 2:30.109 |
Tester USDCAD: ticks data begins from 2015.01.01 00:00 |
existen datos de ticks del símbolo USDCAD desde 2015.01.01 00:00 |
Solo después de sincronizar toda la historia necesaria (y los ticks, si usted simula/optimiza la estrategia con ticks reales) se inicia el proceso de simulación/optimización.
En el caso de realizar una única simulación, se establece una conexión con el agente de simulación elegido. Puede tratarse de una agente local o de red.
Core 1 agent process started |
el proceso del agente se ha iniciado en el primer núcleo del procesador |
Core 1 connecting to 127.0.0.1:3000 |
conexión a 127.0.0.1:3000 |
Core 1 connected |
conexión realizada |
Core 1 authorized (agent build 1395) |
autorización superada, build del agente - 1395 |
El nombre de la carpeta de datos del agente local se corresponde con su dirección y puerto.
Después de la conexión al agente, se realiza la sincronización del entorno de acuerdo con los ajustes de la simulación.
Tester EURCAD,H1 (MetaQuotes-Demo): testing of Experts\Moving Average.ex5 from 2016.04.01 00:00 to 2016.06.01 00:00 |
se inicia la simulación del experto Moving Average con el símbolo EURCAD y el periodo H1, servidor MetaQuotes-Demo, periodo de simulación desde el 2016.04.01 00:00 al 2016.06.01 00:00 |
Core 1 common synchronization completed |
la sincronización general ha finalizado |
Desde este momento el agente comienza a gestionar su propio registro, cuyos datos se reenvían al registro del simulador. El registro del agente local se puede abrir desde el menú contextual del registro del simulador. En este registro se muestran los detalles de la sincronización del entorno entre el terminal y el agente.
Inicialización y sincronización del entorno:
Startup MetaTester 5 x64 build 1395 (19 Aug 2016) |
inicio del agente de simulación, build 1395 del 19 de agosto de 2016 |
Server MetaTester 5 started on 127.0.0.1:3000 |
el agente de simulación ha sido iniciado en 127.0.0.1:3000 |
Startup initialization finished |
inicialización completa |
127.0.0.1 login (build 1395) |
la plataforma se ha conectado al agente |
Network 38520 bytes of account info loaded |
el agente ha cargado 38520 bytes de información sobre los parámetros de la cuenta comercial |
Network 1482 bytes of tester parameters loaded |
el agente ha cargado 1482 bytes de información sobre los parámetros de simulación |
Network 2236 bytes of input parameters loaded |
el agente ha cargado 2236 bytes de información sobre los parámetros de entrada del asesor |
Network 22730 bytes of symbols list loaded |
el agente ha cargado 22730 bytes de información sobre los instrumentos financieros |
Sincronización de los ajustes de simulación y los datos del instrumento con el que se realiza la simulación:
Tester expert file added: Experts\Examples\Moving Average\Moving Average.ex5. 53048 bytes loaded |
el agente ha cargado el archivo del experto, tamaño del archivo - 53048 bytes |
Tester initial deposit 10000.00 USD, leverage 1:100 |
Depósito inicial para la simulación - 10 000 USD, apalancamiento - 1:100 |
Tester successfully initialized |
la simulación ha sido inicializada |
Network 68 Kb of total initialization data received |
volumen general de la información recibida por el agente durante la inicialización - 68 KB |
Tester Intel Core i7-3770 @ 3.40GHz, 16351 MB |
descripción de la configuración de la computadora en la que funciona el agente |
Symbols EURCAD: symbol to be synchronized |
sincronización del símbolo EURCAD |
Symbols EURCAD: symbol synchronized, 3384 bytes of symbol info received |
el símbolo ha sido sincronizado, recibidos 3384 bytes de información |
History EURCAD: load 4.51 Mb of history data to synchronize in 0:00:00.594 |
se han cargado 4.51 MB de datos históricos en 594 milisegundos |
History EURCAD: history synchronized from 2015.01.02 to 2016.06.01 |
la historia de EURCAD ha sido sincronizada desde el 2015.01.02 al 2016.06.01 |
Ticks EURCAD: ticks synchronization started |
comienza la sincronización de ticks de EURCAD |
Ticks EURCAD: load 48.66 Mb of tick data to synchronize in 0:00:00.969 |
durante la sincronización se han cargado 48.66 MB de información en 969 milisegundos |
Ticks EURCAD: history ticks synchronized from 2016.04.01 to 2016.05.31 |
la historia de EURCAD ha sido sincronizada desde el 2016.04.01 al 2016.05.31 |
History EURCAD,H1: history cache allocated for 8862 bars and contains 7729 bars |
se ha creado un caché de la historia de 8862 barras, el caché contiene 7729 barras del 2015.01.02 09:00 al 2016.03.31 23:00 |
History EURCAD,H1: history begins from 2015.01.02 09:00 |
la historia de EURCAD comienza a partir del 2015.01.02 09:00 |
Tester EURCAD,H1 (MetaQuotes-Demo): generating based on real ticks |
la simulación se iniciará con ticks reales |
Tester EURCAD,H1: testing of Experts\Examples\Moving Average\Moving Average.ex5 |
la simulación del experto Moving Average en el intervalo desde el 2016.04.01 00:00 al 2016.06.01 00:00 se iniciará con los siguientes parámetros de entrada: |
Tester MaximumRisk=0.02 |
MaximumRisk=0.02 |
Tester DecreaseFactor=3.00 |
DecreaseFactor=3.00 |
Tester MovingPeriod=12 |
MovingPeriod=12 |
Tester MovingShift=6 |
Tester MovingShift=6 |
Moving Average (EURCAD,H1) 2016.04.01 00:00:00 expert initialized |
el experto Moving Average ha sido inicializado |
Ticks EURCAD : real ticks begin from 2016.04.01 00:00:00 |
existen ticks reales del símbolo EURCAD 2016.04.01 00:00:00 |
Sincronización de los cambios cruzados:
Symbols EURUSD: symbol to be synchronized |
sincronización del símbolo EURUSD |
Symbols EURUSD: symbol synchronized, 3384 bytes of symbol info received |
el símbolo ha sido sincronizado, recibidos 3384 bytes de información |
History EURUSD: load 27 bytes of history data to synchronize in 0:00:00.000 |
se han cargado 27 bytes de datos históricos en 000 milisegundos |
History EURUSD: history synchronized from 2014.01.01 to 2016.09.02 |
la historia de EURUSD ha sido sincronizada desde el 2014.01.01 al 2016.09.02 |
Ticks EURUSD: ticks synchronization started |
comienza la sincronización de ticks de EURUSD |
Ticks EURUSD: load 34 bytes of tick data to synchronize in 0:00:00.000 |
durante la sincronización se han cargado 48.66 MB de información en 969 milisegundos |
Ticks EURUSD: history ticks synchronized from 2016.01.04 to 2016.09.02 |
la historia de EURUSD ha sido sincronizada desde el 2016.04.01 al 2016.05.31 |
Symbols USDCAD: symbol to be synchronized |
sincronización del símbolo USDCAD |
Symbols USDCAD: symbol synchronized, 3384 bytes of symbol info received |
el símbolo ha sido sincronizado, recibidos 3384 bytes de información |
History USDCAD: load 27 bytes of history data to synchronize in 0:00:00.094 |
se han cargado 27 bytes de datos históricos en 94 milisegundos |
History USDCAD: history synchronized from 2013.01.01 to 2016.08.01 |
la historia de USDCAD ha sido sincronizada desde el 2013.01.01 al 2016.08.01 |
Ticks USDCAD: ticks synchronization started |
comienza la sincronización de ticks de USDCAD |
Ticks USDCAD: load 43.10 Mb of tick data to synchronize in 0:00:00.890 |
durante la sincronización se han cargado 43.10 MB de información en 890 milisegundos |
Ticks USDCAD: history ticks synchronized from 2016.04.01 to 2016.05.31 |
la historia de USDCAD ha sido sincronizada desde el 2016.04.01 al 2016.05.31 |
Antes de comenzar la simulación se generan las secuencias de ticks. Cuantos más ticks se usen, mayor será el retraso antes de comenzar la propia simulación.
Si usted realiza la simulación con ticks reales, entonces se comprobará si los datos descargados son correctos con respecto a las barras de minutos. Si los datos son correctos, entonces en el registro solo habrá una entrada (de cada instrumento):
Ticks EURCAD : real ticks begin from 2016.04.01 00:00:00 |
existen datos reales de ticks de EURCAD desde el 2016.04.01 00:00:00 |
En caso contrario, se mostrará una estadística detallada, en base a la cual el usuario podrá sacar conclusiones sobre la calidad de la historia de ticks.
Ticks EURUSD : real ticks begin from 2015.01.01 00:00:00 |
existen datos reales de ticks de EURUSD desde el 2015.01.01 00:00:00 |
Ticks EURUSD : 2015.01.01 00:00 - 2016.01.01 00:00 tick volumes not matched for 4 minute bars |
en el intervalo 2015.01.01 00:00 - 2016.01.01 00:00 el volumen de ticks no ha coincidido en las barras de 4 minutos |
Ticks EURUSD : 2015.01.01 00:00 - 2016.01.01 00:00 last prices absent for 16217 minute bars, bid prices used |
en el intervalo 2015.01.01 00:00 - 2016.01.01 00:00 no existen los precios de la última operación de 16217 barras de minutos, en su lugar se usarán los precios bid |
Ticks EURUSD : 2015.01.01 00:00 - 2016.01.01 00:00 last prices absent for 22 whole days, bars built by bid prices |
en el intervalo 2015.01.01 00:00 - 2016.01.01 00:00 no existen los precios de la última operación de 22 días completos, las barras se han construido conforme a los precios bid |
Ticks EURUSD : 2015.01.01 00:00 - 2016.01.01 00:00 last prices translation turned off for 881 minute bars, bid and last prices used |
en el intervalo 2015.01.01 00:00 - 2016.01.01 00:00 la transmisión del precio de la última operación se ha interrumpido en 881 barras de minutos, se usarán tanto los precios last, como los precios bid |
Después de finalizar la simulación, en el registro del agente se mostrará información estadística detallada:
Tester final balance 7905.30 USD |
el balance al terminar la simulación es de 7905.30 USD |
Tester EURCAD,H1: 50056687 ticks, 6195 bars generated. Environment synchronized in 0:00:02.656. |
se han generado 50056687 ticks y 6195 barras, la sincronización del entorno se ha realizado en 0:00:02.656 |
Test passed in 0:01:40.906 (including ticks preprocessing 0:00:27.047). |
la simulación se ha realizado en 0:01:40.906 (incluyendo la preparación de los ticks en 0:00:27.047) |
Tester EURCAD,H1: total time from login to stop testing 0:01:43.562 (including 0:00:07.329 for history data synchronization) |
tiempo invertido desde la conexión al agente hasta la finalización de la simulación - 0:01:43.562 (incluyendo 0:00:07.329 en la sincronización de datos históricos) |
Tester 132757966 total ticks for all symbols |
en total se han generado 132757966 ticks de todos los símbolos |
Tester EURCAD: generate 50056687 ticks in 0:00:08.703, passed to tester 50056687 ticks |
de EURCAD se han generado 50056687 ticks en 0:00:08.703, se han transmitido al simulador 50056687 ticks |
Tester EURUSD: generate 42615166 ticks in 0:00:09.235, passed to tester 42587228 ticks |
de EURUSD se han generado 42615166 ticks en 0:00:09.235, se han transmitido al simulador 42587228 ticks |
Tester USDCAD: generate 40134644 ticks in 0:00:09.109, passed to tester 40114051 ticks |
de EURCAD se han generado 40134644 ticks en 0:00:09.109, se han transmitido al simulador 40114051 ticks |
Tester 546 Mb memory used including 0.94 Mb of history data, 320 Mb of cached tick data (total memory for tick data 3135 Mb) |
se han usado 546 MB de memoria, incluyendo 0.94 MB en datos históricos, 320 MB en el caché de los ticks (en total se han usado para los datos de ticks 3135 MB) |
Tester log file "E:\MetaTrader5\Tester\Agent-127.0.0.1-3000\logs\20160908.log" written |
el archivo del registro del agente se ha guardado en la ruta indicada |
Si en la simulación participa solo un instrumento, entonces en el registro, en lugar de una línea individual con la estadística de los ticks de cada instrumento, solo se mostrará la estadística general:
Tester final balance 1199.73 USD |
el balance al terminar la simulación es de 1199.73 USD |
Tester EURUSD,H1: 42668248 ticks, 6195 bars generated. Test passed in 0:00:41.360 (including ticks preprocessing 0:00:06.672). |
se han generado 42668248 ticks y 6195 barras. La simulación se ha realizado en 0:00:41.360 (incluyendo la preparación de los ticks en 0:00:06.672) |
Tester 489 Mb memory used including 0.94 Mb of history data, 320 Mb of cached tick data (total memory for tick data 1023 Mb) |
se han usado 489 MB de memoria, incluyendo 0.94 MB en datos históricos, 320 MB en el caché de los ticks (en total se han usado para los datos de ticks 1023 MB) |
Tester log file "E:\MetaTrader5\Tester\Agent-127.0.0.1-3000\logs\20160908.log" written |
el archivo del registro del agente se ha guardado en la ruta indicada |
Al repetir la simulación con los mismos datos históricos durante la sincronización se realiza un intercambio mínimo de datos entre la plataforma y el agente. Se usa la historia convertida en caché en la memoria del agente. Si el modelo de generación de ticks no ha cambiado, entonces también se usan los datos de ticks convertidos en caché. En estas condiciones, la simulación comienza al instante:
Tester account info found |
se ha encontrado información sobre la cuenta comercial |
Network 1482 bytes of tester parameters loaded |
se han cargado 1482 bytes de parámetros de simulación |
Tester initial deposit 1000.00 USD, leverage 1:100 |
depósito inicial para la simulación - 1 000 USD, apalancamiento - 1:100 |
Tester successfully initialized |
la simulación ha sido inicializada |
Network 1614 bytes of total initialization data received |
volumen general de la información recibida por el agente durante la inicialización - 1614 bytes |
Tester Intel Core i7-3770 @ 3.40GHz, 16351 MB |
descripción de la configuración de la computadora en la que funciona el agente |
History EURUSD,H1: history cached from 2014.01.01 23:00 |
la historia de EURUSD H1 ha sido convertida en caché comenzando desde el 2014.01.01 23:00 |
Tester EURUSD,H1 (MetaQuotes-Demo): every tick generating |
se ha iniciado la simulación de todos los ticks (sevidor MetaQuotes-Demo) |
Tester EURUSD,H1: testing of Experts\Tester\MultyPairCrossMA.ex5 from 2015.01.01 00:00 to 2016.01.01 00:00 started with inputs: |
la simulación del experto Moving Average en el intervalo desde el 2015.01.01 00:00 al 2016.01.01 00 se iniciará con los siguientes parámetros de entrada: |
Tester InpLots=0.10 Tester InpStopLoss=50 Tester InpTakeProfit=50 Tester InpTrailingStop=30 Tester InpFastMAPeriod=21 Tester InpSlowMAPeriod=34 |
InpLots=0.10 InpStopLoss=50 InpTakeProfit=50 InpTrailingStop=30 InpFastMAPeriod=21 InpSlowMAPeriod=34 |
History EURUSD,M5: history cached from 2014.01.01 23:00 |
la historia de EURUSD M5 ha sido convertida en caché comenzando desde el 2014.01.01 23:00 |
History EURJPY,M5: history cached from 2014.01.01 23:00 |
la historia de EURJPY M5 ha sido convertida en caché comenzando desde el 2014.01.01 23:00 |
History USDJPY,M5: history cached from 2014.01.01 23:00 |
la historia de USDJPY M5 ha sido convertida en caché comenzando desde el 2014.01.01 23:00 |
Stop out. Si se comercia sin éxito, la simulación puede ser interrumpida con el estado Stop Out:
Tester final balance 44.81 USD |
el balance al terminar la simulación es de 44.81 USD |
Tester stop out occurred on 3% of testing interval |
el stop-out ha aparecido tras pasar un 3% del periodo de simulación |
Interrupción autónoma. Se puede interrumpir la simulación de forma anticipada desde el propio asesor, llamando la función ExpertRemove al darse una condición establecida. En este caso, en el registro se mostrará:
MACD Sample (EURUSD,H1) 2015.03.13 03:00:00 Testing stop. Balance is 299.29 |
la simulación ha sido interrumpida, el balance es de 299.29 |
MACD Sample (EURUSD,H1) 2015.03.13 03:00:00 ExpertRemove() function called |
se ha llamado la función ExpertRemove |
Tester removed itself within OnTick |
el experto ha finalizado su funcionamiento en el manejador de ticks |
Tester final balance 299.29 USD |
el balance al terminar la simulación es de 299.29 USD |
Tester removed itself on 19% of testing interval |
el experto ha interrumpido su funcionamiento cuando se había superado un 3% del periodo de simulación |
Error de memoria. La simulación puede interrumpirse antes de tiempo debido a un error crítico. Por ejemplo, las divisiones continuas de la memoria con la función ArrayResize pueden causar la fragmentación de la memoria, lo que a su vez provoca la ausencia de un bloque de memoria del tamaño necesario. Como resultado, obtendremos un error crítico de falta de memoria.
MemoryException 8192 Mb not available |
no hay disponible un bloque de memoria con un tamaño de 8192 MB |
MACD Sample (EURUSD,H1) 2015.01.02 09:00:15 cannot resize ExtDoubleArray4 from 536870912 to 1073741824 |
el 2015.01.02 09:00:15 el experto no pudo aumentar el tamaño de la matriz ExtDoubleArray4 de 536870912 a 1073741824 bytes |
Tester memory error in OnTick |
error de funcionamiento de la memoria en OnTick |
Tester stopped on 0% of testing interval |
el trabajo ha finalizado cuando se había superado un 3% del periodo de simulación |
Tester not enough available memory, 37371 Mb used, 9178 Mb available, maximal available block is 4096 Mb |
memoria insuficiente, memoria total 37371 MB, disponible 9178 MB, tamaño máximo del bloque de memoria 4096 MB |
Salida de los límites de la matriz. Se considera un error crítico la llamada fuera de los límites de la matriz, es decir, si el valor del índice del elemento de la matriz es mayor o igual al número de elementos de la matriz (la indexación comienza a partir de cero).
MACD Sample (EURUSD,H1) 2015.01.06 18:42:59 array out of range in 'MACD Sample.mq5' (473,28) |
error de salida fuera de los límites de la matriz en el archivo 'MACD Sample.mq5' (línea 473, posición 28) |
Tester OnTick critical error |
error crítico en OnTick |
División por cero. La división por cero también se considera un error.
MACD Sample (EURUSD,H1) 2015.01.06 18:42:59 zero divide in 'MACD Sample.mq5' (465,35) |
error de división por cero en el archivo 'MACD Sample.mq5' (línea 465, posición 35) |
Tester OnTick critical error |
error crítico en OnTick |
Error durante la inicialización. La simulación finalizará sin siquiera comenzar si la función OnInit retorna en el programa un código distinto de INIT_SUCCEEDED. De esta forma, por ejemplo, puede realizarse el control de los parámetros de entrada.
MACD Sample (EURUSD,H1) 2015.01.01 00:00:00 Deinit reason is 8 |
el 2015.01.01 00:00:00 ha tenido lugar la desinicialización del experto |
Tester tester stopped because OnInit failed |
la simulación ha sido interrumpida a causa de un error en OnInit |