Introduction
Small caps are typically defined as companies with market caps that are less than $2 billion. The advantage of investing in small cap companies is that they are young companies with significant growth potential. However, the risk of failure is greater with small-cap stocks than with large-cap and mid-cap stocks. In this algorithm, we will explore the performance of the small-capitalization investment.
Method
The first step is coarse universe selection. We create an investment universe with stocks that have fundmental data and with a price greater than $5.
return [x.Symbol for x in coarse if x.HasFundamentalData and x.Price > 5]
In fine universe selection, we sort the stocks in the universe by the market capitalization and choose 10 stocks with the lowest market cap.
def FineSelectionFunction(self, fine):
''' Selects the stocks by lowest market cap '''
sorted_market_cap = sorted([x for x in fine if x.MarketCap > 0],
key=lambda x: x.MarketCap)
return [x.Symbol for x in sorted_market_cap[:self.count]]
In OnData(), we buy 10 stocks in the list of lowest market-cap. The portfolio is rebalanced every year.