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

 

Разработчикам. Поправьте, пожалуйста, баг в MQL4.

Фиксированный масштаб, создаваемый вручную через F8, вкладка "Общие", галочка "Фиксировать масштаб 1:1" не соответствует по значениям аналогичной функции ChartSetInteger(chart_ID,CHART_SCALEFIX_11,0,value).

Как воспроизвести. Скрипт в приложении запустить на графике, произойдёт вызов ф-ии выше. В поле Comment будет следующие значения:

Comment("result = ", result, "; WindowPriceMax = ", WindowPriceMax, "; WindowPriceMin = ", WindowPriceMin);  

Они же будут видны, если нажать F8, вкладка "Общие", см. поля - "Закрепить максимум", "Закрепить минимум". Запишите эти значения (1).

Далее отмените фиксированный масштаб, убрав галочку в поле "Фиксировать масштаб", автоматически снимется галочка "Фиксировать масштаб 1:1".

Зафиксируйте масштаб вручную по F8, вкладка "Общие", установив галочку "Фиксировать масштаб 1:1", автоматически установится галочка "Фиксировать масштаб".

Подтвердите действие, нажав ОК. Снова нажмите F8 и запишите значения "Закрепить максимум", "Закрепить минимум" (2).

Сравните записанные значения (1) и (2).

Например, у меня, после работы скрипта:

Закрепить максимум - 112.004
Закрепить минимум - 111.420

После установки вручную:

Закрепить максимум - 112.004
Закрепить минимум - 111.398

PS: Проверил ещё раз. Похоже это ошибка не MQL4, а терминала 4.00 Build 1147 16 Nov 2018
Файлы:
 

Следующие файлы недоступны через MQL:  *.exe, *.dll. *.bat, *.sys, *.ex4 и *.ex5. Причина понятна.

На какие еще файлы стоит ограничение?

 

После закрытия терминала у граф. объектов слетают тултипы! Уважаемые разработчики, исправьте пожалуйста.

МТ5, билд 1940 х64.

Тестовый скрипт для проверки:

#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   const string name="test_tooltip_"+TimeToString(TimeCurrent(),TIME_DATE|TIME_SECONDS);
//---
   const double price=SymbolInfoDouble(_Symbol,SYMBOL_ASK);
//---
   if(ObjectCreate(0,name,OBJ_HLINE,0,0,price))
     {
      Print(__FUNCTION__,": Построен тестовый объект "+name+" по цене "+DoubleToString(price,_Digits));
      //---
      ObjectSetString(0,name,OBJPROP_TOOLTIP,"TOOLTIP");
      ObjectSetInteger(0,name,OBJPROP_SELECTABLE,true);
      //---
      ChartRedraw();
     }
   else
      Print(__FUNCTION__,": ОШИБКА #",GetLastError(),"! Объект "+name+" не построен!");

  }
//+------------------------------------------------------------------+
 
Alexey Kozitsyn:

После закрытия терминала у граф. объектов слетают тултипы! Уважаемые разработчики, исправьте пожалуйста.

МТ5, билд 1940 х64.

Тестовый скрипт для проверки:

Не надейтесь, уже лет 5 назад этот вопрос подымался. 

Ответ = тултип никуда не пишется и хранится пока работает программа.

 

Это верное несоответствие в Документации?

AccountInfoInteger

Возвращает значение соответствующего свойства счета.

long  AccountInfoInteger( 
   int  property_id      // идентификатор свойства 
   );

Параметры

property_id

[in]  Идентификатор свойства. Значение может быть одним из значений ENUM_ACCOUNT_INFO_INTEGER.

 
По поводу багрепорта  . Проверил ещё раз. Похоже это ошибка не MQL4, а терминала 4.00 Build 1147 16 Nov 2018
 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Ошибки, баги, вопросы

A100, 2018.12.03 12:25

void f()
{
static a;
}
static b;

на самом деле означает

void f()
{
}
static b;
static a;

первым делом отдельностоящие static, ну а в {} потом


Один и тот же код (сложный) исполняется по-разному на MT4/5 из-за различия последовательности выполнения static в MT4/5. Написать простой пример не получилось.

 
fxsaber:

Следующие файлы недоступны через MQL:  *.exe, *.dll. *.bat, *.sys, *.ex4 и *.ex5. Причина понятна.

На какие еще файлы стоит ограничение?

подозреваю что ещё *.cmd *.ts и прочие ненароком попавшие в соответсвующую ветку реестра.
То есть всё что при открытии через еxplorer может привести к запуску приложения/активации службы

 
fxsaber:
Один и тот же код (сложный) исполняется по-разному на MT4/5 из-за различия последовательности выполнения static в MT4/5. Написать простой пример не получилось.

Верю. Не верю.

 
A100:

на самом деле означает

первым делом отдельностоящие static, ну а в {} потом

Похоже, что недавно что-то изменили в поведении. Некоторое время назад порядок был другим - глобальные переменные и статики инициализировались в одном порядке (в порядке объявления). Т.е. в данном случае сначала a, а потом b. Может ошибаюсь, но вряд ли.

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