Новая версия платформы MetaTrader 5 build 1930: Плавающие окна графиков и .Net библиотеки в MQL5 - страница 131

 
Slava:

В логах тестера о сделках ни слова может быть по той причине, что эксперт ничего не пишет в лог по этому поводу (либо ему перекрыли логгирование чем-то типа CTrade::LogLevel(LOG_LEVEL_NO))

Когда совершается торговая операция, в лог пишет не советник, а сам Терминал/Агент.

2019.01.28 10:21:58.022 Core 1  2018.12.04 13:57:02   order modified [#445 sell limit 2.00 TESTER_EURUSD.rann_RannForex at 1.06139]
2019.01.28 10:21:58.022 Core 1  2018.12.04 14:02:15   order [#445 sell limit 2.00 TESTER_EURUSD.rann_RannForex at 1.06139] triggered
2019.01.28 10:21:58.022 Core 1  2018.12.04 14:02:15   deal #404 sell 2.00 TESTER_EURUSD.rann_RannForex at 1.06139 done (based on order #445)
2019.01.28 10:21:58.022 Core 1  2018.12.04 14:02:15   deal performed [#404 sell 2.00 TESTER_EURUSD.rann_RannForex at 1.06139]
2019.01.28 10:21:58.022 Core 1  2018.12.04 14:02:15   order performed sell 2.00 at 1.06139 [#445 sell limit 2.00 TESTER_EURUSD.rann_RannForex at 1.06139]
2019.01.28 10:21:58.022 Core 1  2018.12.04 14:02:15   buy limit 2.00 TESTER_EURUSD.rann_RannForex at 1.06077 (1.06139 / 1.06144 / 1.06142)

Т.е. советник может быть полностью без Print, но такие записи о торговых операциях будут всегда в логе.

Так вот лог Агента весь в таких записях. А в Тестере - ни одной.

 
fxsaber:

Когда совершается торговая операция, в лог пишет не советник, а сам Терминал/Агент.

Т.е. советник может быть полностью без Print, но такие записи о торговых операциях будут всегда в логе.

Так вот лог Агента весь в таких записях. А в Тестере - ни одной.

Вы ведь не привели весь лог агента. Я так понял, что на агенте в логе тоже нет записей о торговле.

Значит они не были переданы от агента тестеру. Как не была передана история сделок после окончания тестирования

 
Slava:

Вы ведь не привели весь лог агента. Я так понял, что на агенте в логе тоже нет записей о торговле.

Значит они не были переданы от агента тестеру. Как не была передана история сделок после окончания тестирования

Не привел лог Агента полностью, потому что он на 99% состоит из торговых операций. Привел только его шапку и конец. Все остальное - обычный проход.

Факт - лог Агента на десятки Кб из торговых записей, лог Тестера - почти ничего (он полностью приведен).

На скрине виден обрыв Графика, отсутствие вкладки Бэктест. Ну и в логе Агнета видна запись "pumping...."


Заметьте, что в логе Тестере нет, например, "final balance" записи.

 
fxsaber:

Не привел лог Агента полностью, потому что он на 99% состоит из торговых операций. Привел только его шапку и конец. Все остальное - обычный проход.

Факт - лог Агента на десятки Кб из торговых записей, лог Тестера - почти ничего (он полностью приведен).

На скрине виден обрыв Графика, отсутствие вкладки Бэктест. Ну и в логе Агнета видна запись "pumping...."


Заметьте, что в логе Тестере нет, например, "final balance" записи.

Вкладка бектест не появилась потому, что не была передана статистика после тестирования.

Как я могу заметить, что в логе нет записи про final balance если вы из концовки только две записи привели?

Точно так же я могу обратить внимание на отсутствие записи о времени выполнения теста.

Ещё я могу предположить, что Ваша функция OnTester завершилась с критической ошибкой.

 
Ilyas :

As I undestand, "clazz :: clazz ()" in your macro, will be expanded to "Test3 :: Test3 (), not to" Test3 :: Test2 () "

Its english comment. You dont translate it or post will be weird

I checked it but conversion is wrong in old builds. It worked, but I really didn't want that. In the current capture, I stop executing the code inside the static method Stack window show methiod name. The name should be “Core @ <Test2> :: Core @ <Test2>" but shows "“Core @ <Test2> :: Test3". Second clazz is replaced by macro name, not macro content.

 
Slava:

Вкладка бектест не появилась потому, что не была передана статистика после тестирования.

Как я могу заметить, что в логе нет записи про final balance если вы из концовки только две записи привели?

Точно так же я могу обратить внимание на отсутствие записи о времени выполнения теста.

Ещё я могу предположить, что Ваша функция OnTester завершилась с критической ошибкой.

Полные логи Тестера и Агента в прицепе.

Файлы:
Logs.zip  353 kb
 
fxsaber:

Полные логи Тестера и Агента в прицепе.

В логе агента final balance присутствует. И OnTester нормально отработал.

Непонятно почему обломилась передача истории торговли. Будем расширять логгирование ошибок.

А после

KH      2       15:44:57.667    Tester  pumping of positions history failed

нет никаких записей? Должно быть хотя бы о закрытии соединения

 
Slava:

А после

нет никаких записей? Должно быть хотя бы о закрытии соединения

Вот записи после

KH      2       15:44:57.667    Tester  pumping of positions history failed
KM      0       15:50:31.746    Server  MetaTester 5 stopped
NJ      0       16:09:22.130    Startup MetaTester 5 x64 build 1978 (23 Jan 2019)
CP      0       16:09:22.136    Server  MetaTester 5 started on 127.0.0.1:3000
PK      0       16:09:22.137    Startup initialization finished
GP      0       16:09:22.491    127.0.0.1       login (build 1978)

Это уже другой проход.

 

Включен только один Агент. Оптимизация на первом проходе все время на 40-100% медленнее, чем остальные.


Полный лог Оптимизатора

2019.01.28 16:12:19.908 Tester  register MQL5.community account and use MQL5 Cloud Network to speed up optimizations
2019.01.28 16:12:19.917 Tester  custom symbols not allowed in Cloud Network
2019.01.28 16:12:19.939 Tester  Experts\fxsaber\Test2.ex5 on TESTER_EURUSD.rann_RannForex,M1 from 2018.03.01 00:00 to 2019.01.27 00:00
2019.01.28 16:12:19.939 Tester  TESTER_EURUSD.rann_RannForex: history data begins from 2018.02.26 00:00
2019.01.28 16:12:19.939 Tester  TESTER_EURUSD.rann_RannForex: ticks data begins from 2018.02.26 00:00
2019.01.28 16:12:19.939 Tester  complete optimization started
2019.01.28 16:12:19.939 Tester  size of initial task batch is 5
2019.01.28 16:12:19.948 Core 1  connecting to 127.0.0.1:3000
2019.01.28 16:12:19.948 Core 1  connected
2019.01.28 16:12:19.949 Core 1  authorized (agent build 1978)
2019.01.28 16:12:19.950 Core 1  common synchronization completed
2019.01.28 16:12:19.959 Core 1  TESTER_EURUSD.rann_RannForex: history for 2017 year synchronized
2019.01.28 16:12:19.959 Core 1  TESTER_EURUSD.rann_RannForex: history for 2019 year synchronized
2019.01.28 16:12:19.959 Core 1  TESTER_EURUSD.rann_RannForex: history synchronization completed [0 Kb]
2019.01.28 16:12:19.959 Core 1  TESTER_EURUSD.rann_RannForex: 0.20 Kb of history processed in 0:00.000
2019.01.28 16:12:42.232 Core 1  pass 0 returned result 22156.00 in 0:00:22.187
2019.01.28 16:12:52.701 Core 1  pass 1 returned result 10453.00 in 0:00:10.445
2019.01.28 16:13:03.212 Core 1  pass 2 returned result 10515.00 in 0:00:10.510
2019.01.28 16:13:13.805 Core 1  pass 3 returned result 10594.00 in 0:00:10.593
2019.01.28 16:13:24.232 Core 1  pass 4 returned result 10422.00 in 0:00:10.426
2019.01.28 16:13:24.232 Tester  optimization finished, total passes 5
2019.01.28 16:13:24.242 Statistics      optimization done in 1 minutes 05 seconds
2019.01.28 16:13:24.242 Statistics      shortest pass 0:00:10.426, longest pass 0:00:22.187, average pass 0:00:12.832
2019.01.28 16:13:24.242 Statistics      local 5 tasks (100%), remote 0 tasks (0%), cloud 0 tasks (0%)
2019.01.28 16:13:24.242 Core 1  connection closed
2019.01.28 16:13:24.251 Tester  5 new records saved to cache file 'tester\cache\Test2.TESTER_EURUSD.rann_RannForex.M1.20180301.20190127.40.0A0C6931F2431F04534685CD4DB81D1A.opt'


Полный лог Агента

HD      0       16:12:19.948    127.0.0.1       login (build 1978)
DP      0       16:12:19.949    Tester  account info found with currency USD
DD      0       16:12:19.949    Network 1482 bytes of tester parameters loaded
KS      0       16:12:19.949    Network 2236 bytes of input parameters loaded
QH      0       16:12:19.949    Network 2304 bytes of optimized inputs info loaded
CR      0       16:12:19.949    Tester  successfully initialized
RI      0       16:12:19.949    Network 692 bytes of total initialization data received
LL      0       16:12:19.949    Tester  Intel Core i7-6700K  @ 4.00GHz, 16322 MB
JG      0       16:12:19.949    Tester  optimization pass 0 started (batch of 5 tasks)
CS      0       16:12:19.958    Symbols TESTER_EURUSD.rann_RannForex: symbol to be synchronized
LL      0       16:12:19.958    Symbols TESTER_EURUSD.rann_RannForex: symbol synchronized, 3464 bytes of symbol info received
IO      0       16:12:19.958    History TESTER_EURUSD.rann_RannForex: symbol tick base found
JE      0       16:12:19.958    History TESTER_EURUSD.rann_RannForex: load 107 bytes of history data to synchronize in 0:00:00.000
ME      0       16:12:20.047    History TESTER_EURUSD.rann_RannForex: history synchronized from 2018.02.26 to 2019.01.25
QP      0       16:12:20.047    Ticks   TESTER_EURUSD.rann_RannForex: ticks synchronization started
RQ      0       16:12:20.050    Ticks   TESTER_EURUSD.rann_RannForex: ticks synchronized already
OG      0       16:12:20.055    History TESTER_EURUSD.rann_RannForex,M1: history cache allocated for 345792 bars and contains 4306 bars from 2018.02.26 00:05 to 2018.02.28 23:59
GI      0       16:12:20.055    History TESTER_EURUSD.rann_RannForex,M1: history begins from 2018.02.26 00:05
DG      0       16:12:20.071    Test2 (TESTER_EURUSD.rann_RannForex,M1) 2018.03.01 00:00:00   100
JR      0       16:12:42.232    Tester  0 OnTester result 22156 : passed in 0:00:22.187
FK      0       16:12:42.255    Test2 (TESTER_EURUSD.rann_RannForex,M1) 2018.03.01 00:00:00   100
JF      0       16:12:52.701    Tester  1 OnTester result 10453 : passed in 0:00:10.445
CO      0       16:12:52.701    Test2 (TESTER_EURUSD.rann_RannForex,M1) 2018.03.01 00:00:00   100
HJ      0       16:13:03.211    Tester  2 OnTester result 10515 : passed in 0:00:10.510
FS      0       16:13:03.211    Test2 (TESTER_EURUSD.rann_RannForex,M1) 2018.03.01 00:00:00   100
QN      0       16:13:13.805    Tester  3 OnTester result 10594 : passed in 0:00:10.593
FG      0       16:13:13.805    Test2 (TESTER_EURUSD.rann_RannForex,M1) 2018.03.01 00:00:00   100
DR      0       16:13:24.231    Tester  4 OnTester result 10422 : passed in 0:00:10.426
DG      0       16:13:24.231    Tester  5 of 5 passes processed (5 successfully finished) in 0:01:04.161
FH      3       16:13:24.242    127.0.0.1       MetaTester 5 forced to stop


По логу Агента видно, что дело точно не в синхронизациях. Тормоза первого прохода воспроизводятся в 100% случаев. Запускал этот советник

#include <fxsaber\Virtual\Virtual.mqh> // https://www.mql5.com/ru/code/22577

bool NewTick() { VIRTUAL::NewTick(); return(true); } // Добавили первый тик до OnInit.  
const bool Init = VIRTUAL::SelectByHandle(VIRTUAL::Create()) && NewTick();  

void OnTick() { VIRTUAL::NewTick(); }

input int inRange = 0;          // 1 .. 5

void OnInit()
{   
  const double Price = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
  
  for (int i = 0; i < 100; i++)
    OrderSend(_Symbol, OP_BUY, 0.1, Price, 100, 0, Price + 10000 * _Point);
}
 
Кастомный символ не менялся больше суток, Агент гонялся по нему вдоль и поперек. И, вдруг, 8 секунд им тратится на синхронизацию:
DH      0       16:49:55.300    127.0.0.1       login (build 1978)
JL      0       16:49:55.300    Tester  account info found with currency USD
II      0       16:49:55.300    Network 1482 bytes of tester parameters loaded
JO      0       16:49:55.300    Network 2236 bytes of input parameters loaded
LD      0       16:49:55.300    Network 2304 bytes of optimized inputs info loaded
GN      0       16:49:55.301    Tester  successfully initialized
EE      0       16:49:55.301    Network 688 bytes of total initialization data received
RS      0       16:49:55.301    Tester  Intel Core i7-6700K  @ 4.00GHz, 16322 MB
LK      0       16:49:55.301    Tester  optimization pass 0 started (batch of 5 tasks)
QO      0       16:49:55.308    Symbols TESTER_EURUSD.rann_RannForex: symbol to be synchronized
PH      0       16:49:55.308    Symbols TESTER_EURUSD.rann_RannForex: symbol synchronized, 3464 bytes of symbol info received
FD      0       16:49:55.308    History TESTER_EURUSD.rann_RannForex: symbol tick base found
KS      0       16:49:55.309    History TESTER_EURUSD.rann_RannForex: load 107 bytes of history data to synchronize in 0:00:00.000
DQ      0       16:49:55.315    History TESTER_EURUSD.rann_RannForex: history synchronized from 2018.02.26 to 2019.01.25
DL      0       16:49:55.316    Ticks   TESTER_EURUSD.rann_RannForex: ticks synchronization started
OE      0       16:50:13.859    Ticks   TESTER_EURUSD.rann_RannForex: ticks synchronized already
FO      0       16:50:15.460    History TESTER_EURUSD.rann_RannForex,M1: history cache allocated for 342067 bars and contains 315281 bars from 2018.02.26 00:05 to 2018.12.31 22:59
ME      0       16:50:15.460    History TESTER_EURUSD.rann_RannForex,M1: history begins from 2018.02.26 00:05
FS      0       16:50:15.473    Test2 (TESTER_EURUSD.rann_RannForex,M1) 2019.01.01 00:00:00   100
FQ      0       16:50:16.585    Tester  0 OnTester result 1125 : passed in 0:00:01.123
FG      0       16:50:16.601    Test2 (TESTER_EURUSD.rann_RannForex,M1) 2019.01.01 00:00:00   100
LM      0       16:50:17.521    Tester  1 OnTester result 906 : passed in 0:00:00.920
PK      0       16:50:17.521    Test2 (TESTER_EURUSD.rann_RannForex,M1) 2019.01.01 00:00:00   100
PJ      0       16:50:18.451    Tester  2 OnTester result 938 : passed in 0:00:00.929
QN      0       16:50:18.451    Test2 (TESTER_EURUSD.rann_RannForex,M1) 2019.01.01 00:00:00   100
NF      0       16:50:19.375    Tester  3 OnTester result 922 : passed in 0:00:00.923
KR      0       16:50:19.375    Test2 (TESTER_EURUSD.rann_RannForex,M1) 2019.01.01 00:00:00   100
ER      0       16:50:20.308    Tester  4 OnTester result 937 : passed in 0:00:00.932
CJ      0       16:50:20.308    Tester  5 of 5 passes processed (5 successfully finished) in 0:00:04.827
OO      3       16:50:20.319    127.0.0.1       MetaTester 5 forced to stop

Откуда ноги этой сверх-медленной синхронизации?