class_docstr: A real-time BarFeed that builds bars from live trades.
  
  :param maxLen: The maximum number of values that the :class:`pyalgotrade.dataseries.bards.BarDataSeries` will hold.
      Once a bounded length is full, when new items are added, a corresponding number of items are discarded
      from the opposite end. If None then dataseries.DEFAULT_MAX_LEN is used.
  :type maxLen: int.
  
  .. note::
      Note that a Bar will be created for every trade, so open, high, low and close values will all be the same.
class_docstr_tok: ["A","real-time","BarFeed","that","builds","bars","from","live","trades",".",":","param","maxLen",":","The","maximum","number","of","values","that","the",":","class",":","`","pyalgotrade.dataseries.bards.BarDataSeries","`","will","hold",".","Once","a","bounded","length","is","full",",","when","new","items","are","added",",","a","corresponding","number","of","items","are","discarded","from","the","opposite","end",".","If","None","then","dataseries.DEFAULT_MAX_LEN","is","used",".",":","type","maxLen",":","int",".","..","note",":",":","Note","that","a","Bar","will","be","created","for","every","trade",",","so","open",",","high",",","low","and","close","values","will","all","be","the","same","."]
code: def stop(self):
      try:
          self.__stopped = True
          if self.__thread is not None and self.__thread.is_alive():
              common.logger.info("Shutting down websocket client.")
              self.__thread.stop()
      except Exception as e:
          common.logger.error(
              "Error shutting down client: %s" % (str(e))
          )
  
imports: import datetime
  import time
  from six.moves import queue
  from pyalgotrade import bar
  from pyalgotrade import barfeed
  from pyalgotrade import observer
  from pyalgotrade.bitstamp import common
  from pyalgotrade.bitstamp import wsclient
label_desc: Use image node_id 16 for calling the LiveTradeFeed obj's underlying member method code with example usage: obj.stop() without return types