| Overall Statistics |
|
Total Trades 8 Average Win 2.18% Average Loss 0% Compounding Annual Return 25.911% Drawdown 6.500% Expectancy 0 Net Profit 9.007% Sharpe Ratio 1.706 Probabilistic Sharpe Ratio 63.160% Loss Rate 0% Win Rate 100% Profit-Loss Ratio 0 Alpha 0.223 Beta 0.102 Annual Standard Deviation 0.158 Annual Variance 0.025 Information Ratio -0.386 Tracking Error 0.481 Treynor Ratio 2.635 Total Fees $14.57 |
class ResistanceMultidimensionalFlange(QCAlgorithm):
def Initialize(self):
self.SetStartDate(2020, 3, 1) # Set Start Date
self.SetCash(100000) # Set Strategy Cash
self.spy = self.AddEquity('SPY', Resolution.Minute).Symbol
self.closeWindow = RollingWindow[float](19)
self.Schedule.On(self.DateRules.EveryDay('SPY'), self.TimeRules.BeforeMarketClose('SPY'), self.UpdateWindow)
self.Schedule.On(self.DateRules.EveryDay('SPY'), self.TimeRules.BeforeMarketClose('SPY', 10), self.ComputeSMA)
def UpdateWindow(self):
if self.CurrentSlice.ContainsKey(self.spy):
self.closeWindow.Add(self.CurrentSlice[self.spy].Close)
def ComputeSMA(self):
if not self.closeWindow.IsReady:
return
if self.CurrentSlice.ContainsKey(self.spy):
close = self.CurrentSlice[self.spy].Close
sma20 = (sum(list(self.closeWindow)) + close) / 20
self.Plot('Custom', 'SMA20', sma20)
if sma20 > self.CurrentSlice[self.spy].Close:
self.SetHoldings(self.spy, 1.0)
else:
self.Liquidate()