Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
У меня возникла серьезная проблема с мерцанием в mql4 при использовании холста.
Первой моей мыслью было аппаратное обеспечение, но после тестирования я практически исключил эту возможность. Затем я проверил chart-events, так как у меня много событий и в прошлом я дублировал вызовы для отрисовки холста. С этим тоже вроде бы все в порядке.
Я обнаружил, что проблема заключается в изменении размера... А именно: ArrayInitialize(m_pixels, 0) ; На светлом BG он мигает черным, прежде чем Erase сбрасывает светлый цвет.
Я думаю, что я решил эту проблему (кажется, что это работает), но я новичок в oop.
У меня возникла серьезная проблема с мерцанием в mql4 при использовании холста.
Первой моей мыслью было аппаратное обеспечение, но после тестирования я практически исключил эту возможность. Затем я проверил chart-events, так как у меня много событий и в прошлом я дублировал вызовы для отрисовки холста. С этим тоже вроде бы все в порядке.
Я обнаружил, что проблема заключается в изменении размера... А именно: ArrayInitialize(m_pixels, 0) ; На светлом BG он мигает черным, прежде чем Erase сбрасывает светлый цвет.
Я думаю, что я решил эту проблему (кажется, что это работает), но я новичок в oop.
Это плохая практика каждый раз пересоздавать объект canvas. Это очень затратная процедура, поэтому мерцание неизбежно.
Советую, рассмотрите вариант, когда объект канваса создается один раз при инициализации на все окно и меняет размеры только при изменении размера самого окна чарта.
Если вам не нужен весь размер окна, то создайте максимально возможный размер и не меняйте его, а только перемещайте.
На много удобнее и произодительнее работать с этим классом:
https://www.mql5.com/ru/code/22164 - MT5
https://www.mql5.com/en/code/23840 - MT4
Извините, конструкт/деструктор не должен быть там. Наверное, я допустил ошибку в C&P.
Извините, конструкт/деструктор не должен быть там. Наверное, я допустил ошибку в C&P.
Я предлагаю рассмотреть возможность создания объекта canvas один раз при инициализации для всего графика и изменять его размер только при изменении размера самого окна графика.
Именно так я и поступал.
" Создайте максимально возможный размер и не изменяйте его, только перемещайте. "
Спасибо, я подумаю над этим.
Именно этим я и занимался.
" Создайте максимально возможный размер и не изменяйте его, только перемещайте. "
Спасибо, я подумаю над этим.
Николай,
Конечно это возможно
Например, на этом видео, аппроксимации и экстраполяция Фурье рассчитывается после таких преобразований в каждом параболическом канале:
Видео не ускорено, все работает без лагов.
OpenCL и DirectX не использовались.
Если использовать OpenCL, то процессор не вообще не будет нагружаться.
Но даже с использованием простого процессора время формирования одного кадра в среднем 5 -15 миллисекунд.
Просто демонстрация возможностей Canvas.
Видео не ускорено, все работает без лагов.
OpenCL и DirectX не использовались.
Если использовать OpenCL, то процессор не вообще не будет нагружаться.
Но даже с использованием простого процессора время формирования одного кадра в среднем 5 -15 миллисекунд.
Отрисова в onTimer() находится? Если да, то какой Event в миллисекундах установлен?