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))