I am trying to calculate how many hours are left in the trading day, assuming the market is open but seem to be running into trouble. It seems like my exchange open flag is never evaluating to True, Any ideas?

def OnData(self, data: Slice):
        #cancel any orders
        self.Transactions.CancelOpenOrders()
        
        # calculate Time to Expiry (daily)
        str_format = "%H:%M:%S"
        
        if self.Securities[self.symbol.Symbol].Exchange.ExchangeOpen == False:
            return
        
        startTime = self.Securities[self.symbol.Symbol].Exchange.Hours.GetMarketHours(self.Time).Segments[1].Start
        startTime = datetime.strptime(str(startTime), str_format)

        endTime = self.Securities[self.symbol.Symbol].Exchange.Hours.GetMarketHours(self.Time).Segments[2].Start
        endTime = datetime.strptime(str(endTime), str_format)

        currentTime = self.Time.time()
        currentTime = datetime.strptime(str(currentTime), str_format)

        self.time_ratio = (currentTime - startTime) / (endTime - startTime)

 

Author