Overall Statistics |
Total Trades 2205 Average Win 0.22% Average Loss -0.32% Compounding Annual Return 20.965% Drawdown 32.200% Expectancy 0.250 Net Profit 182.570% Sharpe Ratio 0.883 Probabilistic Sharpe Ratio 30.899% Loss Rate 25% Win Rate 75% Profit-Loss Ratio 0.68 Alpha 0.019 Beta 1.039 Annual Standard Deviation 0.181 Annual Variance 0.033 Information Ratio 0.272 Tracking Error 0.089 Treynor Ratio 0.153 Total Fees $60817.92 Estimated Strategy Capacity $0 Lowest Capacity Asset SNAP WIINL6RMFSKL |
# Top Dollar Volume Universe class TopDollarVolumeUniverse(QCAlgorithm): def Initialize(self): self.SetStartDate(2016, 6, 24) self.SetEndDate(2021, 12, 6) self.SetCash(10000000) self.filtered = [] self.UniverseSettings.Resolution = Resolution.Daily self.AddUniverse(self.LiquidWithFundamentalsFilter) self.spy = self.AddEquity("SPY",Resolution.Daily) self.Schedule.On(self.DateRules.MonthStart("SPY"), self.TimeRules.AfterMarketOpen("SPY", 10), self.RefactorPortfolio) def LiquidWithFundamentalsFilter(self, coarse): sortedByDollarVolume = sorted(coarse, key=lambda x: x.DollarVolume, reverse=True) self.filtered = [ x.Symbol for x in sortedByDollarVolume if x.Price > 10 and x.DollarVolume > 10000000 and x.HasFundamentalData][:25] return self.filtered def RefactorPortfolio(self): selected = [] for sec in self.filtered: selected.append(sec) for sec in self.Portfolio.Keys: if sec not in selected: self.SetHoldings(sec, 0) for sec in selected: self.SetHoldings(sec, 0.95/len(selected)) self.Plot("Securities", "selected", len(selected))