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

 
Stanislav Korotky #:

Вот тут хорошо описаны аж 2 разных способа (с игнорированием и без игнорирования), которых не хватает в МЕ.

Спасибо.

 

b3662. Компилятор включает все статические методы класса, включая неиспользуемые.

#include <fxsaber\MultiTester\MTTester.mqh> // https://www.mql5.com/ru/code/26132

int OnInit()
{
  uchar Bytes[];
  
  return(MTTESTER::GetLastTstCache(Bytes) == -1);
}


Строка для поискаOshibka 065.

 
Alexey Viktorov #:

А вы умеете этим пользоваться?

Да
 
Alexey Viktorov #:

Я не пользовался студией, не знаю как там. Но это ведь не способ обойти, а остановка по условию. Правда такая запись как привёл я i>50 замучает при цикле как у fxsaber`a останавливаясь от 51 до 100 включительно. Это конечно замучает. И конечно проблема, что нельзя это добавить в ходе выполнения программы в режиме отладки. Потому и пользуются таким способом как показал fxsaber, ставится никчёмная строка под условием и если уже это не надо, то просто снимается точка останова.

Ну да, если в студии можно не прерывая выполнение отладки добавить точку останова по условию, то это конечно круто…

Вы тут вносите изменение в программный код. Это далеко не всегда допустимо делать.
 

Индикаторы имеют деструкторы которые не срабатывают при закрытии терминала, остаются куски которые видны на старте.  Это косяк? 

 

В тестере у полей ввода (я знаю, что они не работают в тестере) не устанавливается выравнивание текста по горизонтали. Какой ALIGN не ставь, все равно выравнивается по левому краю. В онлайн все нормально.

int OnInit()
{
   EditCreate(0, "MyEdit", 0, 100, 100, 100, 20, "Text", "Consolas", 10, ALIGN_CENTER, true, CORNER_RIGHT_UPPER, clrDodgerBlue);
   ChartRedraw();
   return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason)
{
   ObjectDelete(0, "MyEdit");
}
void OnTick()
{
}
bool EditCreate(const long             chart_ID,
                const string           name,
                const int              sub_window,
                const int              x,
                const int              y,
                const int              width,
                const int              height,
                const string           text,
                const string           font,
                const int              font_size,
                const ENUM_ALIGN_MODE  align,
                const bool             read_only,
                const ENUM_BASE_CORNER corner,
                const color            back_clr,
                const color            clrBorder=clrWhite,
                const bool             back=false,
                const bool             selection=false,
                const bool             hidden=true)
  {
   ResetLastError();
   if(!ObjectCreate(chart_ID,name,OBJ_EDIT,sub_window,0,0))
     {
      return(false);
     }
   ObjectSetInteger(chart_ID,name,OBJPROP_XDISTANCE,x);
   ObjectSetInteger(chart_ID,name,OBJPROP_YDISTANCE,y);
   ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
   ObjectSetInteger(chart_ID,name,OBJPROP_XSIZE,width);
   ObjectSetInteger(chart_ID,name,OBJPROP_YSIZE,height);
   ObjectSetString(chart_ID,name,OBJPROP_TEXT,text);
   ObjectSetString(chart_ID,name,OBJPROP_FONT,font);
   ObjectSetInteger(chart_ID,name,OBJPROP_FONTSIZE,font_size);
   ObjectSetInteger(chart_ID,name,OBJPROP_ALIGN,align);
   ObjectSetInteger(chart_ID,name,OBJPROP_READONLY,read_only);
   ObjectSetInteger(chart_ID,name,OBJPROP_CORNER,corner);
   ObjectSetInteger(chart_ID,name,OBJPROP_COLOR, clrBlack);
   ObjectSetInteger(chart_ID,name,OBJPROP_BGCOLOR, back_clr);
   ObjectSetInteger(chart_ID,name,OBJPROP_BORDER_COLOR, clrWhite);
   ObjectSetInteger(chart_ID,name,OBJPROP_BACK,back);
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTABLE,selection);
   ObjectSetInteger(chart_ID,name,OBJPROP_SELECTED,selection);
   ObjectSetInteger(chart_ID,name,OBJPROP_HIDDEN, hidden);
   ObjectSetInteger(chart_ID,name,OBJPROP_ZORDER,1);
   return(true);

Результат:


Это ограничение тестера или все-таки недоработка?

 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

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

fxsaber, 2023.04.02 17:35

Проблема с Тестером в b3662. Во время оптимизации операционка страшно подвисает - GUI отзывается с огромным лагом. System-процесс грузится на полную.

Хорошие подробности написали на англоязычном форуме. У нескольких людей воспроизводится, включая меня.

Столкнулся с таким только в b3662. b3661 - не было такой проблемы.


Этот процесс, похоже, вызывает тормоза.


Когда заменю exe-файлы на предыдущие версии, то terminal64.exe после запуска никакой реакции не выдает. Подскажите, что может мешать запуску предыдущих билдов?

Папку \AppData\Roaming\MetaQuotes почистил - не помогло.

На b3662 невозможно оптимизировать - GUI операционки (WinServer2019) почти намертво виснет.

 
Был бы признателен, если в функцию
TesterStatistics()
добавили получение значения "Максимум комплексного критерия". Я понимаю, что алгоритм его расчета это закрытая информация, но значение было бы полезно получить по результатам тестирования.
 

Странное поведение: ордер не принят, RetCode=10012, "Request timeout", а потом ордер исполнился.

Build 3550

Подробнее https://www.mql5.com/ru/forum/1111/page3308#comment_46120826

 

После вчерашнего обновления (билд 3672) многое не компилируется:


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