Hi! Could someone please help me figure out what in my code is causing this error? The purpose of this algorithm is to help me get acquanted with universes and how to use/implement them. I have attached my code so that you can see it. Thanks in advance!

class LiquidUniverseSelection(QCAlgorithm):

filteredByPrice = None

def Initialize(self):
self.SetStartDate(2019, 1, 11)
self.SetEndDate(2019, 1, 20)

self.stateData = { }

# Ignore this for now, we'll cover it in the next task.
self.UniverseSettings.Resolution = Resolution.Daily

def CoarseSelectionFilter(self, coarse):

sortedByDollarVolume = sorted(coarse, key=lambda x: x.DollarVolume, reverse=True)
filteredByPrice = [x for x in sortedByDollarVolume if x.Price > 1 and x.Price < 100]

for c in filteredByPrice:
if c.Symbol not in self.stateData:
self.stateData[c.Symbol] = SelectionData(c.Symbol, 10)

avg = self.stateData[c.Symbol]
avg.update(c.EndTime, c.AdjustedPrice, c.DollarVolume)

self.values = [sd for sd in self.stateData.values() if sd.sma.Current.Value > 3500000]

return self.values[:8]

def OnSecuritiesChanged(self, changes):
self.changes = changes
self.Log(f"OnSecuritiesChanged({self.UtcTime}):: {changes}")

#1. Liquidate removed securities
for security in changes.RemovedSecurities:
if security.Invested:

#2. We want 10% allocation in each security in our universe
for security in changes.AddedSecurities:
self.SetHoldings(security.Symbol, 0.1)

class SelectionData(object):
def __init__(self, symbol, period):
self.symbol = symbol
self.volume = 0
self.sma = SimpleMovingAverage(period)
#self.vol_greater = False

def update(self, time, price, volume):
self.volume = volume
self.sma.Update(time, volume)
#self.vol_greater = self.sma > 3500000