I am learning to use the “Algorithm Framework” where I found an example of creating symbols to create a manual universe selection model from the documentation. 

Now I am trying to create a custom data source using a pre-saved CSV file, and below is the main algorithm initialise method: 

	 def Initialize(self):

		self.SetStartDate(2018, 7, 1)
        self.SetEndDate(2019, 3, 31)
        self.SetCash(100000)
        self.UniverseSettings.Resolution = Resolution.Daily
        self.UniverseSettings.DataNormalizationMode = DataNormalizationMode.Raw

  
        #  -------------------- to use Custom Data class ----------------------
        self.symbols: List[Symbol] = []

        symbol_str: List[str] = ["GLD", "GDX"]

        for sym in symbol_str:
            # Manual universes doesn't work with custom data
            # See https://github.com/QuantConnect/Lean/blob/master/Algorithm/Selection/ManualUniverseSelectionModel.py
            self.symbols.append(self.AddData(MyCustomDataClass, ticker=sym, resolution=self.UniverseSettings.Resolution).Symbol)

        # TODO Set Benchmark
        # self.SetBenchmark(self.symbol)

        self.AddUniverseSelection(ManualUniverseSelectionModel(self.symbols))

It turns out that in the Alpha Model, in OnSecuritiesChanged, the changes.AddedSecurities is an empty list. 

However, if I use the “classic style” algorithm using self.AddData method, I can see the added securities. 

Here are my two questions:

 

  1. Does ManualUniverseSelectionModel support custom data symbols? 

 

2. If not, how can I write a custom ManualUniverseSelectionModel to achieve the same result as using self.AddData(CustomDataClass, <name>, resolution).  (And is it even worth it)?