Overall Statistics |
Total Trades 338 Average Win 0.36% Average Loss -0.37% Compounding Annual Return 234.152% Drawdown 68.700% Expectancy 0.417 Net Profit 84.290% Sharpe Ratio 3.387 Probabilistic Sharpe Ratio 66.779% Loss Rate 28% Win Rate 72% Profit-Loss Ratio 0.98 Alpha 3.073 Beta -0.401 Annual Standard Deviation 0.898 Annual Variance 0.806 Information Ratio 2.834 Tracking Error 1.044 Treynor Ratio -7.584 Total Fees $345.99 |
from Execution.ImmediateExecutionModel import ImmediateExecutionModel class ParticleQuantumFlange(QCAlgorithm): def Initialize(self): self.SetStartDate(2019, 12, 2) # Set Start Date self.SetCash(100000) # Set Strategy Cash self.tickers = ["SPY", "TSLA", "UBER"] self.symbols = [ Symbol.Create(t, SecurityType.Equity, Market.USA) for t in self.tickers] self.SetUniverseSelection( ManualUniverseSelectionModel(self.symbols) ) self.UniverseSettings.Resolution = Resolution.Daily self.AddAlpha(MyAlphaModel(self)) self.SetPortfolioConstruction(MyPCM()) self.SetExecution(ImmediateExecutionModel()) def OnData(self, data): pass class MyPCM(InsightWeightingPortfolioConstructionModel): leverage = 0.5 def CreateTargets(self, algorithm, insights): targets = super().CreateTargets(algorithm, insights) return [PortfolioTarget(x.Symbol, x.Quantity*(1+self.leverage)) for x in targets] class MyAlphaModel(AlphaModel): def __init__(self, algorithm): self.algo = algorithm def Update(self, algorithm, data): insights = [] for ticker in self.algo.tickers: insight = Insight.Price(ticker, timedelta(1), InsightDirection.Up, None, None, None, 1) insights.append(insight) return insights def OnSecuritiesChanged(self, algorithm, changes): pass