docstr: Creates a list of transactions based on the current open orders,
  slippage model, and commission model.
  
  Parameters
  ----------
  bar_data: catalyst._protocol.BarData
  
  Notes
  -----
  This method book-keeps the blotter's open_orders dictionary, so that
   it is accurate by the time we're done processing open orders.
  
  Returns
  -------
  transactions_list: List
      transactions_list: list of transactions resulting from the current
      open orders.  If there were no open orders, an empty list is
      returned.
  
  commissions_list: List
      commissions_list: list of commissions resulting from filling the
      open orders.  A commission is an object with "asset" and "cost"
      parameters.
  
  closed_orders: List
      closed_orders: list of all the orders that have filled.
docstr_tok: ["Creates","a","list","of","transactions","based","on","the","current","open","orders",",","slippage","model",",","and","commission","model",".","Parameters","--","--","--","--","--","bar_data",":","catalyst._protocol.BarData","Notes","--","--","-","This","method","book-keeps","the","blotter","'s","open_orders","dictionary",",","so","that","it","is","accurate","by","the","time","we","'re","done","processing","open","orders",".","Returns","--","--","--","-","transactions_list",":","List","transactions_list",":","list","of","transactions","resulting","from","the","current","open","orders",".","If","there","were","no","open","orders",",","an","empty","list","is","returned",".","commissions_list",":","List","commissions_list",":","list","of","commissions","resulting","from","filling","the","open","orders",".","A","commission","is","an","object","with","``","asset","''","and","``","cost","''","parameters",".","closed_orders",":","List","closed_orders",":","list","of","all","the","orders","that","have","filled","."]
code: def get_transactions(self, bar_data):
      """
      Creates a list of transactions based on the current open orders,
      slippage model, and commission model.
  
      Parameters
      ----------
      bar_data: catalyst._protocol.BarData
  
      Notes
      -----
      This method book-keeps the blotter's open_orders dictionary, so that
       it is accurate by the time we're done processing open orders.
  
      Returns
      -------
      transactions_list: List
          transactions_list: list of transactions resulting from the current
          open orders.  If there were no open orders, an empty list is
          returned.
  
      commissions_list: List
          commissions_list: list of commissions resulting from filling the
          open orders.  A commission is an object with "asset" and "cost"
          parameters.
  
      closed_orders: List
          closed_orders: list of all the orders that have filled.
      """
  
      closed_orders = []
      transactions = []
      commissions = []
  
      if self.open_orders:
          for asset, asset_orders in iteritems(self.open_orders):
              slippage = self.slippage_models[type(asset)]
  
              for order, txn in slippage.simulate(
                  bar_data, asset, asset_orders
              ):
                  commission = self.commission_models[type(asset)]
                  additional_commission = commission.calculate(
                      order, txn
                  )
  
                  if additional_commission > 0:
                      commissions.append(
                          {
                              "asset": order.asset,
                              "order": order,
                              "cost": additional_commission,
                          }
                      )
  
                  order.filled += txn.amount
                  order.commission += additional_commission
  
                  order.dt = txn.dt
  
                  # added for stats
                  txn.commission = additional_commission
  
                  transactions.append(txn)
  
                  if not order.open:
                      closed_orders.append(order)
  
      return transactions, commissions, closed_orders
  
imports: from logbook import Logger
  from collections import defaultdict
  from copy import copy
  from six import iteritems
  from catalyst.assets import Equity, Future, Asset
  from catalyst.finance.order import Order
  from catalyst.finance.slippage import DEFAULT_FUTURE_VOLUME_SLIPPAGE_BAR_LIMIT, VolatilityVolumeShare, VolumeShareSlippage
  from catalyst.finance.commission import DEFAULT_PER_CONTRACT_COST, FUTURE_EXCHANGE_FEES_BY_SYMBOL, PerContract, PerShare
  from catalyst.finance.cancel_policy import NeverCancel
  from catalyst.utils.input_validation import expect_types
  from catalyst.constants import LOG_LEVEL
label_desc: Use image node_id 12 for calling the Blotter obj's underlying member method code with example usage: obj.get_transactions(bar_data) and returns: transactions,  commissions,  closed_orders