diff --git a/tests/test_perf_tracking.py b/tests/test_perf_tracking.py index 06581434..d979473d 100644 --- a/tests/test_perf_tracking.py +++ b/tests/test_perf_tracking.py @@ -552,7 +552,7 @@ shares in position" }) else: txn = None - event[zp.TRANSFORM_TYPE.TRANSACTION] = txn + event['TRANSACTION'] = txn perf_tracker.process_event(event) #we skip two trades, to test case of None transaction diff --git a/tests/test_protocol.py b/tests/test_protocol.py index d26c2feb..a61ab246 100644 --- a/tests/test_protocol.py +++ b/tests/test_protocol.py @@ -1,5 +1,5 @@ """ -Test the FRAME/UNFRAME functions in the sequence expected from ziplines. +Test the FRAME/UNFRAME functions in the sequence expected from ziplines. """ import pytz @@ -36,10 +36,10 @@ class ProtocolTestCase(TestCase): one_day_td = timedelta(days=1) trades = factory.create_trade_history( - sid, - price, - volume, - one_day_td, + sid, + price, + volume, + one_day_td, self.trading_environment ) @@ -92,7 +92,7 @@ class ProtocolTestCase(TestCase): self.assertEqual(order.sid, 133) self.assertEqual(order.amount, 100) self.assertEqual(order.dt, now) - + #order datasource datasource frames the order order_event = zp.ndict({ "sid" : order.sid, @@ -118,12 +118,3 @@ class ProtocolTestCase(TestCase): 'price' : 10.0, 'commission' : 0.50 }) - - #frame that transaction - txn_msg = zp.TRANSFORM_FRAME(zp.TRANSFORM_TYPE.TRANSACTION, txn) - - #unframe - recovered_tx = zp.TRANSFORM_UNFRAME(txn_msg).TRANSACTION - self.assertEqual(recovered_tx.sid, 133) - self.assertEqual(recovered_tx.amount, 100) - diff --git a/zipline/finance/trading.py b/zipline/finance/trading.py index 6b5ac1f4..2d378574 100644 --- a/zipline/finance/trading.py +++ b/zipline/finance/trading.py @@ -168,12 +168,11 @@ for orders: def create_transaction(self, sid, amount, price, dt, direction): self.txn_count += 1 - txn = {'sid' : sid, - 'amount' : int(amount), - 'dt' : dt, - 'price' : price, - 'commission' : self.commission * amount * direction, - 'source_id' : zp.FINANCE_COMPONENT.TRANSACTION_SIM + txn = {'sid' : sid, + 'amount' : int(amount), + 'dt' : dt, + 'price' : price, + 'commission' : self.commission * amount * direction } return zp.ndict(txn) diff --git a/zipline/protocol.py b/zipline/protocol.py index 8db194cb..7828cc06 100644 --- a/zipline/protocol.py +++ b/zipline/protocol.py @@ -342,8 +342,6 @@ def TRANSFORM_FRAME(name, value): assert isinstance(name, basestring) if value == None: return msgpack.dumps(tuple([name, TRANSFORM_TYPE.EMPTY])) - if(name == TRANSFORM_TYPE.TRANSACTION): - value = TRANSACTION_FRAME(value) return msgpack.dumps(tuple([name, value])) def TRANSFORM_UNFRAME(msg): @@ -359,8 +357,6 @@ def TRANSFORM_UNFRAME(msg): assert isinstance(name, basestring) if(name == TRANSFORM_TYPE.PASSTHROUGH): value = FEED_UNFRAME(value) - elif(name == TRANSFORM_TYPE.TRANSACTION): - value = TRANSACTION_UNFRAME(value) return ndict({name : value}) except TypeError: @@ -382,11 +378,6 @@ def MERGE_FRAME(event): """ assert isinstance(event, ndict) PACK_DATE(event) - if(event.has_attr(TRANSFORM_TYPE.TRANSACTION)): - if(event.TRANSACTION == None): - event.TRANSACTION = TRANSFORM_TYPE.EMPTY - else: - event.TRANSACTION = TRANSACTION_FRAME(event.TRANSACTION) payload = event.as_dict() return msgpack.dumps(payload) @@ -396,11 +387,6 @@ def MERGE_UNFRAME(msg): #TODO: anything we can do to assert more about the content of the dict? assert isinstance(payload, dict) payload = ndict(payload) - if(payload.has_attr(TRANSFORM_TYPE.TRANSACTION)): - if(payload.TRANSACTION == TRANSFORM_TYPE.EMPTY): - payload.TRANSACTION = None - else: - payload.TRANSACTION = TRANSACTION_UNFRAME(payload.TRANSACTION) UNPACK_DATE(payload) return payload except TypeError: @@ -501,54 +487,6 @@ def ORDER_UNFRAME(msg): except ValueError: raise INVALID_ORDER_FRAME(msg) - -# ----------------------- -# TRANSACTIONS -# ----------------------- -# -# - Should only be called from inside TRANSFORM_(UN)FRAME. - - - -def TRANSACTION_FRAME(event): - assert isinstance(event, ndict) - assert isinstance(event.sid, int) - assert isinstance(event.price, numbers.Real) - assert isinstance(event.commission, numbers.Real) - assert isinstance(event.amount, int) - PACK_DATE(event) - return msgpack.dumps(tuple([ - event.sid, - event.price, - event.amount, - event.commission, - event.dt - ])) - -def TRANSACTION_UNFRAME(msg): - try: - sid, price, amount, commission, dt = msgpack.loads(msg) - - assert isinstance(sid, int) - assert isinstance(price, numbers.Real) - assert isinstance(commission, numbers.Real) - assert isinstance(amount, int) - rval = ndict({ - 'sid' : sid, - 'price' : price, - 'amount' : amount, - 'commission' : commission, - 'dt' : dt - }) - - UNPACK_DATE(rval) - return rval - except TypeError: - raise INVALID_TRADE_FRAME(msg) - except ValueError: - raise INVALID_TRADE_FRAME(msg) - - # ----------------------- # ORDERS # ----------------------- @@ -742,7 +680,6 @@ ORDER_PROTOCOL = Enum( #Transform type needs to be a ndict to facilitate merging. TRANSFORM_TYPE = ndict({ - 'TRANSACTION' : 'TRANSACTION', #needed? 'PASSTHROUGH' : 'PASSTHROUGH', 'EMPTY' : '' }) @@ -752,7 +689,6 @@ FINANCE_COMPONENT = namelookup({ 'TRADING_CLIENT' : 'TRADING_CLIENT', 'PORTFOLIO_CLIENT' : 'PORTFOLIO_CLIENT', 'ORDER_SOURCE' : 'ORDER_SOURCE', - 'TRANSACTION_SIM' : 'TRANSACTION_SIM' }) diff --git a/zipline/utils/date_utils.py b/zipline/utils/date_utils.py index 801315b8..131dd61b 100644 --- a/zipline/utils/date_utils.py +++ b/zipline/utils/date_utils.py @@ -47,8 +47,7 @@ def EPOCH(utc_datetime): return int(ms) def UN_EPOCH(ms_since_epoch): - seconds_since_epoch = float(ms_since_epoch) / 1000.0 - delta = timedelta(seconds = seconds_since_epoch) + delta = timedelta(milliseconds = ms_since_epoch) dt = UNIX_EPOCH + delta return dt