Создаю объект при нажатии на кнопку , все нормально.
В функции слежу за объектом и меняю координаты если объект был перемещен, но объект мигает, хотя я меняю только значения а не создаю новый.
Попробуйте так:
OnTimer(){ ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x); ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y); removeFlickering(); }
Создаю объект при нажатии на кнопку , все нормально.
В функции слежу за объектом и меняю координаты если объект был перемещен, но объект мигает, хотя я меняю только значения а не создаю новый.
Видимо, у Вас интервал таймера 1 секунда. Попробуйте интервал 10 секунд. Вместо мигания будет скакать. Может понравиться больше.
В кино более 25 кадров в секунду. При меньшей частоте глаз замечает мигание.
Создаю объект при нажатии на кнопку , все нормально.
В функции слежу за объектом и меняю координаты если объект был перемещен, но объект мигает, хотя я меняю только значения а не создаю новый.
А ObjectMove() пробовали?
Еще проверьте, чтобы ChartRedraw() лишнего не вызывалась.1. " Видимо, у Вас интервал таймера 1 секунда. Попробуйте интервал 10 секунд. " - Пробовал разные интервалы результат тот же. Скакать мне не нужно, мне нужно просто переместить объект.
2. " А ObjectMove() пробовали? " - Да на других объектах работает. Но эта функция для времени и цены, а у меня координаты в пикселях, которые я вычисляю путем преобразования.
3. "ChartRedraw() лишнего не вызывалась " пробовал и с ней и без. тоже самое.
4. removeFlickering(); = не активна функция , что это?
язык Mql5 Объект кнопка = мигает постоянно даже без никаких перемещений, Такой же код в mql4 работает стабильно, без глюков. При перемещении тянется за ценой без мигания.
Создаю объект при нажатии на кнопку , все нормально.
В функции слежу за объектом и меняю координаты если объект был перемещен, но объект мигает, хотя я меняю только значения а не создаю новый.
не перемещайте объекты если координаты не поменялись. Возможно это недооптимизировано и вызывает ChartRedraw, отсюда мерцание
OnTimer() {
if (old_x != x || old_y !=y) {
old_x=x; old_y=y;
ObjectMove(...);
}
}
Недосмотрел с ObjectMove тоже самое происходит мерцание при перемещении. И порой объекты вообще пропадают. Когда происходит следующее движение появляются.
Там координаты как-то вычисляются или просто фиксированное какое-то значение ? Функция ChartTimePriceToXY говорят не быстрая (если координаты рассчитываются как-то).
Вообще операции с объектами медленные.
Кроме того, нет никаких данных вообще (код). Как тут люди могут посоветовать?
не перемещайте объекты если координаты не поменялись. Возможно это недооптимизировано и вызывает ChartRedraw, отсюда мерцание
OnTimer() {
if (old_x != x || old_y !=y) {
old_x=x; old_y=y;
ObjectMove(...);
}
}
Лучше проверять координаты графика наверное?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Создаю объект при нажатии на кнопку , все нормально.
В функции слежу за объектом и меняю координаты если объект был перемещен, но объект мигает, хотя я меняю только значения а не создаю новый.