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

 
Хроника сайта не обновляется с 30 Ноября ...
 

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

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

fxsaber, 2018.11.09 15:34

В Тестере чье событие генерируется раньше, тик или таймер?

Например, Таймер должен вызваться в 12:00:00.000. И есть тик с таким же временем. Кто раньше сработает, OnTimer или OnTick?

К сожалению, это не всегда так. Если на тике произошло срабатывание отложенного уровня, то сначала вызовется OnTick, а только потом OnTimer.

@Slava, Вы считаете такую ситуацию правильной?

 
fxsaber:

Со static-переменными встречаются всякие нюансы. По какой причине такое поведение на обеих платформах?

Потому что это не C++. Здесь своя особая логика: Init инициализируется раньше чем Symb

 
A100:

Потому что это не C++. Здесь своя особая логика: Init инициализируется раньше чем Symb

Понять бы эту логику или прочесть где.

 
fxsaber:

Понять бы эту логику или прочесть где.

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

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

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

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

 
A100:

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

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

Понял, спасибо!

 

Разработчикам. Поправьте, пожалуйста, баг в 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 назад этот вопрос подымался. 

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