I am on a FREE plan. I observe that even though I set resolution to be at Minute level, I don't see OnData being called every minute. My logs indicate that many times it's getting called after 6-7 hours. Why is that?

  1. from AlgorithmImports import *
  2. from datetime import *
  3. from Globals import MyGlobals
  4. class IronButterflyAlgorithm(QCAlgorithm):
  5. last_time_ondata_called: datetime = datetime.min
  6. def Initialize(self):
  7. self.SetStartDate(2018, 7, 1)
  8. self.SetEndDate(2023, 7, 1)
  9. self.SetCash(100000)
  10. ticker = "SPY"
  11. option: Option = self.AddOption(ticker, Resolution.Minute)
  12. equity_symbol = self.AddEquity(ticker, Resolution.Minute).Symbol
  13. def OnData(self, slice):
  14. if self.IsWarmingUp:
  15. # self.Debug(f"{slice.Time} - Warming up")
  16. return
  17. if (self.last_time_ondata_called == datetime.min):
  18. # first time OnData called
  19. self.last_time_ondata_called = slice.Time
  20. else:
  21. # check for being called after 5 minutes
  22. if (slice.Time - self.last_time_ondata_called).seconds > (5 * 60):
  23. self.Debug(
  24. f"{slice.Time} OnData being called after {(slice.Time - self.last_time_ondata_called).seconds/60.0} minutes")
  25. self.last_time_ondata_called = slice.Time
+ Expand

 

Output snippet

  1. 434
  2. |
  3. 8:54:06
  4. :
  5. 2020-02-10 09:31:00 OnData being called after 1051.0 minutes
  6. 435
  7. |
  8. 8:54:06
  9. :
  10. 2020-02-11 09:31:00 OnData being called after 1051.0 minutes
  11. 436
  12. |
  13. 8:54:10
  14. :
  15. 2020-02-12 09:31:00 OnData being called after 1051.0 minutes
  16. 437
  17. |
  18. 8:54:10
  19. :
  20. 2020-02-13 09:31:00 OnData being called after 1051.0 minutes
  21. 438
  22. |
  23. 8:54:10
  24. :
  25. 2020-02-14 09:31:00 OnData being called after 1051.0 minutes
  26. 439
  27. |
  28. 8:54:10
  29. :
  30. 2020-02-18 09:31:00 OnData being called after 1051.0 minutes
  31. 440
  32. |
  33. 8:54:10
  34. :
  35. 2020-02-19 09:31:00 OnData being called after 1051.0 minutes
  36. 441
  37. |
  38. 8:54:14
  39. :
  40. 2020-02-20 09:31:00 OnData being called after 1051.0 minutes
  41. 442
  42. |
  43. 8:54:14
  44. :
  45. 2020-02-21 00:00:00 OnData being called after 480.0 minutes
  46. 443
  47. |
  48. 8:54:14
  49. :
  50. 2020-02-21 09:31:00 OnData being called after 571.0 minutes
  51. 444
  52. |
  53. 8:54:14
  54. :
  55. 2020-02-22 00:00:00 OnData being called after 480.0 minutes
  56. 445
  57. |
  58. 8:54:14
  59. :
  60. 2020-02-24 09:31:00 OnData being called after 571.0 minutes
  61. 446
  62. |
  63. 8:54:14
  64. :
  65. 2020-02-25 09:31:00 OnData being called after 1051.0 minutes
  66. 447
  67. |
  68. 8:54:17
  69. :
  70. 2020-02-26 09:31:00 OnData being called after 1051.0 minutes
  71. 448
  72. |
  73. 8:54:17
  74. :
  75. 2020-02-27 09:31:00 OnData being called after 1051.0 minutes
+ Expand

Author

Prashd

September 2023