From 923d3e4cbc08acae383cf8daab7b0bf6530c6e14 Mon Sep 17 00:00:00 2001 From: fawce Date: Tue, 12 Nov 2013 22:40:16 -0500 Subject: [PATCH] PERF: re-ordered if statements, made into exclusive checks --- zipline/gens/tradesimulation.py | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/zipline/gens/tradesimulation.py b/zipline/gens/tradesimulation.py index f3ffbb74..3e3149fd 100644 --- a/zipline/gens/tradesimulation.py +++ b/zipline/gens/tradesimulation.py @@ -128,16 +128,21 @@ class AlgorithmSimulator(object): events = [] for event in snapshot: - if event.type == DATASOURCE_TYPE.SPLIT: - self.algo.blotter.process_split(event) - - if event.type in (DATASOURCE_TYPE.TRADE, - DATASOURCE_TYPE.CUSTOM): + if event.type == DATASOURCE_TYPE.TRADE: self.update_universe(event) updated = True - if event.type == DATASOURCE_TYPE.BENCHMARK: + + elif event.type == DATASOURCE_TYPE.BENCHMARK: self.algo.set_datetime(event.dt) bm_updated = True + + elif event.type == DATASOURCE_TYPE.CUSTOM: + self.update_universe(event) + updated = True + + elif event.type == DATASOURCE_TYPE.SPLIT: + self.algo.blotter.process_split(event) + # If we are instantly filling orders we process # them after handle_data(). if not self.algo.instant_fill: