Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1286

 
Vladimir Karputov:

OnChartEvent и так срабатывает только для текущего символа - в этом случае узнавать символ бессмысленно: он всегда изместен.

Второй путь - обход списка всех графиков - ObjectFind.

Между делом не подскажете что за ошибка pen creation error?

2021.02.02 18:06:55.780 GDICache        pen creation error [87]
2021.02.02 18:06:56.251 GDICache        pen creation error [87]
2021.02.02 18:06:56.556 GDICache        pen creation error [87]
2021.02.02 18:06:56.677 GDICache        pen creation error [87]
2021.02.02 18:06:56.969 GDICache        pen creation error [87]

Выяснил причину. Возникло при дебаге при указании свойств линии. Стиль линии было левое значение. Просто странно, что нигде не нашел упоминания данной ошибки.

 
Aleksandr Prishenko:

Раньше все чудесно работало. Надо было на бесплатном хостинге попробовать. В общем подарил метаквотам 15 баксов )))

Спасибо за ответ!

 Мигрировал (пожалел 15) но проверки весьма странные.

Мигратор не понимает путь установки индикатора из советника, приходится чистить графики:

2021.02.02 19:57:39.442 Virtual Hosting 6215402: check for load "C:\Users\Crucian\AppData\Roaming\MetaQuotes\Terminal\D0E8209F77C8CF37AD8BF550E51FF075\MQL5\Experts\BBS_9.ex5::Indicators\Band Width1.ex5"

2021.02.02 19:57:39.442 Virtual Hosting 6215402: failed to load program


Мигратор просит даже перекомпилировать технические индикаторы )):

2021.02.02 19:44:12.708 Virtual Hosting 6215402: obsolete version of imported module "ZigZag.ex5" should be recompiled before transfer to the hosting server



 
Добрый день, видел много статей как построить советник из индикатора или как получить данные из индикатора в советник. А как сделать наоборот, как визуализировать советник, скажем он рассчитал массив данных как передать его в пользовательский индикатор?
 
VANDER:
Добрый день, видел много статей как построить советник из индикатора или как получить данные из индикатора в советник. А как сделать наоборот, как визуализировать советник, скажем он рассчитал массив данных как передать его в пользовательский индикатор?

Через подключаемый .mqh в котором всё считается и советник оттуда берёт, и индикатор…

 

Здравствуйте! Как сделать в платформе MT5, чтобы примагничивалась линия в к индикатору  Moving Averages? Чтобы линия тренда четка встала и примагнитилась к линии индикатора. В настройках платформы в графиках есть пункт "примагничивание", там линия тренда ставится на цену открытия. Есть ли такой способ для скользящей средней и простой линии тренда? 


 
leonerd:

Запускаю отладчик, ставлю брекпойнт на type переменную. Рисую треугольник (Insert - Objects - Shapes - Triangle) на чарте. Нажимаю Delete, треугольник удаляется. Ловлю событие, type в коде выше всегда 0. type_str, соответственно, OBJ_VLINE (первое значение в перечислении).

Тот же код при событии изменения свойств графического объекта или перетаскивания возвращает корректный тип объекта - OBJ_TRIANGLE.

Вывод. При удалении графического объекта не удается получить тип объекта в OnChartEvent.

Всё-таки  непонятно, как узнать тип удаленного объекта. Имя объекта в OnChartEvent() приходит корректное, а тип всегда 0. Описанное выше баг или просто надо по-другому как-то?

//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   if(id==CHARTEVENT_OBJECT_DELETE)
     {
      string object_name=sparam;
      ENUM_OBJECT object_type=(ENUM_OBJECT)ObjectGetInteger(ChartID(),object_name,OBJPROP_TYPE); // object_type всегда VLINE
     }
  }
 
leonerd:

Всё-таки  непонятно, как узнать тип удаленного объекта. Имя объекта в OnChartEvent() приходит корректное, а тип всегда 0. Описанное выше баг или просто надо по-другому как-то?

ObjectType(sparam)
 
Vitaly Muzichenko:

Что за функция ObjectType()?

Вроде, ветка про MQL5.

По всей видимости, так и задумано. Ибо и другие параметры удаленного объекта извлечь невозможно. Приходит только имя. Координаты и пр. всё по нулям. Как-то их можно вытащить по событию удаления граф. объекта?

 
leonerd:

Что за функция ObjectType()?

Вроде, ветка про MQL5.

По всей видимости, так и задумано. Ибо и другие параметры удаленного объекта извлечь невозможно. Приходит только имя. Координаты и пр. всё по нулям. Как-то их можно вытащить по событию удаления граф. объекта?

Да, не ожидал что её нет в mql5, а есть аналог: 

ObjectGetInteger(0,name,OBJPROP_TYPE)

Вы же хотите получить параметры объекта по событию удаления, то есть после того, как его уже нет.

 
leonerd:

Что за функция ObjectType()?

Вроде, ветка про MQL5.

По всей видимости, так и задумано. Ибо и другие параметры удаленного объекта извлечь невозможно. Приходит только имя. Координаты и пр. всё по нулям. Как-то их можно вытащить по событию удаления граф. объекта?

Вероятнее всего такой возможности нет и не ожидается. Ведь объекта уже нет…

Вижу такой выход из ситуации: При создании объекта, в массив структуры писать имя и все нужные параметры, а при удалении, прочитав нужные параметры удалить из массива структуры запись о нём.

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