Hi everyone, I am receiving the error posted in the title. My understanding is algorithm data is pumped in according to resolution and can be passed into other methods/functions as parameters. However, I seem to get this error when passing the data into my scheduled methods/functions. Any suggestions on what could be causing this or fixes? 

  1. class PowerHourTest(QCAlgorithm):
  2. openingPrice = 0
  3. tradeLock = False
  4. def Initialize(self):
  5. self.SetStartDate(2022, 1, 1)
  6. self.SetEndDate(2022, 3, 18)
  7. self.SetCash(100000)
  8. self.ticker = "QQQ"
  9. self.symbol = self.AddEquity(self.ticker, Resolution.Minute).Symbol
  10. self.SetBrokerageModel(BrokerageName.InteractiveBrokersBrokerage)
  11. self.SetRiskManagement(TrailingStopRiskManagementModel(0.01))
  12. self.Schedule.On(self.DateRules.EveryDay(), self.TimeRules.AfterMarketOpen(self.symbol, 1), self.OpeningBellPriceCapture)
  13. self.Schedule.On(self.DateRules.EveryDay(), self.TimeRules.At(14, 0), self.PowerHourTradeExecution)
  14. self.Schedule.On(self.DateRules.EveryDay(), self.TimeRules.BeforeMarketClose(self.symbol, 1), self.SellOnClose)
  15. self.Schedule.On(self.DateRules.EveryDay(), self.TimeRules.At(23, 59), self.TradeLockReset)
  16. def OnData(self, data):
  17. return
  18. def OpeningBellPriceCapture(self, data):
  19. self.openingPrice = data.Bars[self.symbol].Open
  20. def PowerHourTradeExecution(self, data):
  21. if self.openingPrice == 0:
  22. return
  23. self.currentPrice = data.Bars[self.symbol].Close
  24. if self.currentPrice - self.openingPrice < 0 and self.tradeLock is False:
  25. self.SetHoldings(self.symbol, 1)
  26. self.tradeLock = True
  27. def SellOnClose(self):
  28. self.Liquidate
  29. def TradeLockReset(self):
  30. self.openingPrice = 0
  31. self.tradeLock = False
+ Expand

Author

James Hawkins

March 2022