Let's assume it's a simple file that contains a list of 0-20 symbols I *may* want to act on during the early hours of the next trading day.

I want a QC algorithm that will enable me to backtest my symbol list, as well as eventually live trade with it.

For backtesting, I want the QC algorithm to load up a file that contains a date and a symbol, and there may be more than one symbol per date.  I want the algorithm to be able to load up the enough historical data on these symbols to warm up a SMA or other such indicator that requires prior data.  And, I want to be able to process the bars for each of these symbols with the appropriately warmed up indicators to apply other rules that I want to code to potentially act, or not act on these symbols.

I then want to be able to evaluate the overall performance over a period of time of the various symbols that were bought and sold.

When satisfied, I want to move the program into live mode to be able to automatically buy/sell these securities through my Interactive Brokers account.

What I intially tried was creating a derived class from BaseData and loading up the data I wanted via the GetSource() and Reader() overrides.  While I could get the data loaded up, and in spite of calling AddData() in the Intialize() method, I wasn't getting called on any bars for these symbols in the OnData() callback.

I think the BaseData approach I mentioned above is more for using other historical data to drive the backtesting rather than just loading up a list of symbols to potentially promise.  After more hunting around, I found the "DropboxUniversalSelectionAlgorithm" example.  I think this is closer to what I want.  I believe this algorithm should simply pre-load the list of symbols I may want to process for the day and get them added to the list of securities to feed to the OnData() callback.  Is that correct?

What's still unclear to me is how to "warm up" indicators such as a SMA or EMA for a new symbol that may appear on Day X but I really need enough historical data going back Day X-20 to fill these indicators.

Am I starting to get on the right track?  I'm a huge Learn-By-Example guy - any other great algorithms anyone is willing to share that do something similiar that I can try to clone and work from?

And, is there a way to "in hindsight" warm up some indicators with historical data to help use things like SMA in OnData()?

Thanks in advance for any help.