From 104245bb19ff372d47324b4b81d9ad6cf6e34ee4 Mon Sep 17 00:00:00 2001 From: Eddie Hebert Date: Thu, 17 Dec 2015 14:58:14 -0500 Subject: [PATCH] MAINT: Make split method coarse. In preparation for removal of widespread events, change the split methods to use params for sid and cost, instead of an event, for compatibility with lazy branch. co-author: @jbredeche --- zipline/finance/performance/position.py | 10 ++++------ zipline/finance/performance/position_tracker.py | 2 +- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/zipline/finance/performance/position.py b/zipline/finance/performance/position.py index 2daf0039..155d019b 100644 --- a/zipline/finance/performance/position.py +++ b/zipline/finance/performance/position.py @@ -82,20 +82,18 @@ class Position(object): payment_owed = zp.dividend_payment(out) return payment_owed - def handle_split(self, split): + def handle_split(self, sid, ratio): """ Update the position by the split ratio, and return the resulting fractional share that will be converted into cash. Returns the unused cash. """ - if self.sid != split.sid: + if self.sid != sid: raise Exception("updating split with the wrong sid!") - ratio = split.ratio - - log.info("handling split for sid = " + str(split.sid) + - ", ratio = " + str(split.ratio)) + log.info("handling split for sid = " + str(sid) + + ", ratio = " + str(ratio)) log.info("before split: " + str(self)) # adjust the # of shares by the ratio diff --git a/zipline/finance/performance/position_tracker.py b/zipline/finance/performance/position_tracker.py index 6ef069ad..04e3b276 100644 --- a/zipline/finance/performance/position_tracker.py +++ b/zipline/finance/performance/position_tracker.py @@ -327,7 +327,7 @@ class PositionTracker(object): # Make the position object handle the split. It returns the # leftover cash from a fractional share, if there is any. position = self.positions[split.sid] - leftover_cash = position.handle_split(split) + leftover_cash = position.handle_split(split.sid, split.ratio) self._update_asset(split.sid) return leftover_cash