Почему событие OnCalculate() выполняется раньше, чем завершается OnDeinit()

Сегодня заметил, что довольно часто при переходе на разные ТФ, событие OnCalculate() происходит раньше, чем завершается OnDeinit().

В моем случае получается что объекты выводятся на график быстрее чем удаляются, и в результате они иногда просто удаляются.

vdv2001 писал(а)  :

Сегодня заметил, что довольно часто при переходе на разные ТФ, событие OnCalculate() происходит раньше, чем завершается OnDeinit().

В моем случае получается что объекты выводятся на график быстрее чем удаляются, и в результате они иногда просто удаляются.

При смене ТФ создается новая копия индикатора, а старая освобождается. Если индикатор больше никому не нужен (чарту для отрисовки, эксперту или другому индикатору), то он удаляется. События создание одного индикатора и удаление другого не синхронизированы.

antt:
При смене ТФ создается новая копия индикатора, а старая освобождается. Если индикатор больше никому не нужен (чарту для отрисовки, эксперту или другому индикатору), то он удаляется. События создание одного индикатора и удаление другого не синхронизированы. 

Т.е. Просто в имени объекта фиксировать таймфрейм, я правильно понял?

Кстати есть ограничение кол-ва объектов? Спрашиваю, потому, что у мения их несколько тысяч, а теперь получится в два раза больше ;)) 

vdv2001:

Т.е. Просто в имени объекта фиксировать таймфрейм, я правильно понял?

Можно использовать таймфрейм, либо иной идентификатор данной копии индикатора.


Кстати есть ограничение кол-ва объектов? Спрашиваю, потому, что у мения их несколько тысяч, а теперь получится в два раза больше ;)) 

Ограничение по ресурсам, программного ограничения нет (при тестировании использовались сотни тысяч объектов).
А тоже заметил этот баг с графическими объектами. Явно должны быть ограничения на последовательность действий. При смене тф должен деинициализироваться индикатор, потом подгружаться котировки, а потом рисоваться опять, иначе терминал просто виснет, так было и в четверке.