Новая версия платформы MetaTrader 5 build 4150: экспорт торгового отчета и новые методы машинного обучения в MQL5 - страница 18

 
void OnStart()
  {
   for(int i=0;i<10;i++)
     {
      Print(i);
      for(int i=0;i<10;i++)
        {
         Print(i);
        }
     }
  }

Раньше на такое компилятор вроде реагировал, сейчас 0 errors, 0 warnings
Давно так?

Версия 4166

 
Rorschach #:

Раньше на такое компилятор вроде реагировал, сейчас 0 errors, 0 warnings
Давно так?

Версия 4166

Коли так, то очень плохо - часто автоматом переменную для цикла ставишь, особенно когда доработку делаешь кода. Обязательно нужно предупреждение!

 
Rorschach #:

Раньше на такое компилятор вроде реагировал, сейчас 0 errors, 0 warnings
Давно так?

Версия 4166

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

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   for(int i=0;i<4;i++)
     {
      PrintFormat("First i=%lu",i);
      for(int i=0;i<4;i++)
        {
         PrintFormat("   Second i=%lu",i);
        }
     }
   /*
   Результат:
   First i=0
      Second i=0
      Second i=1
      Second i=2
      Second i=3
   First i=1
      Second i=0
      Second i=1
      Second i=2
      Second i=3
   First i=2
      Second i=0
      Second i=1
      Second i=2
      Second i=3
   First i=3
      Second i=0
      Second i=1
      Second i=2
      Second i=3
   */
  }
//+------------------------------------------------------------------+
Документация по MQL5: Основы языка / Переменные / Область видимости и время жизни переменных
Документация по MQL5: Основы языка / Переменные / Область видимости и время жизни переменных
  • www.mql5.com
Область видимости и время жизни переменных - Переменные - Основы языка - Справочник MQL5 - Справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Rorschach #:

Раньше на такое компилятор вроде реагировал

Реагировал точно (в MT4 можно видеть сейчас). Сегодня долго искал ошибку в схематично таком коде.

void f( double &Res )
{
  if (true)
  {
    double Res = -DBL_MAX;
    
    Res = MathMax(MathRand(), Res);
  }
}

Задумался и написал выделенное. Раньше бы компилятор сразу предупредил, а так потерял много времени, чтобы увидеть (код побольше) эту ерунду.

 
Нда. Если имя аргумента функции скрывает глобальную переменную, компилятор предупреждает "declaration of '***' hides global variable". Это важно, а тут, понимаешь, неважно.
 

Может тут кто знает, Брокер Финам, какие бы я роботы не тестировал в тестере, на графике отсутствует линия баланса, а линия средств рисуется как гармошка, пробовал переустанавливать ставить на разные ПК, ничего не меняется, так же происходит у всех моих знакомых что перешли с Открытия на финам. Как то не правильно там все работает, на открытии робот торгует сутки, потом прогоняешь его на истории, сравниваешь, сделки 1 в 1, тут же живет своими жизнями, есть расхождения.


 
Slava #:


Зачем Вам нужна реальная задержка в тестере?

понятно что время в тестере эмулируется и слип тоже. Но создание удаление файла, чтение запись эти операции с эмуляцией не дружат, они в реале, как и подгрузка тиков или данных. Возможно нужно подумать в этом направлении, что бы как то реальные операции, требующие времени можно было делать с учетом реальных таймингов. 

И  ОнДеинит в вызываемом по айкьюстом индикаторе хорошо было бы посещать в тестере. Если по логике файлы в индикаторе открываются, а закрываются в ОнДеинит, то тока закрыть терминал что бы закрыть / отвязать файлы от терминала.
 
Artyom Trishkin #:

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

То, что нет предупреждения, конечно, неправильно.
 
Slava #:

Будет ли реализован в тестере доступ к графикам символов/ТФ-ов, отличных от текущего?

Сейчас ChartFirst() работает, а ChartNext() возвращает -1. Хотелось бы иметь к ним доступ, чтобы можно было устанавливать шаблоны, делать отрисовку объектов и т.п.

 

build 4167

  орф. ошибку не исправили

горячей клавиши для открытия Expert List нет

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