Overall Statistics |
Total Trades 1 Average Win 0% Average Loss 0% Compounding Annual Return 8.340% Drawdown 33.800% Expectancy 0 Net Profit 50.401% Sharpe Ratio 0.55 Probabilistic Sharpe Ratio 14.460% Loss Rate 0% Win Rate 0% Profit-Loss Ratio 0 Alpha 0.001 Beta 0.998 Annual Standard Deviation 0.187 Annual Variance 0.035 Information Ratio 0.278 Tracking Error 0.001 Treynor Ratio 0.103 Total Fees $2.66 |
class MultidimensionalVentralCoil(QCAlgorithm): def Initialize(self): self.SetStartDate(2015, 3, 30) # Set Start Date self.SetCash(100000) # Set Strategy Cash self.spy = self.AddEquity("SPY", Resolution.Minute).Symbol thirtyMinuteConsolidator = TradeBarConsolidator(timedelta(minutes=30)) self.SubscriptionManager.AddConsolidator(self.spy, thirtyMinuteConsolidator) thirtyMinuteConsolidator.DataConsolidated += self.OnThirtyMinuteBar self.barWindow = RollingWindow[TradeBar](2) # self.Schedule.On(self.DateRules.EveryDay(), self.TimeRules.BeforeMarketClose("SPY", 0), self.ClosingBar) def OnThirtyMinuteBar(self, sender, bar): self.barWindow.Add(bar) if not self.barWindow.IsReady: return currentBar = self.barWindow[0] previousBar = self.barWindow[1] currentHigh = currentBar.High currentLow = currentBar.Low currentClose=currentBar.Close previousHigh = previousBar.High previousLow = previousBar.Low previousClose=previousBar.Close if bar.EndTime.hour == 10 and bar.EndTime.minute == 30: # self.Debug("timmmme:"+ str(self.Time)) # self.Debug("startingtimmmmeeeeeee:"+ str(previousBar.EndTime)) # self.Debug("timmmmeeeeeee:"+ str(currentBar.EndTime)) if not self.Portfolio.Invested: if currentBar.Close > previousHigh: self.SetHoldings("SPY", 1) if currentBar.Close < previousLow: self.SetHoldings("SPY", 0) if self.Time.hour==3 and self.Time.minute==59: self.Liquidate() self.Plot("My Custom Chart", "High", currentHigh) self.Plot("My Custom Chart", "Low", currentLow) self.Debug("Bar_high_low_till_time :" + str(self.Time) + "currentHigh :" + str(currentHigh) + "PreviousHigh:" + str(previousHigh) ) # def ClosingBar(self): # self.Liquidate() # self.Debug(str(self.Time))