code: def place_order(self, side: Side, order_type: OrderType, amount: Number, price: Number=None) -> Order:
          
          order_repr = f'side={side} type={order_type} amount={amount} price={price}'
          order_err = f'Failed to place order on {self.name}!: {order_repr}'
  
          self.log.debug(f'Placing order on {self.name}: {order_repr}')
          amount = self._parse_base(amount)
          price = self._parse_quote(price)
  
          min_amount = self.min_order_amount.amount  # Don´t place order if the amount < min allowed
          if min_amount and amount < min_amount:
              msg = f'{order_err}\n> Reason: amount={amount} < min_amount={min_amount}'
              raise self.exception(OrderTooSmall, msg)
  
          if self.dry_run:  # Don't place order if dry run
              order = Order.create_default(self.market, order_type, side, amount, price)
              self.log.warning(f'DRY RUN: Order placed: {order}')
              return order
  
          try:  # Place order
              order = self._place_order(side, order_type, amount, price)
          except Exception as e:
              raise self.exception(OrderNotPlaced, order_err, e) from e
  
          self.log.info(f'Order placed on {self.name}: {order}')
          return order
docs: Place an order.