I would like to know how to actually weight a portfolio with the symbols returned by a coarse universe selection. 

I am able to perform a coarse universe selection and can see that the securities are visible in self.ActiveSecurities. However when I attempt to use the self.SetHoldings function to weight the portfolio using the securities which are within self.ActiveSecurities I receive this error:

"Runtime Error: Trying to dynamically access a method that does not exist throws a TypeError exception. To prevent the exception, ensure each parameter type matches those required by the SetHoldings method. Please checkout the API documentation.
at OnData in main.py:line 34
TypeError : No method matches given arguments for SetHoldings (Open Stacktrace)"

 

My code is attached..

class MultidimensionalTachyonChamber(QCAlgorithm):

def Initialize(self):
self.SetStartDate(2010,1,1)
self.SetEndDate(2010,2,2)
self.SetCash(100000)
self.SetUniverseSelection(CoarseFundamentalUniverseSelectionModel(self.CoarseSelectionFunction))

self.UniverseSettings.Resolution = Resolution.Daily
self.NumSymbols = 5


def CoarseSelectionFunction(self, coarse):

sortedByDollarVolume = sorted(coarse, key=lambda x: x.DollarVolume, reverse=True)

return [ x.Symbol for x in sortedByDollarVolume[:self.NumSymbols] ]


def OnSecuritiesChanged(self, changes):

self.changes = changes



def OnData(self, data):

for s in self.changes.RemovedSecurities:
if s.Invested:
self.Liquidate(s.Symbol)


for s in self.ActiveSecurities:
self.SetHoldings(s, 1/self.NumSymbols)