Новая версия платформы MetaTrader 5 build 2085: Интеграция с Python и массовые улучшения в тестере стратегий - страница 18

 
Alexey Navoykov:

Зачем здесь выдаётся предупреждение?

Данная запись абсолютно нормальна.  Гораздо удобней, чем громоздить такое:

В Visual Studio нет никаких предупреждений.  Потому как результат каждой функции используется для определения дальнейшего поведения алгоритма.  Это же касается и тернарного оператора.  А предупреждение должно выдаваться только если значения никак не используются (т.е. математические операции и др.)

Иначе тогда предупреждения нужно выдавать и при вызове отдельных функций:  a();   b();   Ведь их результаты вообще никак не используется.

Согласен с Вашим замечанием, такие выражения надо разрешить

 
Slava:

Visualize indicator on a chart - в левой колонке вторая сверху синяя строчка.

Либо просто киньте драг-дропом индикатор на окно тестера

а всё нашёл спасибо
 

Оставлял сообщение на англоязычной версии сайта, но реакции никакой.

В последнем обновлении ошибка не ушла. Суть ошибки в том, что при работе тестера, после первой итерации иногда перестает работать половина агентов (как ядер, так и по локальной сети).

Помогает принудительное отключение и включение. Очень раздражает, т.к. когда у вас 30-40 ядер и постоянно приходится контролировать, все ли запустились.


 

Компилятор выдаёт ошибку при попытке использования массива в условном операторе:

void f(const int &arr[]) { }

void OnStart()
{
  int a[]={0, 0},  b[]= {1, 1};
    
  f(true ? a : b);  // 'a' - invalid array access
}

Данная операция вполне нормальная, никаких проблем быть не должно.  Аналогичное выражение с одиночными объектами по ссылке работает нормально.

 
Alexey Navoykov:

Компилятор выдаёт ошибку при попытке использования массива в условном операторе:

Данная операция вполне нормальная, никаких проблем быть не должно.  Аналогичное выражение с одиночными объектами по ссылке работает нормально.

Так ошибка по смыслу от этой не отличается

void f( int& ) {}

void OnStart()
{
  int i, j;
  
  f(true ?  i : j); // '?' - parameter passed as reference, variable expected
}
 
fxsaber:

Так ошибка по смыслу от этой не отличается

Ну да, а вот с объектами структуры - работает.  В общем надо, чтоб с любыми переменными работало.
 
Alexey Navoykov:
Ну да, а вот с объектами структуры - работает.  В общем надо, чтоб с любыми переменными работало.

Про структуры не знал, спасибо.

 
Alexey Navoykov:

Компилятор выдаёт ошибку при попытке использования массива в условном операторе:

Данная операция вполне нормальная, никаких проблем быть не должно.  Аналогичное выражение с одиночными объектами по ссылке работает нормально.

а если реальное условие вместо true прописать, будет ошибка или нет?

 

Стал замечать, что при запуске теста в последнем обновлении мигает окно. Сейчас решил отловить это окно и оказалось, что теперь сразу после Старта вызывается: 

"C:\Program Files\MetaTrader 5\metaeditor64.exe" 
/compile:"C:\Users\User\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5" 
/inc:"C:\Users\User\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5"
/time:1563050704 /flg:0 /stop:se9924_516629546

Окно раздражает. Да и смысла перекомпилировать исходники нет. 

Сохранение отчета тестирования тоже раздражает своим миганием.

 
Roffild:

Стал замечать, что при запуске теста в последнем обновлении мигает окно. Сейчас решил отловить это окно и оказалось, что теперь сразу после Старта вызывается: 

Окно раздражает. Да и смысла перекомпилировать исходники нет. 

Сохранение отчета тестирования тоже раздражает своим миганием.

как отловили вызовы с флагами?