From 83b0e51b59ee53650ada9751f3b7dca12d7aec63 Mon Sep 17 00:00:00 2001 From: Eddie Hebert Date: Fri, 20 Feb 2015 15:30:33 -0500 Subject: [PATCH] BUG: Fix missed cache invalidations on assignment. _position_values needs to be invalidated on every assignment. --- zipline/finance/performance/period.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/zipline/finance/performance/period.py b/zipline/finance/performance/period.py index 6054d024..f027920f 100644 --- a/zipline/finance/performance/period.py +++ b/zipline/finance/performance/period.py @@ -161,9 +161,11 @@ class PerformancePeriod(object): def set_position_amount(self, sid, amount): self._position_amounts[sid] = amount + self._position_values = None # invalidate cache def set_position_last_sale_price(self, sid, last_sale_price): self._position_last_sale_prices[sid] = last_sale_price + self._position_values = None # invalidate cache def handle_split(self, split): if split.sid in self.positions: @@ -237,6 +239,7 @@ class PerformancePeriod(object): position.amount += share_count self._position_amounts[stock] = position.amount self._position_last_sale_prices[stock] = position.last_sale_price + self._position_values = None # invalidate cache # Recalculate performance after applying dividend benefits. self.calculate_performance()