예제 #1
0
 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
예제 #2
0
    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))
예제 #3
0
    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))