I think I understand this, but first, lets me say what I think is occurring:

  1. I create my universe.
  2. For each symbol, it now calls EmaCrossAlphaModel.OnSecuritiesChanged() for each symbol
  3. In it it calls algorithm.EMA() - both fast & slow.
    1. The data from these is saved off in symbolData to be used on each subsequent day.
    2. The data in this will be updated after the market closes each day - with my not having to call anything to have the update occur.
  4. It then calls EmaCrossAlphaModel.Update() on each symbol.
    1. The first time around, the EMA data may not be IsReady and need to pass.

Which then leads to the questions:

  1. What should I do if I want to return insights when it first starts up?
    1. Is there a way to have it call Update() again when everything is loaded?
    2. Is the a call to block the code until the EMA code is fully loaded?
  2. After the market close, will it then always update the EMA data and then call Update() for the next day's trading (assuming all time resolutions are set to 1 day or more often)?
  3. Is there a way to insure Update() is called just once/day if I only want to make trades once/day?

thanks - dave