From 81de47774fad60f56640e772a96a887ef0ffe250 Mon Sep 17 00:00:00 2001 From: fawce Date: Thu, 10 May 2012 13:51:02 -0400 Subject: [PATCH] fixed allocation issue --- zipline/finance/movingaverage.py | 3 +++ zipline/finance/vwap.py | 7 +++++-- zipline/lines.py | 2 ++ zipline/test/test_transforms.py | 2 ++ 4 files changed, 12 insertions(+), 2 deletions(-) diff --git a/zipline/finance/movingaverage.py b/zipline/finance/movingaverage.py index 3041014e..7c87d92a 100644 --- a/zipline/finance/movingaverage.py +++ b/zipline/finance/movingaverage.py @@ -15,6 +15,9 @@ class MovingAverageTransform(BaseTransform): cur.update(event) self.state['value'] = cur.average return self.state + + def create_vwap(self): + return DailyVWAP(self.daycount) class MovingAverage(object): diff --git a/zipline/finance/vwap.py b/zipline/finance/vwap.py index a3dfc99c..1120e946 100644 --- a/zipline/finance/vwap.py +++ b/zipline/finance/vwap.py @@ -9,18 +9,21 @@ class VWAPTransform(BaseTransform): def init(self, daycount=3): self.daycount = daycount - self.by_sid = defaultdict(DailyVWAP) + self.by_sid = defaultdict(self.create_vwap) def transform(self, event): cur = self.by_sid(event.sid) cur.update(event) self.state['value'] = cur.vwap return self.state + + def create_vwap(self): + return DailyVWAP(self.daycount) class DailyVWAP: """A class that tracks the volume weighted average price based on tick updates.""" - def __init__(self, daycount=3): + def __init__(self, daycount): self.window = EventWindow(daycount) self.flux = 0.0 self.volume = 0 diff --git a/zipline/lines.py b/zipline/lines.py index 26d01f67..932d9e2f 100644 --- a/zipline/lines.py +++ b/zipline/lines.py @@ -143,6 +143,8 @@ class SimulatedTrading(object): sockets[7], logging = qutil.LOGGER ) + + self.con.cancel_socket = self.allocator.lease(1)[0] # TODO: Not freeform self.con.manage( diff --git a/zipline/test/test_transforms.py b/zipline/test/test_transforms.py index 121803ff..e2fb3666 100644 --- a/zipline/test/test_transforms.py +++ b/zipline/test/test_transforms.py @@ -17,6 +17,8 @@ class ZiplineWithTransformsTestCase(TestCase): leased_sockets = defaultdict(list) def setUp(self): + # skip ahead 100 spots + allocator.lease(100) qutil.configure_logging() self.trading_environment = factory.create_trading_environment() self.zipline_test_config = {