.. разобрался - действительно, пока не закончится полный цикл drag&drop, терминал выдаёт ошибку Object does not exist - её надо блокировать, то есть не давать своей программе продолжать работу, пока ошибка не пропадёт - это будет означать, что пользователь завершил drag&drop. Несколько разочаровывает, что в хелпе mql4 ни о чём таком не упоминается, и void OnChartEvent() не содержит никаких controls для обработки этих ошибок.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Насколько я понимаю, событие drag&drop состоит из нескольких действий
1) кликнуть на объект 2) перетащить объект 3) отпустить мышку 4) (опция) кликнуть на объект, чтобы зафиксировать результат
По идее, обработка функцией OnChartEvent события с индентификатором CHARTEVENT_OBJECT_DRAG должна инициализироваться после исполнения всей последовательности событий, при это включать или нет 4-е действие в обработку должно быть опцией.
Но я вижу, что OnChartEvent срабатывает по каждому из событий, включая начальный клик. Но кроме того, после обработки события 1 возникает ошибка 4202 - "Object does not exist", и только после завершения всей цепочки ошибка пропадает.
Прилагаю код - это индикатор - он нарисует одну единственную линию и попробует считать координаты её опорных точек - попробуйте её посдвигать - результаты пишутся в файл OnChartEventCheck.csv - увидите ошибки 4202 при любом начальном клике на объект.
На вс.случай - MT4 Build 610, Windows 7.