Бета-тестирование MetaTrader 4 build 1194

 

Приглашаем всех принять участие в бета-тестировании нового билда, скачав обновление с нашего сервера MetaQuotes-Demo (адрес demo.metaquotes.net:443).

Главные изменения:

  • исправление ошибок по крешлогам
  • исправление работы окон встроенного маркета и сигналов
  • использование нового редактора/компилятора от MetaTrader 5
 

стилизатор стиль MetaQuotes может испортить исходник, было до применения стилизатора:

//_______________________________________________________________________
int OrderSend_(int magic_, int cmd_, double lot_, int stoploss_ = 0, int takeprofit_ = 0, double price_ = -1.0,string comment_ = "", int attempts_ = 10)
  {
   int ticket = -1;
   static class CDig
     {
   public:
      int            digits(double v) {return(0);}
     } vol;
   return(ticket);
  }
//_______________________________________________________________________

применил стилизатор:

int OrderSend_(int magic_, int cmd_, double lot_, int stoploss_ = 0, int takeprofit_ = 0, double price_ = -1.0, string comment_ = "", int attempts_ = 10)
  {
   int ticket = -1;
   static class CDig
     {
   public:
      int            digits(double v) {return(0);}
     } v             ol;
   return(ticket);
  }
//_______________________________________________________________________
 

предупреждение компилятора несоответствия типов не выдает, тут как положено:

#property strict
//+------------------------------------------------------------------+
void OnStart()
  {
   double x=100.0;
   f(x);        //possible loss of data due to type conversion  tst.mq4 
  }
//_______________________________________________________________________
void f(int v)
  {
  }
//_______________________________________________________________________

а тут нет предупреждения компилятора:

#property strict
//+------------------------------------------------------------------+
void OnStart()
  {
   double x=100.0;
   f(x);
  }
//_______________________________________________________________________
void f(bool v)
  {
  }
//_______________________________________________________________________
 
Ребят, вы б добавили лучше в редактор поддержку внешних консольных утилит через stdin\stdout. Тогда можно было бы прикрутить Uncrustify (и вообще всё, что угодно) и не заморачиваться написанием своего стилизатора.
 
SeriousRacoon:
Ребят, вы б добавили лучше в редактор поддержку внешних консольных утилит через stdin\stdout. Тогда можно было бы прикрутить Uncrustify (и вообще всё, что угодно) и не заморачиваться написанием своего стилизатора.

Это вряд ли сделают. Но можно внешними стилизаторами пользоваться - например, так (блог английский). Все равно свой код сразу пишешь в привычном стиле, а чужой нужно пакетно переформатировать.

 
Stanislav Korotky:

Это вряд ли сделают. Но можно внешними стилизаторами пользоваться - например, так (блог английский). Все равно свой код сразу пишешь в привычном стиле, а чужой нужно пакетно переформатировать.

Я как раз для переформатирования скачанных исходников и пользую внешний (но uncrustify, не clang) - через сторонний редактор с поддержкой консоли.

Пакетно исходники библиотеки придётся переформатировать каждый раз при обновлении, они тихой сапой переписываются, даже изменённые.

Вообще, странно видеть редактор кода без поддержки внешних утилит и редиректа консоли. Таковая есть в любом редакторе сейчас - editpad, editplus и т.д.

 
Igor Makanu:

стилизатор стиль MetaQuotes может испортить исходник, было до применения стилизатора:

применил стилизатор:

Стилизатор исправили в бете 1196.
 
SeriousRacoon:
Ребят, вы б добавили лучше в редактор поддержку внешних консольных утилит через stdin\stdout. Тогда можно было бы прикрутить Uncrustify (и вообще всё, что угодно) и не заморачиваться написанием своего стилизатора.

Мы добавили множество стилей:


Выберите свой по умолчанию и используйте. Внешние стилизаторы использовать не будем.

 
MetaQuotes Software Corp.:
Стилизатор исправили в бете 1196.

а мой следующий вопрос?

Igor Makanu:

предупреждение компилятора несоответствия типов не выдает, тут как положено:

а тут нет предупреждения компилятора:

проверил в VS2017 в проекте C#, получаю как и ожидал, ошибку компиляции

Ошибка CS1503 Аргумент 1: не удается преобразовать из "double" в "bool"

в MQL почему то компилятор не выдает предупреждение
 

обновился на 1196, стилизатор мой пример https://www.mql5.com/ru/forum/320733#comment_12956484

правильно обработал

 

MQL4 билд 1196   Windows 10 Pro x64, IE 11


какой то баг с переименовыванием расширения файла, отловить не смог, но было так:

- создал скрипт через мастер, нажимал только кнопку " Компилировать " и затем кнопку "Вызов торгового терминала"

- затем в терминале запускал тестовый скрипт и обратно через панель задач Виндовс в МЕ правил код, в какой то момент мои изменения перестали работать в терминале

- затем в терминале кликнул мышей на иконку скрипта - изменить - мой скрипт, в МЕ открылся файл без изменений, и был уже открыт файл с моими правками

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


Сейчас создал новый проект и каждый раз создаю новые файлы .mqh и добавляю с помощью #include , опять в какой то момент перестали мои правки в инклудниках работать, начал разбираться - один из инклудников получил самостоятельно расширение .mql5 вместо своего .mqh . Как и ранее нажимал только мышкой кнопку компиляция и вызов торгового терминала

Вот скрин -  в папке проекта у меня дублируются файлы с расширением mqh и mql5


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