I've written a profoundly simple algo, but for some reason backtesting it seems to take an absurdly long time (a few months of minute data has taken over 20 minutes, and it still isn't done), and the algo seems to be making no trades as well. Am I doing something wrong here?

def Initialize(self):
'''Initialise the data and resolution required, as well as the cash and start-end dates for your algorithm. All algorithms must initialized.'''

self.SetStartDate(2018,2,1) #Set Start Date
self.SetEndDate(2018,6,1) #Set End Date
self.SetCash(10000) #Set Strategy Cash
# Find more symbols here: http://quantconnect.com/data
self.AddEquity("SPY", Resolution.Minute).Symbol
self.Debug("numpy test >>> print numpy.pi: " + str(np.pi))

def OnData(self, data):
bollow = self.BB("SPY", 20, 2).LowerBand
bolligh = self.BB("SPY", 20, 2).UpperBand
bollave = self.BB("SPY", 20, 2).MiddleBand
price = self.AddEquity("SPY", Resolution.Minute).Price
if price < bollow.Current.Value:
self.SetHoldings("SPY", 0.5, 0)
elif price > bolligh.Current.Value:
self.SetHoldings("SPY", -0.5, 0)
elif self.Portfolio.Invested and (bollave.Current.Value * 0.99) <= price <= (bollave.Current.Value * 1.01):