Скорее всего Вы говорите о моменте инициализации эксперта. Причем в случае, когда в x64 нет активного живого подключения к торговому серверу (в в 32 битной есть).
Инициализация эксперта происходит только после синхронизации рыночного окружения или через 5 секунд ожидания оного.
Скорее всего Вы говорите о моменте инициализации эксперта. Причем в случае, когда в x64 нет активного живого подключения к торговому серверу (в в 32 битной есть).
не не, тот вопрос с инициализацией при отсутствии связи мы уже обсуждали.
Инициализация эксперта происходит только после синхронизации рыночного окружения или через 5 секунд ожидания оного.
Сейчас терминал подключен.
Как я писал - разные эксперты с разной скоростью инициализируются. Не могу найти закономерность в этом времени ожидания.
Но то что 64 битные проигрывают не менее чем раза в два, по сравнению с 32 битными - это факт. вот только почему?..
Причем сейчас странность еще обнаружил.
на 32 битной как обычно загружается за 1-2 секунды. на 64 битной за 5 секунд.
Затем просто перекомпилировал код. Теперь на 64 битной он вообще загружается 10 секунд. На 32 битной так и остался 2 секунды. Похоже что скорость зависит и от результирующей компиляции.
В общем непонятно, а главное не удобно с такими задержками работать.
Проверьтесь еще раз, пожалуйста.
Я специально только что проверил и эксперты в x64 стартуют мгновенно, если есть соединение с серверов. Когда нет соединения, то задержка около 5 секунд, что является штатным таймаутом ожидания синхронизации рыночного окружения.
Для проверки используйте простого эксперта:
int OnInit() { Alert("Start"); return(0); } void OnTick() { Alert("Tick"); }Может Вы под "загружается" имеете в виду что-то другое?
Может Вы под "загружается" имеете в виду что-то другое?
имеется ввиду момент от нажатия кнопки ОК на окне запуска эксперта.
до момента OnInit
То есть имеется длинная пауза когда эксперт уже типа висит в верхнем правом углу, но еще не стартанул (OnInit и т.д.)
Получается, что загрузка эксперта в память (до момента OnInit) на 64 битных терминала происходит намного дольше.
PS
Конечно, OnInit выполняется очень быстро. Паузы между Alert("Start"); и Alert("Tick"); не наблюдаю
- www.mql5.com
Проверьте еще раз.
У меня срабатывание OnInit (появление первого алерта) происходит мгновенно. Конечно же нет никакой речи о времени работы самой функции OnInit. Задержка в 5 сек стабильно появляется, только если счет не залогинен, но это так и должно быть.
Протестируйте предложенный мною код, пожалуйста.
- www.mql5.com
Проверьте еще раз.
У меня срабатывание OnInit (появление первого алерта) происходит мгновенно.
в том коде у меня тоже все мгновенно.
Но попробуйте например такой эксперт. В 32 бита он грузится тоже мгновенно. В 64 бита грузится за 4 секунды. Сам эксперт компилировался в 64 битном терминале.
PS.
в эксперте есть зависимости от dll, но используются только из user32::GetCursorPos и GetState
все остальные функции подтянулись из-за включения библиотек классов, но не используются.
Спасибо за пример, сегодня проверим.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Заметил такую стаибльную неприятную особенность.
Если эксперт запускается в 64 битном терминале, то его загрузка идет раза в 3 медленнее, нежели в 32 битном.
То есть от момента помещения его на чарт и до момента когда он непосредственно начинает работать проходит аж 5 секунд.
При этом в 32 битном загрузка занимает максимум 1-2 секунды.
Вторая фича в том, что если эксперт был скомпилирован в 32 битном терминале, и потом этот ex5 запустить в 64 битном, то он загружается еще дольше. может и до 7 секунд пройти.
Причем на это не влияет наличие внешних dll. Ни объем кода. Ни наличие встроенных ресурсов.
Например в 64 битном терминале мелкий эксперт, без DLL, без внутренних ресурсов загружается 5 секунд.
А тяжелый DLL и с ресурсами может загрузится за три.
В общем загадка какая-то. Поясните пожалуйста причину таких задержек на 64 битном терминале.