Новая версия платформы MetaTrader 5 build 4260: общие улучшения - страница 2

 

Не работает OBJPROP_ANCHOR для OBJ_BITMAP в тестере.

Для OBJ_TEXT работает, а для  OBJ_BITMAP нет. 

Господа разработчики, сделайте пожалуйста, чтоб работало и для  OBJ_BITMAP.


#resource "\\Images\\dollar.bmp"
//+------------------------------------------------------------------+
int OnInit()
  {
   ObjectCreate(0, "txt", OBJ_TEXT, 0, 0, 0);
   ObjectCreate(0, "bmp", OBJ_BITMAP, 0, 0, 0);
   ObjectSetString(0, "bmp", OBJPROP_BMPFILE, "::Images\\dollar.bmp");
   ObjectSetInteger(0, "bmp", OBJPROP_XSIZE, 32);
   ObjectSetInteger(0, "bmp", OBJPROP_YSIZE, 32);

   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
void OnTick()
  {
   static int i = 0;
   static datetime lasttime = 0;
   datetime time = iTime(_Symbol, PERIOD_CURRENT, 0);

   if(lasttime != time)
     {
      lasttime = time;
      double price = iHigh(_Symbol, PERIOD_CURRENT, 0);

      ObjectSetDouble(0, "txt", OBJPROP_PRICE, price);
      ObjectSetInteger(0, "txt", OBJPROP_TIME, time);

      ObjectSetDouble(0, "bmp", OBJPROP_PRICE, price);
      ObjectSetInteger(0, "bmp", OBJPROP_TIME, time);

      i = i == 9 ? 0 : i;

      ObjectSetString(0, "txt", OBJPROP_TEXT, EnumToString((ENUM_ANCHOR_POINT)i));
      ObjectSetInteger(0, "txt", OBJPROP_ANCHOR, (ENUM_ANCHOR_POINT)i);
      ObjectSetInteger(0, "bmp", OBJPROP_ANCHOR, (ENUM_ANCHOR_POINT)i);

      i++;
      ChartRedraw();
     }
  }
//+------------------------------------------------------------------+
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений...
 
Не баг, но всё же. Почему содержимое текста MessageBox пишется в лог Экспертов, а содержимое заголовка нет? Просьба пояснить. Спасибо.
 
Please add the Function to open DOM deep of market, it is not fair you can open charts but not DOM.
 

А идут ли работы или есть ли планы по внедрению chatGPT / OpenAI API в платформу? Библиотека или функции в MQL? Для питона у них уже есть библиотека.

Про copilot знаю, но интересует именно внедрение в платформу и доступ из терминала / советников.

 
Файл настроек *.set сохраняется в любое заданное место, так и задумано? Могу ошибаться, вроде раньше было только в папку терминала.
 
Alexey Volchanskiy #:
Файл настроек *.set сохраняется в любое заданное место, так и задумано? Могу ошибаться, вроде раньше было только в папку терминала.

Нет. Сохранение и загрузка файлов (не только set, но и tpl и др) производятся вручную пользователем. Поэтому никогда не было ограничений.

Ограничения применяются только при работе с файлами из MQL-программы

 

b4260, OnInit советника выполняется на 10% медленнее OnStart скрипта!


Заменяю этот код

void OnStart()
{
  OnStart2();
}


 на такой.

int OnInit()
{
  OnStart2();
  
  return(INIT_FAILED);
}


И получаю снижение производительности на 10%! Подумал, что советник выполняется на каком-то другом CPU-Core, чем скрипт. Грохнул все приложения на компе. Все равно воспроизводится.


Если нужно, могу подготовить OnStart2-код для ЛС.


ЗЫ

Такой OnInit не тормозит.

void OnInit()
{
  OnStart2();
}
 
fxsaber #:

b4260, OnInit советника выполняется на 10% медленнее OnStart скрипта!

Если нужно, могу подготовить OnStart2-код для ЛС.

Мне не удалось создать лаконичный код OnStart2, поэтому только ЛС.


Дополнительно выяснил следующее.

void OnInit()
{
  OnStart2();
  ExpertRemove(); // Эта строка замедляет выполнение OnStart2() выше.
}
int OnInit()
{
  OnStart2();
  ExpertRemove(); // Эта строка ускоряет выполнение OnStart2() выше.
  
  return(INIT_FAILED);
}

Строка для поискаOshibka 103.

 
fxsaber #:

Мне не удалось создать лаконичный код OnStart2, поэтому только ЛС.


Дополнительно выяснил следующее.

Строка для поискаOshibka 103.

Объясните физический смысл ваших изысканий

PS по поводу ускорений-замедлений. Принято прикладывать таблички с замерами времени. При этом, запуски должны производиться в одинаковых условиях и не менее 5 раз

 
Slava #:

Объясните физический смысл ваших изысканий

Запускаю свою Оптимизацию, которая использует GUI Тестера. Для этого нужно, чтобы в Тестере OnInit просто возвращал INIT_SUCCEEDED, а в Терминале - делал вычисления и потом возвращал INIT_FAILED (т.е работал, как скрипт).


Оказалось, что вычисления во втором случае (условно обозначил их выше через OnStart2) сильно зависят от описанных факторов.

Т.е. скорость вычислений зависит от типа void/int OnInit и наличия ExpertRemove.

У меня не получается объяснить, почему это влияет на скорость вычислений.

Optimization - самостоятельная оптимизация торгового советника.
Optimization - самостоятельная оптимизация торгового советника.
  • 2024.03.26
  • www.mql5.com
После появления своего тикового тестера логичным продолжением было применить его на множестве алгоритмов оптимизации . Другими словами, научиться оптимизировать торговые советники самостоятельно - без
Причина обращения: