Overall Statistics |
Total Trades 34 Average Win 0.17% Average Loss -1.88% Compounding Annual Return 10.818% Drawdown 24.500% Expectancy -0.664 Net Profit 1.733% Sharpe Ratio 0.461 Probabilistic Sharpe Ratio 41.322% Loss Rate 69% Win Rate 31% Profit-Loss Ratio 0.09 Alpha 0 Beta 0 Annual Standard Deviation 0.596 Annual Variance 0.355 Information Ratio 0 Tracking Error 0 Treynor Ratio 0 Total Fees $661.32 |
class MultidimensionalModulatedInterceptor(QCAlgorithm): def Initialize(self): self.SetStartDate(2019, 11, 1) # Set Start Date self.SetEndDate(2020, 1, 1) #Set End Date self.SetCash(100000) # Set Strategy Cash self.UniverseSettings.Resolution = Resolution.Daily # Set Resolution to Daily self.AddUniverse(self.CoarseSelection, self.FineSelection) self.AddEquity("SPXEW" , Resolution.Daily) # Add SPXEW self.SetBenchmark("SPXEW") # Benchmark to S&P Equal Weights Index def CoarseSelection(self, coarse): # Filter for DollarVolume, Price and Fundamental Data availability filtered = [x for x in coarse if x.DollarVolume >= 100000 and x.Price > 1 and x.HasFundamentalData] return [x.Symbol for x in filtered] def FineSelection(self, fine): # Filter for market cap, sector, and positive PE filtered = [f for f in fine if f.CompanyProfile.MarketCap > 50000000 and f.AssetClassification.MorningstarSectorCode != MorningstarSectorCode.FinancialServices and f.ValuationRatios.PERatio > 0] # sort by PE ascending sortedByPE = sorted(filtered, key = lambda f : f.ValuationRatios.PERatio, reverse = False) # retrieve 10 lowest positive PE return [f.Symbol for f in sortedByPE][:10] def OnSecuritiesChanged(self, changes): for security in changes.RemovedSecurities: self.Liquidate(security.Symbol) for security in changes.AddedSecurities: self.SetHoldings(security.Symbol, 0.10)