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

 
leonerd:

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

ObjectType(sparam)
 
Vitaly Muzichenko:

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

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

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

 
leonerd:

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

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

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

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

ObjectGetInteger(0,name,OBJPROP_TYPE)

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

 
leonerd:

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

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

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

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

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

 

Подскажите пожалуйста!

Как в MQL5 рассчитать EMA из Volume. В MQL4 была функция iMAonArray(), а в MQL5 я так понимаю ее нет.

 
Madmas:

Подскажите пожалуйста!

Как в MQL5 рассчитать EMA из Volume. В MQL4 была функция iMAonArray(), а в MQL5 я так понимаю ее нет.

Нужно создать хендл индикатора iVolumes. Затем создаем хендл индикатора iMA, но только вместо цены подставляем хендл iVolumes:

//--- create handle of the indicator
   handle_iVolumes=iVolumes(Symbol(),Period(),Inp_Volumes_applied_volume);
//--- if the handle is not created
   if(handle_iVolumes==INVALID_HANDLE)
     {
      //--- tell about the failure and output the error code
      PrintFormat("Failed to create handle of the iVolumes indicator for the symbol %s/%s, error code %d",
                  Symbol(),
                  EnumToString(Period()),
                  GetLastError());
      //--- the indicator is stopped early
      return(INIT_FAILED);
     }
//--- create handle of the indicator iMA
   handle_iMA=iMA(Symbol(),Period(),Inp_MA_ma_period,Inp_MA_ma_shift,
                  Inp_MA_ma_method,handle_iVolumes);
//--- if the handle is not created
   if(handle_iMA==INVALID_HANDLE)
     {
      //--- tell about the failure and output the error code
      PrintFormat("Failed to create handle of the iMA indicator for the symbol %s/%s, error code %d",
                  Symbol(),
                  EnumToString(Period()),
                  GetLastError());
      //--- the indicator is stopped early
      return(INIT_FAILED);
     }

Результат:

MAOnVolumesOnMA

Файлы:
 
Vladimir Karputov:

Нужно создать хендл индикатора iVolumes. Затем создаем хендл индикатора iMA, но только вместо цены подставляем хендл iVolumes:

Результат:


Спасибо, буду разбираться))))....учиться

[Удален]  
Madmas:

Спасибо, буду разбираться))))....учиться

Только возьмите на заметку: ЭТО может выдавать не совсем корректные данные...

 
Сергей Таболин:

Только возьмите на заметку: ЭТО может выдавать не совсем корректные данные...

Почему? С чем это связано? И раз так - то какие еще варианты есть?

[Удален]  
Madmas:

Почему? С чем это связано?

Понятия не имею... Задавал этот вопрос на форуме - ни одного ответа...