code: def cancel_orders(self, order_ids: List[str]) -> List[str]:
          
          orders_to_cancel = order_ids
          self.log.debug(f'Canceling orders on {self.name}: ids={orders_to_cancel}')
          cancelled_orders = []
  
          if self.dry_run:  # Don't cancel if dry run
              self.log.warning(f'DRY RUN: Orders cancelled on {self.name}: {orders_to_cancel}')
              return orders_to_cancel
  
          try:  # Iterate and cancel orders
              if self.has_batch_cancel:
                  self._cancel_orders(orders_to_cancel)
                  cancelled_orders.append(orders_to_cancel)
                  orders_to_cancel.clear()
              else:
                  for i, order_id in enumerate(orders_to_cancel):
                      self._cancel_order(order_id)
                      cancelled_orders.append(order_id)
                      orders_to_cancel.pop(i)
          except Exception as e:
              msg = f'Failed to cancel {len(orders_to_cancel)} orders on {self.name}: ids={orders_to_cancel}'
              raise self.exception(OrderNotFound, msg, e) from e
  
          self.log.info(f'Orders cancelled on {self.name}: ids={cancelled_orders}')
          return cancelled_orders
docs: Cancel multiple orders by a list of IDs.