There seems to be quite a difference in the usage of indicators in the following two classes:

EMACrossUniverseSelectionAlgorithm and


My concern with the former is what happens when stocks are added and removed? There does not seem to be any particular provision for warm ups or deletion - this could lead to poor trading and over usage of resources.

The second model uses a method called reset(). The first model does not. Presumably reset() makes up for a gap in a security which keeps coming in and out of play? Do I need to use it? Is this now best practice?

The MACD AlphaModel introduces a new concept:

The consolidator: 

This initializes the MACD for each added security and cleans up the indicator for each removed security.

algorithm.SubscriptionManager.RemoveConsolidator(removed.Symbol, data.Consolidator)

My problem is this: it is very difficult to see the full picture using the Online IDE. And very time consuming, requiring a back test to be re-run many times.

Were I drafting indicators on my own machine I would tend to send them to DataFrames as they came and went so that I could see exactly what was going on at different points of time.  Or some such routine. I have been rigging up temporary dataframes in the IDE but it is far from ideal and in any event I have not managed to pull the whole indicator history down to inspect it.

It would help therefor if someone could give me a view on the whole matter. Perhaps it is explained in the documentation somewhere but I don't think so.

So here is my question:

Assume a weekly signal from the Universe Selection Model which needs to be processed using indicators in the Alpha Model. What is the best of your demo models to show how indicators should be initialised, mainted/updated and then removed if a stock is dropped in a particular week?

Sorry for the long post. Any advice would be welcomed.