code: def tickUpdate(self, tick):
          ''' consume ticks '''
          LOG.debug("tickUpdate %s with tick %s, price %s" % (self.__symbol, tick.time, tick.close))
          self.__priceZscore(tick.close)
          self.__volumeZscore(tick.volume)
  
          # if haven't started, don't do any trading
          if tick.time <= self.__startDate:
              return
  
          # if not enough data, skip to reduce risk
          if not self.__priceZscore.getLastValue() or not self.__volumeZscore.getLastValue():
              return
  
          # get zscore
          priceZscore=self.__priceZscore.getLastValue()
          volumeZscore=self.__volumeZscore.getLastValue()
          if priceZscore is None or volumeZscore is None:
              return
  
          if priceZscore < self.__buyThreshold and self.__position <= 0 and abs(volumeZscore) > 1:
              self.__placeBuyOrder(tick)
  
          elif priceZscore > self.__sellThreshold and self.__position > 0 and abs(volumeZscore) > 1:
              self.__placeSellOrder(tick)
          
docs: consume ticks