Особенности языка mql5, тонкости и приёмы работы - страница 100
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Такой слип может выполняться десятки миллисекунд.
Такой слип может выполняться десятки миллисекунд.
что это значит?
помню давно Sleep() упоминался в распараллеливании процессов
что это значит?
Ровно то, что сказал.
Такой слип может выполняться десятки миллисекунд.
Не десятки, а 15.625 миллисекунды.
Я давно уже использую конструкцию:
Не десятки, а 15.625 миллисекунды.
Я давно уже использую конструкцию:
Результат
Результат
Среднее время посчитайте.
Накопите SleepTime, а после завершения цикла разделите на количество итераций.
Иначе представленный результат выглядит страшно для неокрепших умов. Ну и минимальное время заодно покажите.
PS. Функция Sleep() в MQL5 не является редиректом в win api функцию ::Sleep(). Вернее, при значении меньше 100 - это редирект. А больше 100 - уже цикл с вин апи слипом внутри, чтобы можно было прервать по IsStopped.
И ещё есть нюанс. При значении количества миллисекунд <=0 подставляется 1. То есть, мы никогда не вызываем ::Sleep(0)
PPS импортируйте из kernel32.dll функцию Sleep и проведите такой же эксперимент с ней
Среднее время посчитайте.
Накопите SleepTime, а после завершения цикла разделите на количество итераций.
Речь шла не про среднее время, а про возможность всплесков. С ними столкнулся во время ожидания синхронизации торговой истории с результатом OrderSend. Ждал через Sleep(0). Оказалось, что так нельзя.
PS. Функция Sleep() в MQL5 не является редиректом в win api функцию ::Sleep(). Вернее, при значении меньше 100 - это редирект. А больше 100 - уже цикл с вин апи слипом внутри, чтобы можно было прервать по IsStopped.
И ещё есть нюанс. При значении количества миллисекунд <=0 подставляется 1. То есть, мы никогда не вызываем ::Sleep(0)
Спасибо за подробности. Не знал, что Sleep(5000) можно оборвать через IsStopped().
Речь шла не про среднее время, а про возможность всплесков. С ними столкнулся во время ожидания синхронизации торговой истории с результатом OrderSend. Ждал через Sleep(0). Оказалось, что так нельзя.
fxsaber:
Спасибо за подробности. Не знал, что Sleep(5000) можно оборвать через IsStopped().
https://www.mql5.com/ru/docs/common/sleep
В функцию встроена проверка состояния флага остановки эксперта каждую 0.1 секунды.
Так операционная система Виндовс никогда не являлась системой реального времени
Честно говоря, даже не знаю, что это обозначает и где в MQL5 можно с этим столкнуться.