MAINT: Generate perfomance message only once per bar for minute mode.

Instead of creating a set of perf messages for each event during minute
emission mode, only include the messages on the last event in the bar.

Should cut down on calculations/serialization as well, as work towards
doing more 'end of bar' logic for minute benchmarks.
This commit is contained in:
Eddie Hebert
2013-04-22 17:37:32 -04:00
parent 3811df78b9
commit 8937ac1f41
+6 -4
View File
@@ -232,10 +232,14 @@ class PerformanceTracker(object):
for event in snapshot:
self.process_event(event)
if event.type == zp.DATASOURCE_TYPE.TRADE:
event.perf_messages = [self.to_dict()]
event.portfolio = self.get_portfolio()
event.perf_messages = []
event.portfolio = None
new_snapshot.append(event)
if new_snapshot:
new_snapshot[-1].perf_messages = [self.to_dict()]
new_snapshot[-1].portfolio = self.get_portfolio()
if new_snapshot:
yield date, new_snapshot
@@ -286,8 +290,6 @@ class PerformanceTracker(object):
while (event.dt > self.market_close and
event.dt < self.last_close):
messages.append(self.handle_market_close())
elif self.emission_rate == 'minute':
messages.append(self.to_dict())
#update last sale
self.cumulative_performance.update_last_sale(event)