class_docstr: Since the goal is to support multiple exchanges, it makes sense to
  include additional stats in the portfolio object. This fills the role
  of Blotter and Portfolio in live mode.
  
  Instead of relying on the performance tracker, each exchange portfolio
  tracks its own holding. This offers a separation between tracking an
  exchange and the statistics of the algorithm.
code: def _remove_open_order(self, order):
      try:
          open_orders = self.open_orders[order.asset]
          if order in open_orders:
              open_orders.remove(order)
  
      except Exception:
          raise ValueError(
              "unable to clear order not found in open order list."
          )
  
file_path: catalyst/catalyst/exchange/exchange_portfolio.py
imports: import numpy
  from catalyst.constants import LOG_LEVEL
  from catalyst.protocol import Portfolio, Positions, Position
  from logbook import Logger
label_desc: Use image node_id 3 for calling the ExchangePortfolio obj's underlying member method code with example usage: obj._remove_open_order(order) without return types