I have a “SPY” ETF Constituents Universe added, and have my own ETFConstituentsFilter defined (example code snippet attached, which can reprocude the issue). Based on the document I am expecting the filter function will be called on daily basis. But in the debug log, I only see it called once on Jan, 1, 2020. Why is that? Whats the expected behaviour for the filter calling frequency?

 

from AlgorithmImports import * 

class ETFConstituentsUniverseAlgorithm(QCAlgorithm):

    symbol_data_by_symbol = {}

    def Initialize(self):
        self.SetCash(100000)
        self.SetStartDate(2020, 1, 1)
        self.SetEndDate(2020, 2, 28)

        self.UniverseSettings.Asynchronous = True
        self.UniverseSettings.Resolution = Resolution.Daily
        self.AddUniverse(self.Universe.ETF("SPY", Market.USA), self.ETFConstituentsFilter)

    def ETFConstituentsFilter(self, constituents: List[ETFConstituentData]) -> List[Symbol]:
        self.Debug(f"[INFO::Portfolio]: Starts ETF filter update ...")
        for c in constituents:
            pass
        return Universe.Unchanged