Вопрос к знатокам MQL - страница 5

 
Rita:  

ObjectCreate(name, OBJ_TRIANGLE,  WindowFind(WindowExpertName(),  Time[-1],вершина1_цена,

                                                                                                         Time[-5],вершина2_цена,

                                                                                                          Time[-7],вершина3_цена,     );

//--------------------------------------------------------------------------------------------------------------------------  

Координаты вершин треугольника по времени я задала (к  примеру - по времени  откр. будущих баров). Дальше мне не совсем понятно. На шкале окна индикатора отображается не цена. А градация значений индикатора. 

Мне же нужно "поставить" треугольник с жестко закрепленными вершинами, вне зависимости от цены. 

И желательно,  жестко закрепить его в правом (или пр.нижнем) углу. 

И мне не понятно как задать  координаты его вершин - по вертикальной оси шкалы индикатора :
      


.... ... нет ответа от знатоков...

Видимо, придется принять к сведению, что отрисовать треугольник в окне индикатора средствами MQL невозможно.
 
Rita:
Видимо, придется принять к сведению, что отрисовать треугольник в окне индикатора средствами MQL невозможно.
А какая изначальная задача?
 

Изначальная задача вот такая.

Мне велели сделать вот что. Если ценовые линии инструментов индикатора на нулевом баре сходятся(сближаются), 

т.е. абс. в-на  (Symbol1[0]-Symbol2[0]) < ( Symbol1[1] - Symbol2[1])

то треугольнник  должен отрисовываться острием  вправо - см. рис.

А если  линии расходятся, - то острием влево.

Условия я написала. А вот треугольник никак на нарисую... 

 

 

Цену нужно задавать в единицах индикатора, а время как обычно. может в этом проблема?

Но он всё-равно будет привязан не к экрану, а к графику.

Если сложность понять какие вообще ценовые координаты задавать, то алгоритм следующий:

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

Если с фиксированным масштабом, то координаты задаются константами.

 
Rita:

Time - массив, у него нет отрицательных элементов.

будущее время можно задать как-то так: Time[0]+X*Period()*60.

По вертикали задаются значения по шкале индикатора.

 

Понятно. Благодарю всех.

Проще написать словами - "схождение или расхождение", чем мучиться с треугольником ... -

 

 
Rita:

.... ... нет ответа от знатоков...

Видимо, придется принять к сведению, что отрисовать треугольник в окне индикатора средствами MQL невозможно.


Может быть стрелки лучше

ObjectCreate("DevIM0", OBJ_ARROW, window, Time[0]+5500, 0);
ObjectSet("DevIM0", OBJPROP_ARROWCODE, 232);
ObjectSet("DevIM0", OBJPROP_WIDTH, 4);

 

ставьте в угол лейбу шрифтом Wingdings 2 и не мучайтесь...

 
Спсб. Можно и стрелками попробывать.
 
Rita:
Спсб. Можно и стрелками попробывать.


ObjectCreate("DevIM0", OBJ_TRIANGLE, window, Time[0]+5500, 0,Time[0]+8500, 30,Time[0]+8500, -1*30);

Треугольник тоже неплохо рисуется

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