Пользовательские символы. Ошибки, баги, вопросы, предложения. - страница 25
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Это не работает на моей стороне.
Это мои подробности версии MT5.
Попробуйте изменить погрешность системного времени.
Попробуйте изменить погрешность системного времени.
Я пытался. Пожалуйста, проверьте файл. И видео. Вы узнаете. Даже я прошу модератора увидеть прикрепленный файл.
То же самое происходит и с пользовательским символом.
Я пытался. Пожалуйста, проверьте файл. И видео. Вы узнаете. Даже я прошу модератора увидеть прикрепленный файл.
То же самое происходит и с пользовательским символом.
Прочитай в документации про TimeCurrent()
Прочитай в документации про TimeCurrent()
Я полагаю, вы не запустили файл. Пожалуйста, вы можете запустить его один раз на вашей стороне. Моя программа использует TimeCurrent (), чтобы получить текущее время, когда секунды становятся равными нулю или меньше. Это вызовет функцию SetTime ().
Тогда, если оставшееся время составляет 50 секунд, тогда он не будет проверять TimeCurrent (), он будет уменьшать секунды. Я думаю, это должно быть видно, когда вызывается OnTimer (). Но это не видно. Пожалуйста, проверьте это один раз.
Я полагаю, вы не запустили файл. Пожалуйста, вы можете запустить его один раз на вашей стороне. Моя программа использует TimeCurrent (), чтобы получить текущее время, когда секунды становятся равными нулю или меньше. Это вызовет функцию SetTime ().
Тогда, если оставшееся время составляет 50 секунд, тогда он не будет проверять TimeCurrent (), он будет уменьшать секунды. Я думаю, это должно быть видно, когда вызывается OnTimer (). Но это не видно. Пожалуйста, проверьте это один раз.
Я запускал ваш файл, но обработчики в вашем коде выставил по приоритету.
Эти два индикатора работают почти одинаково, с учётом специфики функции TimeCurrent()
Добавлено.
Я бы лучше обратил внимание разработчиков, на задержку OnTimer() из этого поста.
Я бы лучше обратил внимание разработчиков, на задержку OnTimer() из этого поста.
Я бы лучше обратил внимание разработчиков, на задержку OnTimer() из этого поста.
16 миллисекунд - точность у всего, где фигурируют миллисекунды. Где-то это уже обсуждалось.
Это понятно, что системная точность ~16 миллисекунд.
В примере было выставлено больше 16, EventSetMillisecondTimer(20);
То есть обработчик OnTimer(), бежит с шагом 20 миллисекунд.
Но счётчик выводимый в коммент, как бы подвисает на несколько миллисекунд.
Вот и не понятно из за чего, или обработчик OnTimer() подтормаживает, или очередь обработки событий графика.
Это понятно, что системная точность ~16 миллисекунд.
В примере было выставлено больше 16, EventSetMillisecondTimer(20);
То есть обработчик OnTimer(), бежит с шагом 20 миллисекунд.
Но счётчик выводимый в коммент, как бы подвисает на несколько миллисекунд.
Вот и не понятно из за чего, или обработчик OnTimer() подтормаживает, или очередь обработки событий графика.
нашел
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Как создать функцию обработки каждой миллисекунды?
Nikolai Semko, 2018.09.13 04:45
Да, так и есть. (только не частота, а период. Максимальная частота = 64 Гц)
Только добавлю уточнение:
шаг изменения периода для таймера = 15.625 миллисекунды.
Т.е. при команде EventSetMillisecondTimer(1) и при команде EventSetMillisecondTimer(10) реальный период будет 15.625 мс.
при команде EventSetMillisecondTimer(21) и при команде EventSetMillisecondTimer(30) реальный период будет 31.25 мс.
при команде EventSetMillisecondTimer(95) и при команде EventSetMillisecondTimer(105) реальный период будет 109.375 мс.
и т.д.
нашел
Спасибо, теперь понятно в чём причина.
Добавлено.Шаг изменения системного таймера, всё равно кратен 15.625
Но я изменил период системного таймера вин апи функцией timeBeginPeriod(1)
т.е. по идее теперь системный таймер разогнан до 1 миллисекунды.
И шаг системного таймера должен быть 1 миллисекунда, ведь так?
Почему тогда всё равно наблюдается подвисание счётчика в комменте?