Hi guys,

I'm one of the folks just migrated from Quantopian. I've completed the bootcamp and I was starting converting my algos to the quantconnect framework.


I'm just struggling now with the following stock selection method, to filter and sort a fixed amount of stocks, from the Q1500 universe. Sorting should be done for a set of multiple parameters (LongTermDebt, cash ret, yield, etc.)


universe = Q1500US()

cash_return = ms.cash_return.latest.rank(mask=universe)
fcf_yield = ms.fcf_yield.latest.rank(mask=universe
roic = ms.roic.latest.rank(mask=universe)
ltd_to_eq = ms.long_term_debt_equity_ratio.latest.rank(mask=universe)
value = (cash_return + fcf_yield).rank()
quality = ltd_to_eq

# Momentum Factor
returns_overall = Returns(window_length=context.MomentumDays)
returns_recent = Returns(window_length=context.MomentumRecendDays)

momentum = returns_overall - returns_recent

# Filters for top quality and momentum to use in our selection criteria

top_quality = quality.top(context.BestROEQTY, mask=universe)

top_quality_filter = quality.top(context.BestQualityQTY, mask=universe)

top_quality_momentum = momentum.top(context.SecuritiesToSelectQTY, mask=top_quality)


I've started using the following selection methodology via the Coarse and Fine selection, but still a bit more to go:

class LiquidValueUniverseSelectionModel(FundamentalUniverseSelectionModel):

def __init__(self):
super().__init__(True, None, None)
self.lastWeek = -1

def SelectCoarse(self, algorithm, coarse):
if not algorithm.Time.day % 7 == 0:
return Universe.Unchanged

sortedByDollarVolume = sorted([x for x in coarse if x.HasFundamentalData],
key=lambda x: x.DollarVolume, reverse=True)

return [x.Symbol for x in sortedByDollarVolume[:100]]

def SelectFine(self, algorithm, fine):

if not algorithm.Time.day % 7 == 0:
return Universe.Unchanged

sortedByCashReturn = sorted(fine, key=lambda f: f.ValuationRatios.CashReturn, reverse=True)
sortedByYields = sorted(sortedByCashReturn, key=lambda f: f.ValuationRatios.EarningYield, reverse=True)

Would somebody try to help me out on how to sort for multiple fundamentals charateristics, and