Новая версия платформы MetaTrader 5 build 5100: Переход на Git и хаб разработчиков MQL5 Algo Forge, темная тема и улучшения интерфейса - страница 35
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 5100: Переход на Git и хаб разработчиков MQL5 Algo Forge, темная тема и улучшения интерфейса
Renat Fatkhullin, 2025.06.02 11:51
Смотреть лучше через встроенный таск менеджер самого терминала по F2.У меня сильно не совпадает потребление F2-памяти с TERMINAL_MEMORY_USED.
Где ошибка?
b5107
Подскажите, что надо делать, чтобы тема терминала сама менялась при изменении темы windows со светлой на темную и обратно.
Пока что поведение терминала прежнее.
Сразу же отсылает.
Замеряли?
Ваш индикатор Ping замеряет исключительно время между двумя котировками, а не реальный сетевой пинг. Никакой детерминированности или гарантии частоты прихода котировок нет и не может быть по определению. Это Tick's Frequency индикатор, но никак не Ping.
Есть опыт запуска этого индикатора на той же машине, где торговый сервер...
В случае отсутствия латенси, если между тиками торгового сервера N миллисекунд, то и между соответствующими OnTick MQL-программы должно пройти ровно N миллисекунд. Это далеко не так, к сожалению.
Предлагаю не доверять этому индикатору, а самому померить данное несоответствие на своих машинах с нулевым пингом.
Результат с ненулевым пингом.
Попробуйте на машине с нулевым.
Таймер по прежнему делает отсчет от последнего срабатывания OnTimer() и не сбрасывается в 0 при вызовах EventKillTimer(); EventSetMillisecondTimer(100); EventSetTimer(100);
Код советника в первом посте https://www.mql5.com/ru/forum/487790/page18#comment_56857418У меня паузы до 3 минут бывают пока большие файлы скачиваются - соответственно после запуска EventSetMillisecondTimer(100); OnTimer() сработает через 3 минуты+100мс.
Нелогичное поведение. Можно исправить на ожидаемое в 100мс?
В вашем коде советника выведите время сразу после запуска таймера и проверьте, когда сработает таймер в следующий раз.
Судя по Вашему коду, таймер и должен срабатывать через 5 сек + 100 миллисек
Судя по Вашему коду, таймер и должен срабатывать через 5 сек + 100 миллисек
Запускал тот код. Он, действительно, показывает ошибку таймера.
Запускал тот код. Он, действительно, показывает ошибку таймера.
Какая ошибка таймера? 5 секунд плюс 100 миллисекунд?
PS Оказывается в лог уже выводится сообщение "start timer". Следующее сообщение "OnTimer via nnn ms" примерно через 100 миллисекунд. Прямо так в представленном логе и написано. Что не так?
Обратите внимание на новую языковую конструкцию.
С массивами так не получится. Только через ArraySwap.
Вообще хотелось бы из массива uchar сразу получить массив любого типа.
Пример использования:
имеется массив float по ссылке получаем его представление, как uchar и сжимаем через CryptEncode(), сохраняем на диск. Экономия дискового пространства в 5-10 раз.
Потом, когда нужно обратиться к этим данным: считываем с диска и распаковываем - из CryptEncode() получаем uchar.
Вот и опять надо получить к нему доступ как к float.
Сейчас видимо только в цикле с преобразованием через union каждого элемента можно такое сделать?
Какая ошибка таймера? 5 секунд плюс 100 миллисекунд?
Между выходом из OnTimer и следующем заходом в OnTimer должно пройти 100 мс, судя по коду.
В вашем коде советника выведите время сразу после запуска таймера и проверьте, когда сработает таймер в следующий раз.
Судя по Вашему коду, таймер и должен срабатывать через 5 сек + 100 миллисек
Тут видно момент запуска таймера и момент его срабатывания. Разница в 5с + 100мс
PS Оказывается в лог уже выводится сообщение "start timer". Следующее сообщение "OnTimer via nnn ms" примерно через 100 миллисекунд. Прямо так в представленном логе и написано. Что не так?
100мс только после первого запуска таймера - при последующих уже дополнительные задержки, равные времени от предыдущего срабатывания Ontimer().