Ошибки, баги, вопросы - страница 2671

 

Ребят, я взял работку во фрилансе. Заказчик скинул мне файл в последний момент. Очень похоже на декомпил. Хочу сначала убедиться что это так перед жалобой. Прикладываю кусок кода.

int f0_0(string As_0, int &Ai_8, int &Aia_12[]) {
   string Ls_16;
   if (StringLen(As_0) == 0) return (-1);
   string Ls_24 = As_0;
   int Li_32 = 0;
   Ai_8 = 0;
   ArrayResize(Aia_12, Ai_8);
   while (StringLen(Ls_24) > 0) {
      Li_32 = StringFind(Ls_24, ",");
      if (Li_32 > 0) {
         Ls_16 = StringSubstr(Ls_24, 0, Li_32);
         Ls_24 = StringSubstr(Ls_24, Li_32 + 1, StringLen(Ls_24));
      } else {
         if (StringLen(Ls_24) > 0) {
            Ls_16 = Ls_24;
            Ls_24 = "";
         }
      }
      if (f0_2(Ls_16, Ai_8, Aia_12) == 0) return (-2);
   }
   return (1);
}

Одна из функций. Все переменные и функции выглядят как то так.

 
Кроме переменных в настройках индикатора, но их могли сменить до меня.
 
Dmitri Custurov:

Ребят, я взял работку во фрилансе. Заказчик скинул мне файл в последний момент. Очень похоже на декомпил. Хочу сначала убедиться что это так перед жалобой. Прикладываю кусок кода.

Одна из функций. Все переменные и функции выглядят как то так.

Декомпил однозначно.
 
Как в этом случае разойтись с заказчиком? На нарушение указал, но сделка уже заключена. Отменить кроме как через арбитраж нельзя будет что ли?
 
Dmitri Custurov:
Как в этом случае разойтись с заказчиком? На нарушение указал, но сделка уже заключена. Отменить кроме как через арбитраж нельзя будет что ли?

Пишите в арбитраж. Я сообщил администрации.

 
Sergey Dzyublik:

Баг MT5(build 2340)  дважды используется один и тот же код: первый проход - успешная компиляция, второй - ошибка компиляции.
Видимо проблемы связаны с кешом генератора шаблонных функций. 
Ошибка исчезает если для шаблонной функции "
void run(const T &ff) заменить передачу по ссылке на передачу по значению "void run(const T ff)".

Спасибо за сообщение, исправлено

 

Спасибо разработчикам за предоставление функциональности namespace.
Однако почему в MT5 (build 2361) полностью отсутствует поддержка intellisense для пространств имен, даже для глобального через :: и то отсутствует?

В то же время, худо-бедно но имеется поддержка intellisense для статических методов классов.
По этому с пользовательской точки зрения логично возникает вопрос: "Почему бы повторно не использовать код, отвечающий за intellisense в классах, для реализации intellisense для namespace?".

 
Баг МТ5 (build 2361) повторный запуск скрипта на том же чарте, когда первый запуск еще не завершен, приводит к зависанию терминала.

Проблема наблюдается для основного проекта, где выполняются "математические расчеты" - там терминал зависает намертво.
В качестве примера для воспроизведения можно взять следующий код:
#define K 1000
   
void OnStart(){    
   uint start = GetTickCount();
   printf("Start");
   while(GetTickCount() - start < 10*K){
      Sleep(1*K);   
      printf("Progress bar...");
   };
   printf("End");
}


Повторный запуск предложенного скрипта на том же чарте, когда первый запуск еще не завершен, происходит без confirmation message.
Возникает зависание на несколько секунд - отсутствует вывод "Progress bar...", затем устанавливается флаг на терминальный выход и Sleep больше не срабатывает.
Для основного проекта, после зависания на несколько секунд, терминал не развисает вообще - приходится убивать процесс.

 

есть ли возможность из агента тестера получить номер прохода?


ЗЫ: или нужен уникальный идентификатор от каждого прохода при тестировании для имени файла - хочу интересующие настройки ЕА при тестировании сохранять в файл, но нужно хоть, что то уникальное чтобы имя файла с настройками сформировать

 
Igor Makanu:

есть ли возможность из агента тестера получить номер прохода?

Есть только те данные, что в opt-файле. Формат доступен.

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