I'm trying to fire an event once daily at 3:59:30 PM. I've tried the following to no avail:

// This method does not accept seconds? 

        self.Schedule.On(self.DateRules.EveryDay(self.symbol), 
                        self.TimeRules.At(15, 59), 
                        Action(self.ThirtySecondsBeforeMarketClose))

 

// This method fires at 4:00PM instead of 3:59:30 PM

        self.Schedule.On(self.DateRules.EveryDay(self.symbol), \
                        self.TimeRules.BeforeMarketClose(self.symbol, 0.5), \
                        Action(self.ThirtySecondsBeforeMarketClose))

 

// This method oddly fires twice at 9:31 AM and once at 3:59:00 PM

self.Schedule.On(self.DateRules.EveryDay(self.symbol), self.TimeRules.Every(timedelta(seconds=(23370))), Action(self.EveryMarketClose))

 

Author