Новая версия платформы MetaTrader 5 build 2875: Улучшения и исправления - страница 5

 
Denis:

Отключите привязку стакана к активному графику.


Спасибо.

 
JRandomTrader:

Никогда такого не было, а тут иногда роботы начинают сыпать ошибками (5004 ERR_CANNOT_OPEN_FILE) открытия своих файлов состояний и логов.

Файлы есть, права есть.

Дополнительные условия - большая загрузка процессора и (возможно) большое к-во открытых файлов (но не больше, чем раньше).

Wine

Открываются как FileOpen(filename,FILE_READ|FILE_WRITE|FILE_TXT|FILE_ANSI|FILE_SHARE_READ) для логов и как FileOpen(filename,FILE_WRITE|FILE_BIN|FILE_SHARE_READ) для стейтов.

Нашёл косяк. При обновлении МТ в выходные, некоторые роботы с последних графиков загрузились дважды (вместе с графиками).

Перед этим было сокращено к-во открытых графиков примерно на такое же количество и сохранён дефолтный профиль.

Мог ли как-то остаться "хвост" с графиками, которые были в конце списка и сдвинулись к его началу из-за удаления некоторых графиков из середины? А в хвосте остались их "фантомы".

Upd:

Вижу, они и сохранились! В MQL5/Profiles/Charts/Default файлы chart43.chr chart45.chr chart46.chr имеют дату 28.03.2021, а все остальные - 03.04.2021, когда и было обновление. Эти файлы не упоминаются в order.wnd, но загрузились при старте обновлённого МТ.

 

Билд терминала

2021.04.08 00:39:49.682 Terminal        MetaTrader 5 x64 build 2878 started for MetaQuotes Software Corp.
2021.04.08 00:39:49.683 Terminal        Windows 10 build 19041, Intel Core i3-3217U  @ 1.80GHz, 6 / 11 Gb memory, 104 / 390 Gb disk, IE 11, UAC, GMT+7
2021.04.08 00:39:49.683 Terminal        E:\MetaQuotes\MetaTrader 5

Редактор тоже 2878

При компиляции больших файлов (советник с подключенной библиотекой) время компиляции заоблачное по сравнению с предыдущими билдами:

0 errors, 0 warnings, 97118 msec elapsed

Если компилировать библиотеку отдельно, то время компиляции нормальное:

0 errors, 0 warnings, 4556 msec elapsed 

Файлы могу предоставить

PS. Чуть позже при очередной компиляции:

0 errors, 0 warnings, 136532 msec elapsed
 
Artyom Trishkin:

При компиляции больших файлов (советник с подключенной библиотекой) время компиляции заоблачное по сравнению с предыдущими билдами:

b2875

0 errors, 0 warnings, 27520 msec elapsed                1       1

EX5 (не содержит явных или косвенных ресурсов) занимает 1.85 MB.


b2878

0 errors, 0 warnings, 27182 msec elapsed                1       1

EX5 (не содержит явных или косвенных ресурсов) занимает 796 KB.


EX5 стал в 2.3 меньше размером. Интересно, что раньше MQLProtector-версия занимала всегда меньше обычной. А теперь - наоборот.


ЗЫ Если идет Оптимизация на 6/8 Агентах, то скорость компиляции падает в два раза.

 
fxsaber:

b2875

EX5 (не содержит явных или косвенных ресурсов) занимает 1.85 MB.


b2878

EX5 (не содержит явных или косвенных ресурсов) занимает 796 KB.


EX5 стал в 2.3 меньше размером. Интересно, что раньше MQLProtector-версия занимала всегда меньше обычной. А теперь - наоборот.


ЗЫ Если идет Оптимизация на 6/8 Агентах, то скорость компиляции падает в два раза.

b2875 ex5 занимает 4038 Kb

b2878 ex5 занимает 3529 Kb

Все файлы содержат явно в себе ресурсы.

Размер изменился несущественно, однако скорость компиляции замедлена раз в 20

 
Раз такие существенные различия, надо смотреть тогда и производительность.
 
2021.04.08 00:39:49.682 Terminal        MetaTrader 5 x64 build 2878 started for MetaQuotes Software Corp.
2021.04.08 00:39:49.683 Terminal        Windows 10 build 19041, Intel Core i3-3217U  @ 1.80GHz, 6 / 11 Gb memory, 104 / 390 Gb disk, IE 11, UAC, GMT+7
2021.04.08 00:39:49.683 Terminal        E:\MetaQuotes\MetaTrader 5

Такой скрипт

//+------------------------------------------------------------------+
//|                                                    ChartTest.mq5 |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                             https://mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link      "https://mql5.com/ru/users/artmedia70"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   Print("CHARTEVENT_MOUSE_MOVE=",CHARTEVENT_MOUSE_MOVE);
  }
//+------------------------------------------------------------------+

Даёт такой результат:

2021.04.08 04:02:11.602 CHARTEVENT_MOUSE_MOVE=10

Если теперь запустить советник:

//+------------------------------------------------------------------+
//|                                               TestChartEvent.mq5 |
//|                                  Copyright 2021, MetaQuotes Ltd. |
//|                             https://mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, MetaQuotes Ltd."
#property link      "https://mql5.com/ru/users/artmedia70"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   ChartSetInteger(ChartID(),CHART_EVENT_MOUSE_MOVE,true);
   Print("Mouse Move is Enabled: ",(string)(bool)ChartGetInteger(ChartID(),CHART_EVENT_MOUSE_MOVE));
   Print("CHARTEVENT_MOUSE_MOVE value=",CHARTEVENT_MOUSE_MOVE);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//---
   string comm="CHART_EVENT_MOUSE_MOVE=="+(string)CHART_EVENT_MOUSE_MOVE+" && CHART_EVENT_MOUSE_MOVE != 10 ... WHY?";
   if(id==10)
      comm="id="+(string)id+": lparam="+(string)lparam+", dparam="+(string)(int)dparam;
   if(id==CHART_EVENT_MOUSE_MOVE)
      comm+=" and id=CHART_EVENT_MOUSE_MOVE";
   Comment(comm);
  }
//+------------------------------------------------------------------+

То в журнале он напишет

2021.04.08 04:27:19.965 Mouse Move is Enabled: true
2021.04.08 04:27:19.965 CHARTEVENT_MOUSE_MOVE value=10

Значение константы CHART_EVENT_MOUSE_MOVE равно 10.

Но на чарте сначала (если сразу не двигать мышку) будет такая запись:


Обратите внимание - в комментарии на графике уже значение константы CHART_EVENT_MOUSE_MOVE равно 40.

Соответственно, при движении мышкой мы никогда не попадаем в отмеченный блок кода в приложенном выше коде.

Что и видим на графике при движении мышки - отображены только id и координаты курсора, но нет записи " and id=CHART_EVENT_MOUSE_MOVE":


 
Artyom Trishkin:

Если компилировать библиотеку отдельно, то время компиляции нормальное:

отдельно библиотека это mqh?

при компиляции mqh не генерируется код, только проверяется синтаксис на корректность, оптимизаций нет, все быстро.

 
Andrei Trukhanovich:

отдельно библиотека это mqh?

при компиляции mqh не генерируется код, только проверяется синтаксис на корректность, оптимизаций нет, все быстро.

Да, mqh. Спасибо, не знал.

 
Artyom Trishkin:

Такой скрипт

Даёт такой результат:

Если теперь запустить советник:

То в журнале он напишет

Значение константы CHART_EVENT_MOUSE_MOVE равно 10.

Но на чарте сначала (если сразу не двигать мышку) будет такая запись:


Обратите внимание - в комментарии на графике уже значение константы CHART_EVENT_MOUSE_MOVE равно 40.

Соответственно, при движении мышкой мы никогда не попадаем в отмеченный блок кода в приложенном выше коде.

Что и видим на графике при движении мышки - отображены только id и координаты курсора, но нет записи " and id=CHART_EVENT_MOUSE_MOVE":



Артём, обрати внимание на разницу между CHART_EVENT_MOUSE_MOVE и CHARTEVENT_MOUSE_MOVE


Причина обращения: