Кнопки и текстовые поля на графике mt4 теперь возможны - страница 2

 
хороший
 

Ghost, у нас есть 0.3, которая работает сейчас. Я не уверен насчет 0.2, но 0.3 точно поддерживает текст и bgcolors на CHECKBOX и BUTTONS (остальное пока не реализовано).

Для получения статуса флажка мы определим новую функцию, но в настоящее время tbIsClicked(handle) может определять нажатия, поэтому вы можете сделать внутреннюю функцию для получения статуса, так как он может быть 1 или 0. Но в следующих версиях появится новая функция для управления статусом флажка.

Чтобы получить значение текстового поля, используйте

string tbGetText(handle)

Для получения значения кнопки не предусмотрено никакой функции, но вы можете установить текст кнопки с помощью функции

tbSetText( obj, text, fontsize, fontname )

Эта функция также может установить значение метки, текстового поля и т.д......

fx1

 
fx1.net:

Здесь я хочу представить новый бесплатный аддон для mt4 в качестве предварительного просмотра. В настоящее время я тестирую продукт под названием mt4gui. Этот продукт позволяет размещать кнопки, текстовые поля, поля со списками прямо на графике; вот скриншот превью, которое уже работает

http://fx1.net/wiki/uploads/img_7.png

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

Вот пример очень простого кода, демонстрирующего использование:

как насчет добавления объекта в lib aka diagram? winapi

быть очень полезным

 

Britanec,

такой объект очень сложно реализовать на данном этапе, так как мы хотим выпустить все общие объекты до версии 1.0, тогда мы сможем перейти к продвинутым темам, но спасибо за предложения, дайте нам знать о новых идеях


fx1.net

 

Мне кажется, я не очень ясно выразился в своем предыдущем сообщении. Давайте попробуем еще раз:

1) способ, которым ваша функция размещает кнопки на экране, немного отличается от ObjectCreate в mql. Она не привязана к углу. Поэтому для размещения объекта по отношению к нижнему углу используются отрицательные координаты. Кроме того, размещение идет по всему окну, а не по окну графика. Я ничего не имею против этого, но размещение текста рядом с кнопкой с отрицательной координатой с помощью общей функции mql невозможно, или, возможно, я не смог бы этого сделать. Ваша функция "pxy" не хуже других подходит для размещения текста в окне графика, но она не справилась с задачей, так как координаты заданы по-другому.

2) цвета не работали в версии 2. Большое спасибо за обновление до версии 3. Абсолютно никаких проблем с цветами больше нет. Отлично.

3) еще раз хочу спросить, можно ли с помощью функции tbPutObject вашей dll помещать объекты в отдельное подокно. Ваш продукт, на мой взгляд, был бы в 10 раз более ценным, если бы это было сделано. Это будет что-то вроде торговой консоли и очень удобное управление в окне. Кроме того, это решит все проблемы с координатами, поднятые в пункте 1.

4) У меня есть образец, который вы выложили здесь, и образец с сайта fx1. И, конечно, у меня есть tbRemove для каждого объекта в deinit. Он просто НЕ удаляет объекты при удалении эксперта. Я понятия не имею, почему.

Я хотел бы еще раз поблагодарить вас за продукт. Он действительно превосходен и именно то, что я искал в течение долгого времени.

Однако есть одна проблема, на которую я хотел бы обратить ваше внимание. Если кнопка ExpertAdvisor в MT4 находится в выключенном положении и нажимается любая из ваших кнопок, ничего не происходит, что правильно, но как только кнопка ExpertAdvisors снова включается, советник выполняет все команды от нажатий. Просто для теста я нажимал и Buy и Sell, когда ExpertAdvisor был выключен, но как только я включил его, он купил и продал. Я думаю, это то, что нужно исправить.

 

fx1.net :элементы управления очень часто мигают на графике, можете ли вы решить эту проблему? Полагаю, частота мигания зависит от тиковых данных.

 
Ghost: посмотрите мои видео; они не смываются вообще. Это вопрос реализации. Если вы удаляете и заново накладываете на каждый тик, это может произойти, но в другом случае они более или менее статичны. По крайней мере, на моей стороне. Не могли бы вы рассказать, как вы это реализовали?
 
pro_:

Мне кажется, я не очень ясно выразился в своем предыдущем сообщении. Давайте попробуем еще раз:

1) способ, которым ваша функция размещает кнопки на экране, немного отличается от ObjectCreate в mql. Она не привязана к углу. Поэтому для размещения объекта по отношению к нижнему углу используются отрицательные координаты. Кроме того, размещение идет по всему окну, а не по окну графика. Я ничего не имею против этого, но размещение текста рядом с кнопкой с отрицательной координатой с помощью общей функции mql невозможно, или, возможно, я не смог бы этого сделать. Ваша функция "pxy" не хуже других подходит для размещения текста в окне графика, но она не справилась с задачей, так как координаты заданы по-другому.


pro_: да, MQL делает это через установку отдельного свойства и сохраняет позиции положительными. Я считаю, что с отрицательными координатами можно сделать то же самое лучше, поэтому я так и реализовал. Насчет функции pxy, она способна понять - координаты с небольшим изменением. Да, все окно, потому что как .dll мы не можем видеть оси графика и т.д. С другой стороны, они выглядят как статические, вы можете просто измерить их ширину и высоту и разместить тексты x,y относительно этого.

2) цвета не работали в версии 2. Большое спасибо за обновление до версии 3. Абсолютно никаких проблем с цветами больше нет. Отлично.

v3 пока поддерживает цвета в кнопках, чекбоксах.


3) еще раз хочу спросить, можно ли с помощью функции tbPutObject вашей dll помещать объекты в отдельное подокно. Ваш продукт, на мой взгляд, был бы в 10 раз более ценным, если бы это было сделано. Это будет что-то вроде торговой консоли и очень удобное управление в окне. Кроме того, это решит все проблемы с координатами, поднятые в пункте 1.

Ну, основная работа заключалась в том, чтобы поместить их на окно графика. Разместить их в отдельном окне было бы очень просто, но сейчас мы выбрали другой путь. Реализация немного отличается, если мы помещаем их на график или в отдельное окно. В последующих версиях мы сможем это поддерживать. У меня есть планы сделать CHART меньше без изменения размера MDI окна, в котором находится график. Таким образом, мы могли бы иметь отдельное пространство справа или снизу для размещения дополнительных кнопок. Они будут выглядеть как кнопки рядом с графиком.


4) У меня есть образец, который вы выложили здесь, и образец с сайта fx1. И, конечно, у меня есть tbRemove для каждого объекта в deinit. Он просто НЕ удаляет объекты при удалении эксперта. Я понятия не имею, почему.

Да, я подтверждаю это, однажды это работало. Я проверю этот важный вопрос.

Однако есть одна проблема, на которую я хотел бы обратить ваше внимание. Если кнопка ExpertAdvisor в MT4 находится в выключенном положении и нажимается любая из ваших кнопок, ничего не происходит, что правильно, но как только кнопка ExpertAdvisors снова включается, советник выполняет все команды от нажатий. Просто для теста я нажимал и Buy и Sell, когда ExpertAdvisor был выключен, но как только я включил его, он купил и продал. Я думаю, это то, что нужно исправить.

Да, вы правы. Я не проверил этот вопрос. Я также буду работать над этим.

Большое спасибо за тестирование mt4gui!

 

fx1.net: Прежде чем опубликовать свой код, я собираюсь проверить ваш пример кода.

Может ли быть проблема в том, что я использую tbSetText для обновления текста меток в каждом тике?

Планируете ли вы добавить в аддон радиобаттоны? Если нет, то как мы можем изменить состояние чекбокса?

 

Ошибка tbRemove и tbRemoveAll исправлена в версии 0.4

Расширена поддержкафлажков:

int tbSetChecked(int,bool);

int tbIsChecked(int);

Обновлен демонстрационный код на сайте.