Скачать MetaTrader 5

Вывести иконку над баром по центру. OBJPROP_XDISTANCE ? Посоветуйте...

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Пиши статьи с помощью нашего редактора. Это удобно!
George Merts
3612
George Merts 2013.11.07 09:21 

Всех приветствую.

Коллеги, задача в заголовке.

Иконки нормально загружаются, нормально выводятся, но выравниваются по левому краю. А хотелось бы, задавать смещение иконки относительно бара.

Насколько я понимаю, надо изменить точку привязки иконки функцией ObjectSetInteger(m_chart_id,m_name,OBJPROP_XDISTANCE,X)

И тут у меня какие-то проблемы.  

Сперва запрашиваю ObjectGetInteger(m_chart_id,m_name,OBJPROP_XDISTANCE) - возвращает 0 - вполне справедливо.

Выставляю ObjectSetInteger(m_chart_id,m_name,OBJPROP_XDISTANCE,1) - ожидаю, что точка привязки будет смещена на один пиксел - возвращает true - значит, привязка изменена.

Тут же снова запрашиваю ObjectGetInteger(m_chart_id,m_name,OBJPROP_XDISTANCE) - возвращает опять 0. Ну, и понятно, иконка - никуда не смещается.

Что я делаю не так, друзья ?

Как сделать, чтобы выводимая иконка выводилась над баром по центру ?

Помогите, кто знает ! 

Документация по MQL5: Графические объекты / ObjectSetInteger
Документация по MQL5: Графические объекты / ObjectSetInteger
  • www.mql5.com
Графические объекты / ObjectSetInteger - Документация по MQL5
Dmitry Fedoseev
42924
Dmitry Fedoseev 2013.11.07 09:37  
George Merts
3612
George Merts 2013.11.07 09:44  

Да, спасибо, я уже тоже гляжу на эти свойства... В принципе, их хватает для центрирования...

Просто иконку буду выводить не как битмап, а как битмапную метку... И у нее задавать такие свойства.

George Merts
3612
George Merts 2013.11.07 10:02  

Ан нет... Плохо подходит...

Графические метки - не привязываются, судя по всему, к графику, а привязываются к окну чарта. То есть, мне надо будет постоянно отслеживать текущее увеличение, текущий таймфрейм...

 

Как выход, оно, конечно, годится... Но хотелось бы обойтись просто иконкой. 

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов - Документация по MQL5
Dmitry Fedoseev
42924
Dmitry Fedoseev 2013.11.07 10:14  
OBJ_TEXT, OBJ_ARROW
Documentation on MQL5: Standard Constants, Enumerations and Structures / Objects Constants / Object Types
Documentation on MQL5: Standard Constants, Enumerations and Structures / Objects Constants / Object Types
  • www.mql5.com
Standard Constants, Enumerations and Structures / Objects Constants / Object Types - Documentation on MQL5
George Merts
3612
George Merts 2013.11.07 10:22  

OBJ_TEXT - позволяет вывести текст, и там все в порядке.

OBJ_ARROW - иконки стандартных типов.

Хотелось бы обозначать паттерны собственными иконками.

Для этого подходят объекты  OBJ_BITMAP  и OBJ_BITMAP_LABEL.

Второй - как я понял, предназначен для меток на самом чарте. То есть, он привязывается именно к окну чарта, и именно относительно него происходит отрисовка и выравнивания.  

Первый - всем подходит, привязывается к ценовым точкам, сдвигается при изменении графика - отрисовка и выравнивание происходит относительно самого графика... Но, вот сместить точку привязки на середину рисунка - у меня что-то не получается...

Ну... Посмотрим, может, у кого-то еще будут какие предложения... 

 

P.S. 

Больше всего меня удивляет, что смещение - нормально выставляется, и возвращает true (а значит, все нормально проходит), и тут же, по запросу - возвращается нулевое, вроде как его никто и не менял.

Пожалуй, надо обратиться в Сервисдеск... Мол, баг... А там - пусть ткнут меня носом в правильное использование битмэпов... 

Dmitry Fedoseev
42924
Dmitry Fedoseev 2013.11.07 10:28  

Точно, у рисунка в координатах цены нет параметра точки привязки. (В окне свойств объекта на графике его нет, значит нет его в природе)

Есть еще вариант -  OBJ_TEXT и собственный шрифт сделать.

George Merts
3612
George Merts 2013.11.07 11:00  

Написал в Сервисдеск... Посмотрим, что они ответят.

На крайний случай, конечно, можно использовать OBJ_BITMAP_LABEL. Но до того не хочется возиться с отслеживанием таймфреймов, увеличения, количества баров на экране... 

George Merts
3612
George Merts 2013.11.07 15:45  

Увы, общение с Сервисдеском подтверждает, что почему-то объект OBJ_BITMAP не расчитан на то, что в нем будет смещаться опорная точка.

Ну, если это так - то, по крайней мере, функция установки этого свойства - должна возвращать false.

Хотя, мне, безусловно, было бы гораздо лучше, чтобы разработчики сделали такую возможность для объектов  типа OBJ_BITMAP

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий