diff --git a/zipline/algorithm.py b/zipline/algorithm.py index 30149ccd..fc7396fb 100644 --- a/zipline/algorithm.py +++ b/zipline/algorithm.py @@ -197,7 +197,9 @@ class TradingAlgorithm(object): self.event_manager = EventManager() if self.algoscript is not None: - exec_(self.algoscript, self.namespace) + filename = kwargs.pop('algo_filename', '') + code = compile(self.algoscript, filename, 'exec') + exec_(code, self.namespace) self._initialize = self.namespace.get('initialize') if 'handle_data' not in self.namespace: raise ValueError('You must define a handle_data function.') diff --git a/zipline/utils/cli.py b/zipline/utils/cli.py index 7af986e8..017b011f 100644 --- a/zipline/utils/cli.py +++ b/zipline/utils/cli.py @@ -187,7 +187,8 @@ def run_pipeline(print_algo=True, **kwargs): algo = zipline.TradingAlgorithm(script=algo_text, namespace=kwargs.get('namespace', {}), - capital_base=float(kwargs['capital_base'])) + capital_base=float(kwargs['capital_base']), + algo_filename=kwargs.get('algofile')) perf = algo.run(source)