def getNextBars(self): ret = None try: eventType, eventData = self.__queue.get(True, LiveFeed.QUEUE_TIMEOUT) if eventType == GetBarThread.ON_BARS: ret = eventData else: logger.error("Invalid event received: %s - %s" % (eventType, eventData)) except Queue.Empty: pass return ret
def doCall(self): endDateTime = self.__nextBarClose self.__updateNextBarClose() barDict = {} for indentifier in self.__identifiers: try: logger.debug("Requesting bars with precision %s and period %s for %s" % (self.__precision, self.__period, indentifier)) response = api.XigniteGlobalRealTime_GetBar(self.__apiToken, indentifier, "Symbol", endDateTime, self.__precision, self.__period) # logger.debug(response) barDict[indentifier] = build_bar(response["Bar"], indentifier, self.__frequency) except api.XigniteError as e: logger.error(e) if len(barDict): bars = bar.Bars(barDict) self.__queue.put((GetBarThread.ON_BARS, bars))
def doCall(self): startDateTime = to_market_datetime(self.__nextBarStart) endDateTime = to_market_datetime(self.__nextBarClose) self.__updateNextBarClose() barDict = dict() for identifier in self.__identifiers: try: period_bar = self._build_bar(identifier, startDateTime, endDateTime) if period_bar: barDict[identifier] = period_bar except Exception as e: logger.error(e) if len(barDict): bars = bar.Bars(barDict) self.__queue.put((GetBarThread.ON_BARS, bars))