Обсуждение статьи "Рецепты MQL5 - Элементы управления в подокне индикатора - Кнопки" - страница 8

 
C-4:
В МТ5 асинхронное обновление свойств чарта. Т.е. то что мы установили свойство, еще не говорит о том, что терминал его тут же подобрал. Для того, что бы все свойства перечитались терминалом заново и используется функция ChartRedraw(). Также можно использовать функции ChartGet... ObjectGet, в этом случае свойства также будут перечитаны.
Нигде не встречал этой информации. Наткнулся, решение нашел, теперь буду знать.
 
komposter:
Нигде не встречал этой информации. Наткнулся, решение нашел, теперь буду знать.

Что именно? Вот в начале раздела Операции с графиками :

Функции для работы с графиками. Все операции с графиками применимы только в экспертах и скриптах.

Функции, устанавливающие свойства графика, фактически служат для отправки ему команд на изменение. При успешном выполнении этих функций команда попадает в общую очередь событий графика. Изменение графика производится в процессе обработки очереди событий данного графика.

По этой причине не следует ожидать немедленного визуального обновления графика после вызова данных функций. В общем случае обновление графика производится терминалом автоматически по событиям изменения - поступление новой котировки, изменения размера окна графика и т.д. Для принудительного обновления внешнего вида графика используйте команду на перерисовку графика ChartRedraw().

 
komposter:
Нигде не встречал этой информации. Наткнулся, решение нашел, теперь буду знать.
Разумеется, потому что этой информации нигде нет (оказывается есть, см. выше:))). Сам мучился с этой проблемой, пока не обратился в сервис деск. Там-то мне и подсказали, что изменения свойств объектов на чарте происходит асинхронно. А судя по Вашему примеру это касается свойств и самого чарта.
 
Rosh:

Что именно? Вот в начале раздела Операции с графиками :

Я не говорил, что ее там нет, просто я не встречался (или забыл). Спасибо.

 

Как на счет моего предложения по генерации события CHART_CHANGE при изменении таких свойств графика, как флаг отслеживания событий мыши? Может, сделаете?

 
C-4:
Разумеется, потому что этой информации нигде нет (оказывается есть, см. выше:))). Сам мучился с этой проблемой, пока не обратился в сервис деск. Там-то мне и подсказали, что изменения свойств объектов на чарте происходит асинхронно. А судя по Вашему примеру это касается свойств и самого чарта.

Еще в разделе Графические объекты :

Группа функций, предназначенных для работы с графическими объектами, относящимися к любому указанному графику.

Функции, задающие свойства графических объектов, а также операции создания ObjectCreate() и перемещения ObjectMove() объектов на графике фактически служат для отправки команд графику. При успешном выполнении этих функций команда попадает в общую очередь событий графика. Визуальное изменение свойств графических объектов производится в процессе обработки очереди событий данного графика.

По этой причине не следует ожидать немедленного визуального обновления графических объектов после вызова данных функций. В общем случае обновление графических объектов на чарте производится терминалом автоматически по событиям изменения - поступление новой котировки, изменения размера окна графика и т.д. Для принудительного обновления графических объектов используйте команду на перерисовку графика ChartRedraw().

 
Rosh:

Еще в разделе Графические объекты :

С объектами понятно и привычно, а вот от свойств графика я ожидал другого.

Мне мое предложение больше не повторять? Или в сервис-деск оформить?

 
Автору - глубокая благодарность за прекрасную статью. 
 
MetaQuotes Software Corp.:

Опубликована новая статья MQL5 Bylaw Manual: Indicator Subwindow Controls - Buttons:

Автор: Анатолий Кажарск

Очень хороший туториал, я очень надеюсь, что вы опубликуете еще что-нибудь на эту тему, спасибо большое!

 

Анатолий,

Хочу поблагодарить вас за ваш вклад в сообщество MQL5. Ваши примеры продвинули меня на несколько месяцев вперед в разработке моего собственного кода. Еще раз большое спасибо.

Мне нужно использовать этот "индикатор" для кнопок Open Long, Open Short, Close All и Set Trailing Stop. Моя проблема в том, что мне нужно взаимодействовать с советником так, чтобы я мог

1) получить доступ к этим функциям внутри советника, и

2) получать рекомендации советника, мигая кнопкой "Open Long" при срабатывании pSAR, CCI, MACD или других индикаторов.

Вот в чем мой вопрос: Как сделать так, чтобы советник взаимодействовал с кнопками индикаторов, а кнопки индикаторов взаимодействовали с советником?

Заранее спасибо,

CipherPips

 
CipherPips:

Спасибо!

Думаю, эта версия вам нравится больше: Графические интерфейсы I: Подготовка структуры библиотеки (глава 1)

Продолжение этой серии. Будет много подробных примеров.