Новая версия платформы MetaTrader 5 build 2980: Push-уведомления о торговых операциях - страница 4
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
что-то непонятное с ENUM_INIT_RETCODE в OnDeinit индикатора.
Код для воспроизведения:
в результате некорректно отрабатывает ожидаемая выгрузка индикатора.
т.е. явный возврат INIT_FAILED дошел до OnDeinit как 8, а не 1.
Индикатор не выгрузился и остался на чарте!
что-то непонятное с ENUM_INIT_RETCODE в OnDeinit индикатора.
Код для воспроизведения:
в результате некорректно отрабатывает ожидаемая выгрузка индикатора.
т.е. явный возврат INIT_FAILED дошел до OnDeinit как 8, а не 1.
Индикатор не выгрузился и остался на чарте!
Что-то вы запутались https://www.mql5.com/ru/docs/constants/namedconstants/uninit
Причины деинициализации
Коды причины деинициализации эксперта, возвращаемые функцией UninitializeReason(). Могут иметь любые из следующих значений:
Константа
Значение
Описание
REASON_PROGRAM
0
Эксперт прекратил свою работу, вызвав функцию ExpertRemove()
REASON_REMOVE
1
Программа удалена с графика
REASON_RECOMPILE
2
Программа перекомпилирована
REASON_CHARTCHANGE
3
Символ или период графика был изменен
REASON_CHARTCLOSE
4
График закрыт
REASON_PARAMETERS
5
Входные параметры были изменены пользователем
REASON_ACCOUNT
6
Активирован другой счет либо произошло переподключение к торговому серверу вследствие изменения настроек счета
REASON_TEMPLATE
7
Применен другой шаблон графика
REASON_INITFAILED
8
Признак того, что обработчик OnInit() вернул ненулевое значение
REASON_CLOSE
9
Терминал был закрыт
Код причины деинициализации передается также в качестве параметра предопределенной функции OnDeinit(const int reason).
Да, согласен (иное, чем в ОnInit, перечисление используется в OnDeinit) - код возврата не нулевой и передача 8-ки в OnDeinit это корректно.
Однако, я, по наивности, ожидал поведения - индикатор будет выгружен.
Этого не происходит. Я опять что-то упустил. Как в таком случае выгружать индикатор?
Читайте наконец справку https://www.mql5.com/ru/docs/runtime/running
Ваш ответ следует интерпретировать - "Выгрузка индикатора с кодом возврата в его OnInit - INIT_FAILED не предусмотрена."
Или все же, следует ожидать, что такой индикатор будет выгружен? Это логично.
В последнем релизе (2981) это не происходит.
Обнаружил, что на всех 5 компьютерах стоит Win10 x64 и MT5 x32. Переустановил на одном x64.
Как бы побыстрее на остальных? Скопировать *.exe будет достаточно?
Обнаружил, что на всех 5 компьютерах стоит Win10 x64 и MT5 x32. Переустановил на одном x64.
Как бы побыстрее на остальных? Скопировать *.exe будет достаточно?
Вполне достаточно. Я обновляю только так. Да и устанавливаю в новые папки так-же.
b2981, просьба исправить поведение на прежнее (b2958).
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Новая версия платформы MetaTrader 5 build 2940: Перенос витрин MQL5-сервисов в рабочую область и обновление дизайна
fxsaber, 2021.06.19 14:39
Веский довод, почему сейчас в Терминале неправильно. Переделал скрипт в советник.Результат Тестера.
Все четко и правильно в Тестере! Это не повод ломать Тестер. Это повод вернуть хотя бы поведение Терминала к тому, что было еще в b2958. Там работало только для inFrom = 0, но работало. В Тестере работает для любого inFrom правильно. Это абсолютно логично.
Что имеем на данный момент. HistorySelect в Терминале и в Тестере работают разными алгоритмами. При этом в Тестере этот алгоритм удобный и логичный, да еще и супер-быстрый - дозапись всего, что приходит в историю, в конец таблицы. В Терминале же - нет.
Заметьте, не упоминаю сортировку по какому-либо признаку во время работы советника. Просто говорю о дозаписи в конец (а не в середину) новых элементов истории.
Если же говорить о сортировке, то она нужна только один раз - при запуске советника. И сортировка должна быть по ORDER_TIME_DONE_MSC (при совпадающих значениях - по тикету). Тогда будет полная однозначность HistorySelect-таблицы во время работы и сразу после запуска.
Не понимаю, почему все время нарываюсь на подобный бред.
Это сделано специально, чтобы косвенно повысить цены для пользователей MT5? Тогда вы должны четко написать это на странице VPS и не маскировать это!
Is this intentional to indirectly increase prices for MT5 users? But then you have to write this clearly on the VPS page and not try to hide it!