Well I was using OnEndofDay(self) in an algorithm, just to get the open, high, low, close.  Like this

  1. def OnEndOfDay(self)->None:
  2. self.previous_close = self.Securities[self.symbol.Value].Close
  3. self.previous_vol = self.Securities[self.symbol.Value].Volume
  4. self.previous_high = self.Securities[self.symbol.Value].High
  5. self.previous_low = self.Securities[self.symbol.Value].Low
  6. self.previous_open = self.Securities[self.symbol.Value].Open

Then I saw this warning message

‘def OnEndOfDay(self, symbol: str) -> None
def OnEndOfDay(self, symbol: typing.Union[QuantConnect.Symbol, str]) -> None
def OnEndOfDay(self) -> None

End of a trading day event handler. This method is called at the end of the algorithm day (or multiple times if trading multiple assets).

This method is deprecated and will be removed after August 2021. Please use this overload: OnEndOfDay(Symbol symbol)

Full name: QuantConnect.Algorithm.QCAlgorithm.OnEndOfDay’.

So I'm wanting to learn how to use the new method.  Does one have to setup a loop somewhere in the program to loop through all the securities and send them to ‘def OnEndOfDay(self, symbol: str) -> None’  Kind of makes it seem more like just a standard scheduled event?  Like how am I suppose to know when to call this without scheduling it?
       

Author

Newoptionz

January 2023