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 submitOrder(self, order):
      if order.isInitial():
          # Override user settings based on Bitstamp limitations.
          order.setAllOrNone(False)
          order.setGoodTillCanceled(True)
  
          if order.isBuy():
              bitstampOrder = self.__httpClient.buyLimit(
                  order.getLimitPrice(), order.getQuantity()
              )
          else:
              bitstampOrder = self.__httpClient.sellLimit(
                  order.getLimitPrice(), order.getQuantity()
              )
  
          order.setSubmitted(
              bitstampOrder.getId(), bitstampOrder.getDateTime()
          )
          self._registerOrder(order)
          # Switch from INITIAL -> SUBMITTED
          # IMPORTANT: Do not emit an event for this switch because when using the position interface
          # the order is not yet mapped to the position and Position.onOrderUpdated will get called.
          order.switchState(broker.Order.State.SUBMITTED)
      else:
          raise Exception("The order was already processed")
  
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 20 for calling the LiveBroker obj's underlying member method code with example usage: obj.submitOrder(order) without return types