Как научиться создавать графические объекты? MQL4.

 

Давно хотел научиться создавать графические объекты, но много строк кода приводят в замешательство.

 

1.Если с вызовом индикатора  в  советнике все понятно: вызов хендла, копирование значений в буфер, то какой алгоритм в построении объектов вкратце?

Начну с самого простого построении трендовой линии. Здесь есть пример https://www.mql5.com/ru/docs/constants/objectconstants/enum_object/obj_trend

Только, как сделать, чтобы линия появлялась, но не исчезала? 

2.Не понятно, как в советнике считывать текущее положение этой линии, в объектах нет буферов?

3.Создавать собираюсь в MQL4, сильно ли отличие от MQL5? 

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_TREND
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_TREND
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов / OBJ_TREND - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Возьмите в качестве примера OBJ_TREND и скопируйте себе в советник, как отдельные функции. Что значит "сделать, чтобы не исчезала"? Получение значений времени и цены объекта: ObjectGetTimeByValue и ObjectGetValueByTime.
OBJ_TREND - Документация на MQL4
  • docs.mql4.com
OBJ_TREND - Документация на MQL4
 
barabashkakvn:
Возьмите в качестве примера OBJ_TREND и скопируйте себе в советник, как отдельные функции. Что значит "сделать, чтобы не исчезала"? Получение значений времени и цены объекта: ObjectGetTimeByValue и ObjectGetValueByTime.
Когда вызываю скрипт линия визуально появляется(действие происходит, как в ролике), а затем исчезает.
 
forexman77:
Когда вызываю скрипт линия визуально появляется(действие происходит, как в ролике), а затем исчезает.
Измените код скрипта. Уберите удаление объекта. Вы используете скрипт из справки целиком?
 
barabashkakvn:
Измените код скрипта. Уберите удаление объекта. Вы используете скрипт из справки целиком?
Да. Сейчас попробую.
 
barabashkakvn:
Измените код скрипта. Уберите удаление объекта. Вы используете скрипт из справки целиком?
Линия осталась. Все в порядке. Теперь буду разбираться.
 
Если будут вопросы по коду, выкладывайте код и спрашивайте.
 
barabashkakvn:
Если будут вопросы по коду, выкладывайте код и спрашивайте.

Не понятно, что означают эти цифры и что задают? Если с временем могу предположить, что это индекс бара, тогда как понимать InpPrice, имеет тип int?

input int             InpDate1=35;         // Дата 1-ой точки в %
input int             InpPrice1=60;        // Цена 1-ой точки в %
input int             InpDate2=65;         // Дата 2-ой точки в %
input int             InpPrice2=40;        // Цена 2-ой точки в %
 
forexman77:

Не понятно, что означают эти цифры и что задают?

Расшифровка Объяснение даётся немного выше: 

#property description "Скрипт строит графический объект \"Трендовая линия\"."
#property description "Координаты точек привязки задаются в процентах от"
#property description "размеров окна графика."

 

и дальше эти данные будут использоваться для определения точек рисования:

void OnStart()
  {
.
.
.
//--- определим точки для рисования линии
   int d1=InpDate1*(bars-1)/100;
   int d2=InpDate2*(bars-1)/100;
   int p1=InpPrice1*(accuracy-1)/100;
   int p2=InpPrice2*(accuracy-1)/100;
//--- создадим линию тренда
.
.
.
 
barabashkakvn:

Расшифровка Объяснение даётся немного выше: 

 

и дальше эти данные будут использоваться для определения точек рисования:

В примере "OBJ_TREND" по моему много лишнего. Так как плохо знаю эту область боюсь буду долго блуждать. 

На сколько понимаю в коде ведется поиск, но мне уже известны две точки, индексы баров(свой алгоритм).

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

 
forexman77:

В этом примере по моему много лишнего. Так как плохо знаю эту область боюсь буду долго блуждать. 

На сколько понимаю в коде ведется поиск, но мне уже известны две точки, индексы баров(свой алгоритм).

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

Если Вы знаете время и даты своих точек, то Вам нужно вызывать только bool TrendCreate()
Причина обращения: