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 __init__(self, start_date, starting_cash=None):
      self.capital_used = 0.0
      self.starting_cash = starting_cash
      self.portfolio_value = starting_cash
      self.pnl = 0.0
      self.returns = 0.0
      self.cash = starting_cash
      self.positions = Positions()
      self.start_date = start_date
      self.positions_value = 0.0
      self.open_orders = dict()
  
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 1 to create a new ExchangePortfolio object from inherited base classes: Portfolio with example: obj = ExchangePortfolio(start_date, starting_cash)