Many thanks to Alexandre Catarino who pointed me at his PreMarketDailyUsEquityUniverse class from this thread:  https://www.quantconnect.com/forum/discussion/1522/loading-symbols-at-specific-time  It's exactly what I needed to help me load a universe at a specific point in time ahead of market open each day.

I'm running into something very strange though.  I was trying to debug an issue (I really must learn how to run my algorithms in Visual Studio directly so I can properly debug) and found something very unsettling. I am [trying] to load the universe with 3 symbols (for prototyping purposes -- I'll add code later to load the real list of symbols, but I wanted to prove to myself the basic order of operations in the algorithm first).  The symbols I'm loading are simply:

    return new List<string> {"AIG", "BAC", "IBM"};

However, when I run the algorithm and dump some of the output via Debug to the console, I'm seeing I get different symbols in OnData, namely:  AIG, BN, IBM.  Where did "BN" come from?  Where did "BAC" go?

When I change the list of symbols to:  {"AIG", "CVX", "IBM"}, the list of items fed to OnData are "AIG", "CHV", "IBM".  Where'd CVX go?  Where'd CHV come from?

Surely, I'm doing something wrong ???  Anyone care to take a look at this backtest, see the list of symbols I'm trying to add to the backtest and then run the test and see the console output?  I'm baffled.