This is probably a misunderstanding on how data and universes work together in QuantConnect. The documentation states "When no universes are asking for data, the asset is removed from your algorithm"

However, in a simple test, I create a course universe filter which returns exactly 20 securities. I then simply log the number of securities currently in the 'Securities' object. The number of securities in that object continues to grow beyond 20.

I would have expected the 'Securities' object to always contain exactly the securities returned by the universe filter?

Am I missing something? See the attached backtest and inspect the logs to view this behavior.