Overall Statistics |
Total Trades 11 Average Win 0% Average Loss 0% Compounding Annual Return -11.344% Drawdown 2.600% Expectancy 0 Net Profit -1.017% Sharpe Ratio -1.293 Probabilistic Sharpe Ratio 21.016% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha -0.092 Beta -0.176 Annual Standard Deviation 0.071 Annual Variance 0.005 Information Ratio -0.647 Tracking Error 0.145 Treynor Ratio 0.523 Total Fees $11.00 |
from Execution.ImmediateExecutionModel import ImmediateExecutionModel from Portfolio.EqualWeightingPortfolioConstructionModel import EqualWeightingPortfolioConstructionModel class NetNet(QCAlgorithm): def Initialize(self): self.SetStartDate(2020, 1, 1) # Set Start Date self.SetEndDate(2020, 1, 31) self.SetCash(100000) # Set Strategy Cash self.SetAlpha(NetNetAlpha()) self.SetExecution(ImmediateExecutionModel()) self.SetPortfolioConstruction(EqualWeightingPortfolioConstructionModel(lambda time: None)) self.Settings.RebalanacePortfolioOnInsightChanges = False self.Settings.RebalancePortfolioOnSecurityChanges = True self.SetUniverseSelection(FineFundamentalUniverseSelectionModel(self.CoarseSelectionFunction, self.FineSelectionFunction, None, None)) self.UniverseSettings.Resolution = Resolution.Daily self.SetSecurityInitializer(lambda x: x.SetDataNormalizationMode(DataNormalizationMode.Raw)) # on 15 Jan, filter for securities with fundamental data def CoarseSelectionFunction(self, coarse): if not (self.Time.month == 1 and self.Time.day == 15): return Universe.Unchanged filtered = [ x.Symbol for x in coarse if x.HasFundamentalData ] return filtered # on 15 Jan, filter for securities with price above 1000 def FineSelectionFunction(self, fine): filtered = [ x.Symbol for x in fine if x.Price > 1000 ] return filtered class NetNetAlpha(AlphaModel): def __init__(self): pass def Update(self, algorithm, data): insights = [] if not (algorithm.Time.month == 1 and algorithm.Time.day == 15): return insights for security in algorithm.ActiveSecurities.Values: insights.append(Insight.Price(security.Symbol, timedelta(days=366), InsightDirection.Up)) return insights