Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Из документации
В вышеуказанном примере удаляется таймер. Нет обработчика OnTick. Нет обработчика OnChartEvent. Вообще нет других обработчиков. Это значит, что данный эксперт после удаления таймера больше не получит событий.
Во-вторых, какой смысл удалять таймер тут же, если был вызов ExpertRemove?
В-третьих, в документации явно даны рекомендации по удалению таймера. Если таймер запущен в OnInit, то лучше его удалять в OnDeinit.
Я согласен, что эксперт не получит событий в этой сессии. Но после рестарта MT он снова окажется на графике, будет загружен и выполнять своё дело. А я этого явно не ожидаю, ибо в прошлый раз его вроде как удалил.
Удалять таймер хотя бы для аккуратности. Занял ресурс-изволь освободить. Раскидываться ресурсами и надеяться, что за тобой уберёт кто-то другой, не очень хорошо.
Рекомендации есть. Но это не требования. А по факту получаются вроде как требования.
Я согласен, что эксперт не получит событий в этой сессии. Но после рестарта MT он снова окажется на графике, будет загружен и выполнять своё дело. А я этого явно не ожидаю, ибо в прошлый раз его вроде как удалил.
Удалять таймер хотя бы для аккуратности. Занял ресурс-изволь освободить. Раскидываться ресурсами и надеяться, что за тобой уберёт кто-то другой, не очень хорошо.
Рекомендации есть. Но это не требования. А по факту получаются вроде как требования.
Ну и удаляйте таймер в OnDeinit
Только что специально проверил.
Ваш эксперт выгружается с графика ровно через минуту после выставления флага удаления эксперта.
Минута - это таймаут ожидания какого либо события во внутреннем цикле обработки эксперта. Видимо, была какая-то причина для такой отложенной выгрузки эксперта.
Посмотрим, что можно сделать для более оперативной выгрузки эксперта
Только что специально проверил.
Ваш эксперт выгружается с графика ровно через минуту после выставления флага удаления эксперта.
Минута - это таймаут ожидания какого либо события во внутреннем цикле обработки эксперта. Видимо, была какая-то причина для такой отложенной выгрузки эксперта.
Посмотрим, что можно сделать для более оперативной выгрузки эксперта
Спасибо.
Вы какую задачу хотите решить? Однократное выполнение кода?
Для этого есть специальный тип mql5-программ - скрипты
Есть статистические программы, которые должны делать расчет один раз. Но при этом мочь делать это и в Тестере.
Поэтому приходится обходить невозможность запуска скриптов в Тестере, создавая такие странные конструкции в советнике
Этот код сделает один раз расчет и в Тестере и в Терминале.
Почему нужен Тестер? В нем есть замечательный режим по всем символам из Обзора рынка. И когда нужно сделать стат. исследование всех символов, ускорив еще параллельными вычислениями, то годится именно запуск в Тестере, а не множественный запуск в Терминале.
Например ваш сервер. Такое расхождение минимум у трех брокеров. До обновления этой проблемы не было.
Маловероятно что это ошибка брокеров.
Что показывает Ваша картинка?
Текущий спред 240. Минимальный спред в текущем минутном баре 170.
Что не так?
Систему скомпилированных библиотек сломали совсем.
До последних обновлений поиск библиотеки проходил сначала в папке эксперта, а потом в Libraries. Сейчас изначально в Libraries ищет и поэтому не находит.
А еще увеличилось время передачи структур в библиотечную функцию аж в 2 раза.
Вы как проверяли порядок поиска библиотек?
Только что проверил.
1. Создал библиотеку с одной функцией (фактически раскомментировал пример)
2. Скомпилировал её.
3. Сохранил как... в папку с вызывающим экспертом
4. Заменил функцию
5. Организовал вызов
Вот логи
Видно, что вызывается "локальный" экземпляр библиотеки
Кто-нибудь начиная с билда 2265 замечал в индикаторах при изменении входных параметров мертвое зависание терминала?
Наблюдается именно при изменении входных параметров (НО НЕ ВСЕГДА!). Один индикатор на графике. Индикатор работает с графическими объектами. Удаляет все при деинициализации (при нажатии на кнопку обновить - все норм, хотя объекты также удаляются и перестраиваются). Количество объектов около 4000 (зависание наблюдалось также с меньшим числом объектов).
Используются только обработчики OnInit(), OnDeinit(), OnCalculate(). Индикатор с тиками не работает.
Макс. баров в окне = 10000.
Пока ни на что не намекаю, никого ни в чем не обвиняю. Возможно ошибка у меня... но очень странно это.
Кто-нибудь начиная с билда 2265 замечал в индикаторах при изменении входных параметров мертвое зависание терминала?
раньше началось. я замечал, и были сообщения от других форумчан. у меня это чаще случается если индикатор объекты создаёт (не обязательное условие).
раньше началось. я замечал, и были сообщения от других форумчан. у меня это чаще случается если индикатор объекты создаёт (не обязательное условие).
Раньше проблема была, например, если второй индикатор ловил события удаления объектов и получалось переполнение по количеству событий. Но там проблема воспроизводилась со 100% вероятностью. И ее пофиксили. Сейчас же какая-то плавающая проблема.
И в данной ситуации у меня индикатор тоже создает объекты.