Overall Statistics |
Total Trades 20 Average Win 0.01% Average Loss 0.00% Compounding Annual Return -72.515% Drawdown 1.400% Expectancy 1.948 Net Profit -1.420% Sharpe Ratio -8.698 Probabilistic Sharpe Ratio 0% Loss Rate 20% Win Rate 80% Profit-Loss Ratio 2.69 Alpha 2.511 Beta -0.093 Annual Standard Deviation 0.068 Annual Variance 0.005 Information Ratio -160.07 Tracking Error 0.212 Treynor Ratio 6.363 Total Fees $119.95 |
# from Execution.ImmediateExecutionModel import ImmediateExecutionModel # from Portfolio.EqualWeightingPortfolioConstructionModel import EqualWeightingPortfolioConstructionModel # from QuantConnect.Data import Fundamental from datetime import timedelta class VentralTachyonGearbox(QCAlgorithm): def Initialize(self): self.nAssetsInPortfolio = 10 self.SetStartDate(2020, 11, 1) self.SetCash(100000) self.SetExecution(ImmediateExecutionModel()) self.SetPortfolioConstruction(EqualWeightingPortfolioConstructionModel()) self.UniverseSettings.Resolution = Resolution.Daily self.AddUniverse(self.CoarseSelectionFilter, self.FineFundamentalSorter) self.AddAlpha(AllUp()) def CoarseSelectionFilter(self, coarse): filtered = [x.Symbol for x in coarse if x.HasFundamentalData] return filtered def FineFundamentalSorter(self, fine): sortedByROIC = sorted(fine, key=lambda x: x.OperationRatios.ROIC.ThreeMonths, reverse=True) return [s.Symbol for s in sortedByROIC[:self.nAssetsInPortfolio]] class AllUp(AlphaModel): def __init__(self): self.securities = [] def Update(self, algorithm, data): return Insight.Group([Insight.Price(x.Symbol, timedelta(1), InsightDirection.Up) for x in self.securities]) def OnSecuritiesChanged(self, algorithm, changes): for security in changes.AddedSecurities: self.securities.append(security) for security in changes.RemovedSecurities: if symbol in self.securities: self.secs.remove(security)