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

fxsaber:

В Маркете популярны кроссплатформенные советники. Фактически, mq4 и mq5-файлы совпадают: исходник состоит из одной строки.

Приходится плодить одинаковые mq4/mq5 файлы лишь ради того, чтобы объяснить компилятору, создавать EX4 или EX5-файл.


После недавнего разделения компиляторов в ME, когда mq4 не компилируется в ME от MT5, делать это стало странно. Ведь ME от MT4 всегда знает, что нужно делать EX4, а ME от MT5 - EX5. Однако, им все равно надо об этом явно говорить, создавая соответствующие одинаковые mq4/mq5-файлы.


Может, ввести mql-расширение файлов? Открываешь его в ME_MT4 - компилит в EX4, ME_MT5 - EX5.


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

делайте заголовочные файлы, все остальное выносите в mqh

я давно отказался от пректов.

Vladimir Pastushak:

делайте заголовочные файлы, все остальное выносите в mqh

я давно отказался от пректов.

Какое это имеет отношение к тому, что написал?

кто нибудь сталкивался с зависанием мт5 , после зависания резко начинает расти раздел в оперативной памяти "кэшировано", далее если в течении 10-15 минут не вырубить процесс mt5, зависает уже windows, может сутками работать, бывает через пару часов вылетает.
SEM:
кто нибудь сталкивался с зависанием мт5 , после зависания резко начинает расти раздел в оперативной памяти "кэшировано", далее если в течении 10-15 минут не вырубить процесс mt5, зависает уже windows, может сутками работать, бывает через пару часов вылетает.

Ищите утечку памяти в эксперта, индикаторах. 
fxsaber:

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

Они ж в разных папках находятся. У вас по симлинку чтоль объединены?
Alexey Navoykov:
Они ж в разных папках находятся. У вас по симлинку чтоль объединены?

В MQL5 общая для обоих Терминалов.

Как поменять язык интерфейса МТ5? Вроде раньше была переключалка в меню, теперь не нахожу.
Stanislav Korotky:
Как поменять язык интерфейса МТ5? Вроде раньше была переключалка в меню, теперь не нахожу.

Столкнулся со странной ситуацией на днях - индикатор на TF M1 стал неверно определять цену открытия дневного бара. Индикатор уже используется года 3, до этого нареканий не было. Смещение было очень существенным, порядка 500 пунктов, при этом с утра он показывал правильные данные, а после обеда уже стал врать. Переключение TF не помогало, помогло лишь изменение TF расчета индикатора в самих настройках индикатора. Воспроизвести это не знаю как. Такие глюки пугают при автоматической торговле.

При попытке создать ресурс, компилятор "ругается" на BMP файл mouse.bmp

unsupported image format 'C:\Users\pc\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Files\Images\MyBMP\mouse.bmp'   

Хотя, если использовать напрямую, ошибки нет и картинко отображается корректно.

#property strict
string label_name="currency_label";        // имя объекта OBJ_BITMAP_LABEL 
#resource "\\Files\\Images\\MyBMP\\Style-Pause-icon.bmp";    // путь к файлу каталог_данных_терминала\MQL4\Files\Images\MyBMP\... 
//#resource "\\Files\\Images\\MyBMP\\mouse.bmp";    
string press      ="::Files\\Images\\MyBMP\\Style-Pause-icon.bmp";    // RESOURCE
string unpress    ="\\Files\\Images\\MyBMP\\mouse.bmp";  // путь к файлу каталог_данных_терминала\MQL4\... 
//+------------------------------------------------------------------+ 
//| Expert initialization function                                   | 
//+------------------------------------------------------------------+ 
int OnInit() 
  { 
//--- создадим кнопку OBJ_BITMAP_LABEL, если ее еще нет 
   if(ObjectFind(0,label_name)<0) 
     { 
      //--- попробуем создать объект OBJ_BITMAP_LABEL 
      bool created=ObjectCreate(0,label_name,OBJ_BITMAP_LABEL,0,0,0); 
      if(created) 
        { 
         //--- привяжем кнопку к правому верхнему углу графика 
         ObjectSetInteger(0,label_name,OBJPROP_CORNER,CORNER_RIGHT_UPPER); 
         //--- теперь настроим свойства объекта 
         ObjectSetInteger(0,label_name,OBJPROP_XDISTANCE,100); 
         ObjectSetInteger(0,label_name,OBJPROP_YDISTANCE,50); 
         //--- сбросим код последней ошибки в 0 
         ResetLastError(); 
         //--- загрузим картинку для состояния кнопки "Нажата" 
         bool set=ObjectSetString(0,label_name,OBJPROP_BMPFILE,0,press); 
         //--- проверим результат 
         if(!set) 
           { 
            PrintFormat("Не удалось загрузить картинку из файла %s. Код ошибки %d",press,GetLastError()); 
           } 
         ResetLastError(); 
         //--- загрузим картинку для состояния кнопки "Отжата" 
         set=ObjectSetString(0,label_name,OBJPROP_BMPFILE,1,unpress); 
          
         if(!set) 
           { 
            PrintFormat("Не удалось загрузить картинку из файла %s. Код ошибки %d",unpress,GetLastError()); 
           } 
         //--- отдадим графику команду на обновление, чтобы кнопка появилась сразу же, не дожидаясь тика 
         ChartRedraw(0); 
        } 
      else 
        { 
         //--- объект создать не удалось, сообщим об этом 
         PrintFormat("Не удалось создать объект OBJ_BITMAP_LABEL. Код ошибки %d",GetLastError()); 
        } 
     } 
//--- 
   return(INIT_SUCCEEDED); 
  } 
//+------------------------------------------------------------------+ 
//| Expert deinitialization function                                 | 
//+------------------------------------------------------------------+ 
void OnDeinit(const int reason) 
  { 
//--- удалим объект с графика  
   ObjectDelete(0,label_name); 
  }
//+------------------------------------------------------------------+

файл в архиве.

Редактор


Поведение в МТ4 аналогичное...

Документация по MQL5: Общие функции / ResourceCreate
Документация по MQL5: Общие функции / ResourceCreate
  • www.mql5.com
[in]  Относительный путь к файлу, содержащему данные для ресурса. Если путь начинается с обратной косой черты "\" (пишется "\\"), то файл ищется относительно папки Если второй вариант функции вызывается для...
Файлы:
Images.zip  3 kb