Overall Statistics
Total Trades
0
Average Win
0%
Average Loss
0%
Compounding Annual Return
0%
Drawdown
0%
Expectancy
0
Net Profit
0%
Sharpe Ratio
0
Probabilistic Sharpe Ratio
0%
Loss Rate
0%
Win Rate
0%
Profit-Loss Ratio
0
Alpha
0
Beta
0
Annual Standard Deviation
0
Annual Variance
0
Information Ratio
-3.942
Tracking Error
0.079
Treynor Ratio
0
Total Fees
$0.00
Estimated Strategy Capacity
$0
Lowest Capacity Asset
from clr import GetClrType

class UglyVioletChicken(QCAlgorithm):

    def Initialize(self):
        self.SetStartDate(2021, 6, 1)
        self.SetEndDate(2021, 7, 1)
        self.SetCash(100000)
        
        self.selected = False
        self.AddUniverse(self.CoarseFilter)
        
        self.consolidate = True
        self.addConsolidatorToSubscriptionManager = True
        self.consolidators = {}
        
    def CoarseFilter(self, coarse):
        if self.selected:
            return Universe.Unchanged
        self.selected = True
        sortedByDv = list(sorted(coarse, key=lambda c: c.DollarVolume, reverse=True))
        return [c.Symbol for c in sortedByDv[:400]]

    def OnSecuritiesChanged(self, changes):
        for sec in changes.AddedSecurities:
            if self.consolidate:
                consolidator = self.ResolveConsolidator(sec.Symbol, Resolution.Daily, GetClrType(TradeBar))
                self.consolidators[sec.Symbol] = consolidator
                if self.addConsolidatorToSubscriptionManager:
                    self.SubscriptionManager.AddConsolidator(sec.Symbol, consolidator)

    def OnData(self, slice):
        for symbol, tb in slice.Bars.items():
            if symbol in self.consolidators and not self.addConsolidatorToSubscriptionManager:
                self.consolidators[symbol].Update(tb)