Есть EA с панелью на объектах OBJ_BUTTON.
На реальном и демо графике всё работает через OnChartEvent.
Но в визуальном тестере стратегий — кнопки не кликаются,
OBJPROP_STATE всегда возвращает 0, OnChartEvent не вызывается.
Знаю что это известный баг с 2017 года.
Есть ли рабочее решение в 2025/2026?
Что уже пробовала:
- Проверка OBJPROP_STATE в OnTick — всегда 0
- OnTimer — не помогает
- OnChartEvent с CHARTEVENT_OBJECT_CLICK — не вызывается
- ChartSetInteger(0, CHART_EVENT_MOUSE_MOVE, true) — не помогло
- Отдельная кнопка без фона — не работает
Буду благодарна за любую помощь!
- OnChartEvent не видит событие. Как исправить?
- В тестере работает, а в реале на графике нет. В чем беда? ПОМОГИТЕ пожалуйста
- Есть ли способ выполнить событие Click на кнопке, не нажимая кнопку?
Anastasia Danilova:
так это не баг, это фича.. непонятно почему МТ не реализовали интерактивный визуальный тестер на базе этого... но что есть, то есть.
Знаю что это известный баг с 2017 года.
Anastasia Danilova:
Проверка OBJPROP_STATE в OnTick — всегда 0
Проверка OBJPROP_STATE в OnTick — всегда 0
Плохо проверяли, OBJPROP_STATE в тестере работает. Собственно только оно и работает.
С кнопками в тестере можно работать только с помощью проверки ObjectGetInteger(0, name, OBJPROP_STATE)
Aleksandr Slavskii #:
Спасибо за ответ.Плохо проверяли, OBJPROP_STATE в тестере работает. Собственно только оно и работает.
С кнопками в тестере можно работать только с помощью проверки ObjectGetInteger(0, name, OBJPROP_STATE)
Уже все нормально. Разобралась. Работает как должно быть.
Aleksandr Slavskii #:
Оказалось дело не в методе чтения STATE, а в том что кнопки были вложены внутрь OBJ_RECTANGLE_LABEL фона с OBJPROP_BACK=true — это блокировало передачу кликов на кнопки в тестере.Плохо проверяли, OBJPROP_STATE в тестере работает. Собственно только оно и работает.
С кнопками в тестере можно работать только с помощью проверки ObjectGetInteger(0, name, OBJPROP_STATE)
Решение оказалось простым — вынесла кнопки BUY/SELL полностью отдельно от панели, создаём их через CButton.Create() из стандартной библиотеки Controls независимо от остальных объектов панели. В OnTick читаем через Pressed().
Теперь кнопки работают и в визуальном тестере и на реальном/демо счёте.
Панель из OBJ_RECTANGLE_LABEL + OBJ_LABEL живёт отдельно — только для отображения информации. Кнопки торговые — отдельно, без вложенности в какие-либо контейнеры.
И есть еще пару вариантов решения этой проблемы :))
Anastasia Danilova #:
Оказалось дело не в методе чтения STATE, а в том что кнопки были вложены внутрь OBJ_RECTANGLE_LABEL фона с OBJPROP_BACK=true — это блокировало передачу кликов на кнопки в тестере.
Решение оказалось простым — вынесла кнопки BUY/SELL полностью отдельно от панели, создаём их через CButton.Create() из стандартной библиотеки Controls независимо от остальных объектов панели. В OnTick читаем через Pressed().
Теперь кнопки работают и в визуальном тестере и на реальном/демо счёте.
Панель из OBJ_RECTANGLE_LABEL + OBJ_LABEL живёт отдельно — только для отображения информации. Кнопки торговые — отдельно, без вложенности в какие-либо контейнеры.
И есть еще пару вариантов решения этой проблемы :))
Оказалось дело не в методе чтения STATE, а в том что кнопки были вложены внутрь OBJ_RECTANGLE_LABEL фона с OBJPROP_BACK=true — это блокировало передачу кликов на кнопки в тестере.
Решение оказалось простым — вынесла кнопки BUY/SELL полностью отдельно от панели, создаём их через CButton.Create() из стандартной библиотеки Controls независимо от остальных объектов панели. В OnTick читаем через Pressed().
Теперь кнопки работают и в визуальном тестере и на реальном/демо счёте.
Панель из OBJ_RECTANGLE_LABEL + OBJ_LABEL живёт отдельно — только для отображения информации. Кнопки торговые — отдельно, без вложенности в какие-либо контейнеры.
И есть еще пару вариантов решения этой проблемы :))
ObjectSetInteger(0,objName, OBJPROP_ZORDER, 2);OBJPROP_ZORDER
Vitaly Muzichenko #:
OBJPROP_ZORDER
OBJPROP_ZORDER
Виталий, спасибо большое за совет! Точно, про OBJPROP_ZORDER я как-то и не подумала в тот момент. Это действительно было бы гораздо изящнее — просто поднять приоритет отрисовки, и не пришлось бы менять структуру панели.
Действительно, отличный и более быстрый вариант решения. Спасибо, обязательно возьму на вооружение на будущее! :)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь