Ошибки, баги, вопросы - страница 3472
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Просьба описать баг. Так и не понял из обсуждения.
как выше верно заметили, теперь это фича :-)
если индикатор из OnInit() возвращает INIT_FAILED , то он всё равно остаётся висеть в списке индикаторов (и в шаблонах, и при смене таймфрейма снова будет вызван OnInit)
к тому-же как выяснилось от этого нефункционирующего индикатора можно получить хендл как от нормального
код индикатора с INIT_FAILED https://www.mql5.com/ru/forum/1111/page3471#comment_51963944
код скрипта берущего хендл вот https://www.mql5.com/ru/forum/1111/page3471#comment_51964451
Просьба описать баг. Так и не понял из обсуждения.
Запускаю индикатор
Гифка у меня на экране как будто пустая, но если по ней кликнуть, то показывает.
Думаю на ней понятна суть проблемы.
Просто подтвердите, что это баг.
К вашим словам разработчики чаще прислушиваются. (ИМХО)
как выше верно заметили, теперь это фича :-)
Уважаемый, ну мы же с вами про два разных бага рассказываем.
Вы про продолжение работы индикатора после INIT_FAILED.
Я про продолжение работы индикатора после его удаления с графика.
Давайте не будем путать аудиторию)))
Вы пошли дальше наших иноземных коллег и проверили, что этот баг оказывает плохое влияние на работу скриптов и советников, а это очень плохо.
Гифка у меня на экране как будто пустая, но если по ней кликнуть, то показывает.
Не показывает.
Не показывает.
В новой вкладке показывает.
Имеем: Индикатор(код здесь), который получает хэндл на самого себя.
Далее в своей работе он обращается к этому хэндлу и получает какие то данные.
До этого момента всё хорошо.
Проблема возникает при удалении такого индикатора с графика. Он не заходит в OnDeinit и продолжает работать, хотя в списке индикаторов его на графике уже нет.
И удалить такой индикатор с графика получается только перезагрузкой терминала.
Что нужно получить?
Работающий индикатор с нормальным удалением его с графика.
С помощью ваших рекомендаций, получается добиться только нормального удаления, но при этом индикатор перестаёт работать)
если индикатор из OnInit() возвращает INIT_FAILED , то он всё равно остаётся висеть в списке индикаторов (и в шаблонах, и при смене таймфрейма снова будет вызван OnInit)
Уважаемый, ну мы же с вами про два разных бага рассказываем.
Вы про продолжение работы индикатора после INIT_FAILED.
Я про продолжение работы индикатора после его удаления с графика.
Давайте не будем путать аудиторию)))
у вас не вполне баг: просто циклическая ссылка (сам на себя) и поэтому флаг _IsStopped всегда false и OnDeinit() не вызывается. Циклические зависимости между индикаторами не отслеживаются платформой, там просто счётчик ссылок.
Чтобы подобное выгрузить - надо в таймере читать список индикаторов и если ваш оттуда пропал, то вызывать IndicatorRelease;
(не проверял, но) ещё можно ориентироваться по OnChartEvent - эвенты просто перестанут приходить.