From 9f8fd52b7df69fa78bfb3c6e35afc7c72341c789 Mon Sep 17 00:00:00 2001 From: fawce Date: Mon, 1 Oct 2012 21:46:48 -0400 Subject: [PATCH] fixed bug where commission ignored order direction --- zipline/finance/slippage.py | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/zipline/finance/slippage.py b/zipline/finance/slippage.py index be6e4f5b..53512438 100644 --- a/zipline/finance/slippage.py +++ b/zipline/finance/slippage.py @@ -10,10 +10,12 @@ def transact_stub(slippage, commission, open_orders, events): This is intended to be wrapped in a partial, so that the slippage and commission models can be enclosed. """ + transaction = slippage.simulate(open_orders, events) - if transaction: + if transaction and transaction.amount != 0: + direction = abs(transaction.amount) / transaction.amount per_share, total_commission = commission.calculate(transaction) - transaction.price = transaction.price + per_share + transaction.price = transaction.price + (per_share * direction) transaction.commission = total_commission return transaction