Задача такая! При нажатии на кнопку Советник ожидает клика мышки на графике для модификации стоплосса используя координаты нажатия мышки на графике.
Проблема, при нажатии на кнопку сразу срабатывает и нажатие на графике в OnChartEvent, так что срабатывает клик мышки при id == CHARTEVENT_CLICK
Пробовал запоминать кнопку в глобальные переменные при id = CHARTEVENT_OBJECT_CLICK и использовать если существует в глобальной переменной при id == CHARTEVENT_CLICK
Получается что переменная записывается и сразу используется и срабатывает при id== CHARTEVENT_CLICK.
Как можно решить задачу?
Проверил, это разные события
CHARTEVENT_CLICK = в любом месте на графике
CHARTEVENT_OBJECT_CLICK = только клик на графическом объекте
Сделайте так:
if(id==CHARTEVENT_OBJECT_CLICK && sparam!="ObjName") { ... }
if(id==CHARTEVENT_CLICK && sparam != "stopMause")
Вот этот код Срабатывает при нажатии на кнопке с name = "stopMause"
Вот этот код Срабатывает при нажатии на кнопке с name = "stopMause"
Да, только что проверил, не помогает даже установка флага и выход
bool flag=true; if(id==CHARTEVENT_OBJECT_CLICK && sparam=="bpu_AUD") { flag=false; Alert("=="); return; } if(id==CHARTEVENT_CLICK && flag) { Alert(dparam); // Alert(sparam); }
Может что не так делаю
Да, только что проверил, не помогает даже установка флага и выход
Может что не так делаю
Может флаг на глобальный уровень, не в функции OnChartEvent .
Может флаг на глобальный уровень, не в функции OnChartEvent .
Пробуйте, у меня не пошло, всё-равно срабатывают 2 события одновременно
Пробуйте, у меня не пошло, всё-равно срабатывают 2 события одновременно
Задача такая! При нажатии на кнопку Советник ожидает клика мышки на графике для модификации стоплосса используя координаты нажатия мышки на графике.
Проблема, при нажатии на кнопку сразу срабатывает и нажатие на графике в OnChartEvent, так что срабатывает клик мышки при id == CHARTEVENT_CLICK
Пробовал запоминать кнопку в глобальные переменные при id = CHARTEVENT_OBJECT_CLICK и использовать если существует в глобальной переменной при id == CHARTEVENT_CLICK
Получается что переменная записывается и сразу используется и срабатывает при id== CHARTEVENT_CLICK.
Как можно решить задачу?
Два события идут одновременно в очередь, а клик на графике уже третье событие. Нужно "отсеять" второе, т.е. CHARTEVENT_CLICK когда клик на кнопке. Либо проверкой координат клика, если попадаем на кнопку - выход, можно попробовать просто пропускать один CHARTEVENT_CLICK,
но тогда важна очередность событий, вроде объект который выше на графике получает событие первее.
Задача такая! При нажатии на кнопку Советник ожидает клика мышки на графике для модификации стоплосса используя координаты нажатия мышки на графике.
Проблема, при нажатии на кнопку сразу срабатывает и нажатие на графике в OnChartEvent, так что срабатывает клик мышки при id == CHARTEVENT_CLICK
Пробовал запоминать кнопку в глобальные переменные при id = CHARTEVENT_OBJECT_CLICK и использовать если существует в глобальной переменной при id == CHARTEVENT_CLICK
Получается что переменная записывается и сразу используется и срабатывает при id== CHARTEVENT_CLICK.
Как можно решить задачу?
а вот если события через switch проверять
при нажатии на кнопку включаем флаг что кнопка нажата и break
следующее
событие контроль мыши и проверка этого флага
то данной особенности вообще не будет заметно

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Задача такая! При нажатии на кнопку Советник ожидает клика мышки на графике для модификации стоплосса используя координаты нажатия мышки на графике.
Проблема, при нажатии на кнопку сразу срабатывает и нажатие на графике в OnChartEvent, так что срабатывает клик мышки при id == CHARTEVENT_CLICK
Пробовал запоминать кнопку в глобальные переменные при id = CHARTEVENT_OBJECT_CLICK и использовать если существует в глобальной переменной при id == CHARTEVENT_CLICK
Получается что переменная записывается и сразу используется и срабатывает при id== CHARTEVENT_CLICK.
Как можно решить задачу?