mirror of
https://github.com/wassname/catalyst.git
synced 2026-06-30 06:28:42 +08:00
removed protocol cruft from transaction transform days.
This commit is contained in:
@@ -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
|
||||
|
||||
+6
-15
@@ -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)
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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'
|
||||
})
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user