class_docstr: A Bitstamp live broker.
  
  :param clientId: Client id.
  :type clientId: string.
  :param key: API key.
  :type key: string.
  :param secret: API secret.
  :type secret: string.
  
  
  .. note::
      * Only limit orders are supported.
      * Orders are automatically set as **goodTillCanceled=True** and  **allOrNone=False**.
      * BUY_TO_COVER orders are mapped to BUY orders.
      * SELL_SHORT orders are mapped to SELL orders.
      * API access permissions should include:
  
        * Account balance
        * Open orders
        * Buy limit order
        * User transactions
        * Cancel order
        * Sell limit order
code: def createLimitOrder(self, action, instrument, limitPrice, quantity):
      if instrument != common.btc_symbol:
          raise Exception("Only BTC instrument is supported")
  
      if action == broker.Order.Action.BUY_TO_COVER:
          action = broker.Order.Action.BUY
      elif action == broker.Order.Action.SELL_SHORT:
          action = broker.Order.Action.SELL
  
      if action not in [
          broker.Order.Action.BUY,
          broker.Order.Action.SELL,
      ]:
          raise Exception("Only BUY/SELL orders are supported")
  
      instrumentTraits = self.getInstrumentTraits(instrument)
      limitPrice = round(limitPrice, 2)
      quantity = instrumentTraits.roundQuantity(quantity)
      return broker.LimitOrder(
          action, instrument, limitPrice, quantity, instrumentTraits
      )
  
imports: import threading
  import time
  from six.moves import queue
  from pyalgotrade import broker
  from pyalgotrade.bitstamp import httpclient
  from pyalgotrade.bitstamp import common
label_desc: Use image node_id 22 for calling the LiveBroker obj's underlying member method code with example usage: obj.createLimitOrder(action, instrument, limitPrice, quantity) and returns: broker