diff --git a/zipline/finance/slippage.py b/zipline/finance/slippage.py index 4b2241ef..7b0f164c 100644 --- a/zipline/finance/slippage.py +++ b/zipline/finance/slippage.py @@ -36,8 +36,8 @@ def transact_stub(slippage, commission, event, open_orders): with Processor(inject_algo_dt).threadbound(): transaction = slippage.simulate(event, open_orders) - if transaction and np.allclose(transaction.amount, 0): - direction = abs(transaction.amount) / transaction.amount + if transaction and not np.allclose(transaction.amount, 0): + direction = math.copysign(1, transaction.amount) per_share, total_commission = commission.calculate(transaction) transaction.price = transaction.price + (per_share * direction) transaction.commission = total_commission