'Calculate the amount of commission to charge on ``order`` as a result
of ``transaction``.
Parameters
order : zipline.finance.order.Order
The order being processed.
The ``commission`` field of ``order`` is a float indicating the
amount of commission already charged on this order.
transaction : zipline.finance.transaction.Transaction
The transaction being processed. A single order may generate
multiple transactions if there isn\'t enough volume in a given bar
to fill the full amount requested in the order.
Returns
amount_charged : float
The additional commission, in dollars, that we should attribute to
this order.'

@abstractmethod
def calculate(self, order, transaction):

    raise NotImplementedError('calculate')
