Обсуждение статьи "Рецепты MQL5 - Элементы управления в подокне индикатора - Кнопки" - страница 8
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
В МТ5 асинхронное обновление свойств чарта. Т.е. то что мы установили свойство, еще не говорит о том, что терминал его тут же подобрал. Для того, что бы все свойства перечитались терминалом заново и используется функция ChartRedraw(). Также можно использовать функции ChartGet... ObjectGet, в этом случае свойства также будут перечитаны.
Нигде не встречал этой информации. Наткнулся, решение нашел, теперь буду знать.
Что именно? Вот в начале раздела Операции с графиками :
Функции для работы с графиками. Все операции с графиками применимы только в экспертах и скриптах.
Функции, устанавливающие свойства графика, фактически служат для отправки ему команд на изменение. При успешном выполнении этих функций команда попадает в общую очередь событий графика. Изменение графика производится в процессе обработки очереди событий данного графика.
По этой причине не следует ожидать немедленного визуального обновления графика после вызова данных функций. В общем случае обновление графика производится терминалом автоматически по событиям изменения - поступление новой котировки, изменения размера окна графика и т.д. Для принудительного обновления внешнего вида графика используйте команду на перерисовку графика ChartRedraw().
Нигде не встречал этой информации. Наткнулся, решение нашел, теперь буду знать.
Что именно? Вот в начале раздела Операции с графиками :
Я не говорил, что ее там нет, просто я не встречался (или забыл). Спасибо.
Как на счет моего предложения по генерации события CHART_CHANGE при изменении таких свойств графика, как флаг отслеживания событий мыши? Может, сделаете?
Разумеется, потому что этой информации нигде нет (оказывается есть, см. выше:))). Сам мучился с этой проблемой, пока не обратился в сервис деск. Там-то мне и подсказали, что изменения свойств объектов на чарте происходит асинхронно. А судя по Вашему примеру это касается свойств и самого чарта.
Еще в разделе Графические объекты :
Группа функций, предназначенных для работы с графическими объектами, относящимися к любому указанному графику.
Функции, задающие свойства графических объектов, а также операции создания ObjectCreate() и перемещения ObjectMove() объектов на графике фактически служат для отправки команд графику. При успешном выполнении этих функций команда попадает в общую очередь событий графика. Визуальное изменение свойств графических объектов производится в процессе обработки очереди событий данного графика.
По этой причине не следует ожидать немедленного визуального обновления графических объектов после вызова данных функций. В общем случае обновление графических объектов на чарте производится терминалом автоматически по событиям изменения - поступление новой котировки, изменения размера окна графика и т.д. Для принудительного обновления графических объектов используйте команду на перерисовку графика ChartRedraw().
Еще в разделе Графические объекты :
С объектами понятно и привычно, а вот от свойств графика я ожидал другого.
Мне мое предложение больше не повторять? Или в сервис-деск оформить?
Опубликована новая статья 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
Спасибо!
Думаю, эта версия вам нравится больше: Графические интерфейсы I: Подготовка структуры библиотеки (глава 1)
Продолжение этой серии. Будет много подробных примеров.