Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Хотелось бы получить комментарий разработчиков, потому что в документации по этому поводу ничего.
А из лога выше не видно что есть счётчик?
А из лога выше не видно что есть счётчик?
Из лога выше видно, что один эксперт не отключает другой от подписки. А вот как это реализовано - через счетчик или еще как - не понятно. Кроме того, у топикстатера был индикатор и советник. А индикатор, как известно, имеет неприятную особенность путать порядок запуска OnInit() и OnDeinit(). Хотя это, вроде, не должно сбивать счетчик, если он действительно есть.
Из лога выше видно, что один эксперт не отключает другой от подписки. А вот как это реализовано - через счетчик или еще как - не понятно. Кроме того, у топикстатера был индикатор и советник. А индикатор, как известно, имеет неприятную особенность путать порядок запуска OnInit() и OnDeinit().
Именно поэтому и введена переменная is_book, чтобы не было путаницы.
Ведь не просто так разработчики сделали MarketBookAdd() ФУНКЦИЕЙ.
А из лога выше не видно что есть счётчик?
Лог ни о чем, когда используется другая ситуация, нежели та, в которой возникает проблема.
Возьмите 2 своих программы (эксперт и индюк, или 2 индюка) - повесьте на один чарт и удалите потом одну из них. Подписка оставшегося экземпляра отвалится.
Даже когда последовательность вызовов OnInit/OnDeinit правильная (в данных тестах она была всегда правильная), проблема есть.
Такой подход не прокатывает?
В терминале не запускал пока, но возник вопрос - а чем перенос кода в объектную обертку поможет от "обрубания концов" самим терминалом внутри себя (как сейчас и происходит)? Ну создастся объект и начнется подписка, а потом если кто-то закроет другую программу с подпиской, то объект никогда не узнает, что подписки больше нет.
Я сделал по-простому: сравниваю таймауты по OnBookEvent и OnTick. Если по первому таймаут больше чем на N секунд превышает таймаут по второму - переподписываюсь.
В терминале не запускал пока, но возник вопрос - а чем перенос кода в объектную обертку поможет от "обрубания концов" самим терминалом внутри себя (как сейчас и происходит)? Ну создастся объект и начнется подписка, а потом если кто-то закроет другую программу с подпиской, то объект никогда не узнает, что подписки больше нет.
Я сделал по-простому: сравниваю таймауты по OnBookEvent и OnTick. Если по первому таймаут больше чем на N секунд превышает таймаут по второму - переподписываюсь.
Ну, как и ожидалось, Вы - не правы
1-ый индикатор
Второй индикатор
Результат
В терминале не запускал пока, но возник вопрос - а чем перенос кода в объектную обертку поможет от "обрубания концов" самим терминалом внутри себя (как сейчас и происходит)?
Init и Deinit не участвуют в подписке. Возможно, это обстоятельство поможет.
Эти индикаторы я запускал в разных окнах одного символа и работает нормально,
но когда я запустил оба индикатора в одном окне символа, то действительно
подписка "отвалилась" при удалении одного индикатора.
Пишите в СД (может успеют внести исправление в новый билд)
Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий
Подписка на OnBookEvent иногда отваливается - есть такое?
prostotrader, 2018.07.24 21:25