Вопросы от "чайника" - страница 97

 
Alfff:

Здравствуйте.

Подскажите пожалуйста как программно установить в определенный момент на графике вертикальную линию?

 Спасибо. 

Справочник MQL5 / Графические объекты

Справочник MQL5 / Графические объекты / ObjectCreate

Справочник MQL5 / Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов

Справочник MQL5 / Графические объекты / ObjectSetInteger

Ну и так далее.

Создаёте объект, затем выставляете его свойства.

Где то так:

   if(ObjectFind(chid,name)==-1)
      ObjectCreate(chid,name,OBJ_VLINE,0,time,0);
   ObjectSetString(chid,name,OBJPROP_TOOLTIP,tool);
   ObjectSetInteger(chid,name,OBJPROP_COLOR,color_line);
   ObjectSetInteger(chid,name,OBJPROP_STYLE,style_line);
   ObjectSetInteger(chid,name,OBJPROP_BACK,true);
   ObjectSetInteger(chid,name,OBJPROP_SELECTED,false);
 
Urain:

Справочник MQL5 / Графические объекты

Справочник MQL5 / Графические объекты / ObjectCreate

Справочник MQL5 / Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов

Справочник MQL5 / Графические объекты / ObjectSetInteger

Ну и так далее.

Создаёте объект, затем выставляете его свойства.

Где то так:

Спасибо.
 
if(ObjectFind(chid,name)==-1)
А что означает эта строчка?
 
erkov:
 

.... и все - дальше не понятно....  метод GetData возвращает или -1 или >= 0 - (а мне-то  нужно значение цены открытия бара №5)

А что Вы хотели получить? Смотрим документацию: "Возвращаемое значение: >=0 – в случае удачи, -1 – если не удалось получить данные".

Если "нужно значение цены открытия бара №5", то и искать это значение нужно в  "массиве для размещения данных", т.е. в массиве Open[] в Вашем случае.

...Читайте Справочник

 

Alfff:

if(ObjectFind(chid,name)==-1)
А что означает эта строчка?

Если объект с именем name на графике chid ещё не существует то ...

Если же он уже существует то мы просто пропускаем создание объекта и переходим прямо к модификации настроек.

 
Urain:

Если объект с именем name на графике chid ещё не существует то ...

Если же он уже существует то мы просто пропускаем создание объекта и переходим прямо к модификации настроек.

 Небольшое замечание: "Если объект не найден, то функция возвращает отрицательное число". Судя по всему, возвращается не обязательно "-1".

Как говорю, "...Читайте Справочник" :) 

 
Yedelkin:

 Небольшое замечание: "Если объект не найден, то функция возвращает отрицательное число". Судя по всему, возвращается не обязательно "-1".

Как говорю, "...Читайте Справочник" :) 

Наверно да, лучше поставить

if(ObjectFind(chid,name)<0)

хотя всегда работало.

 
Yedelkin:

А что Вы хотели получить? Смотрим документацию: "Возвращаемое значение: >=0 – в случае удачи, -1 – если не удалось получить данные".

Если "нужно значение цены открытия бара №5", то и искать это значение нужно в  "массиве для размещения данных", т.е. в массиве Open[] в Вашем случае.

...Читайте Справочник

Спасибо за помощь. Обязательно почитаю...

 
erkov:

Спасибо за помощь. Обязательно почитаю...

Общий подход к копированию массивов можно посмотреть в описаниях функций Copy...(). Например, CopyBuffer().
 
erkov:
Вопрос 1. где искать найденные (с таким трудом) данные цены открытия (в каком месте массива Open[] )...????

Вопрос 2. для таймфрейма  D1 надо объявлять другой массив и создавать свой экземпляр класса (или можно обойтись одним)...????

Вопрос 1. ВСЕ классы Стандартной Библиотеки, обеспечивающие доступ к данным индикаторов и таймсерий, перед использованием данных требуют их (данных) "освежения".

               Пишите так (в упрощённом варианте):

iOpen.Refresh(-1);
iOpen.GetData(...);

Вопрос 2. Другой.

Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5