Overall Statistics
Total Trades
53
Average Win
0.20%
Average Loss
-0.47%
Compounding Annual Return
189.180%
Drawdown
4.100%
Expectancy
-0.283
Net Profit
9.438%
Sharpe Ratio
6.39
Probabilistic Sharpe Ratio
81.214%
Loss Rate
50%
Win Rate
50%
Profit-Loss Ratio
0.43
Alpha
1.459
Beta
-1.138
Annual Standard Deviation
0.228
Annual Variance
0.052
Information Ratio
4.829
Tracking Error
0.301
Treynor Ratio
-1.28
Total Fees
$76.86
Estimated Strategy Capacity
$300000000.00
class LiquidUniverseSelection(QCAlgorithm):
    
    filteredByPrice = None
    
    def Initialize(self):
        self.SetStartDate(2020, 1, 1)  
        self.SetEndDate(2020, 1, 31) 
        self.SetCash(100000)  
        self.AddUniverse(self.CoarseSelectionFilter, self.SelectFine)
        self.UniverseSettings.Resolution = Resolution.Daily

        #1. Set the leverage to 2
        self.UniverseSettings.Leverage = 2
       
       
    def CoarseSelectionFilter(self, coarse):
        sortedByDollarVolume = sorted(coarse, key=lambda c: c.DollarVolume, reverse=True)
        filteredByPrice = [c.Symbol for c in sortedByDollarVolume if c.Price > 10]
        return filteredByPrice[:10]
        
    def SelectFine(self, fine):
        for x in fine: 
            self.Debug(f'\n {x.Symbol.Value} ')
            self.Debug(f'Sector {x.AssetClassification.MorningstarSectorCode}')
            self.Debug(f'Group {x.AssetClassification.MorningstarIndustryGroupCode}')
            self.Debug(f'Ind {x.AssetClassification.MorningstarIndustryCode}')
            
        return [x.Symbol for x in fine]
        
        
        


    def OnSecuritiesChanged(self, changes):
        self.changes = changes
        self.Log(f"OnSecuritiesChanged({self.Time}):: {changes}")
        
        for security in self.changes.RemovedSecurities:
            if security.Invested:
                self.Liquidate(security.Symbol)
        
        for security in self.changes.AddedSecurities:
            #2. Leave a cash buffer by setting the allocation to 0.18 instead of 0.2 
            # self.SetHoldings(security.Symbol, ...)
            self.SetHoldings(security.Symbol, 0.18)