From 5910e0f789bdcea6acb63f7eacada94aaab656f8 Mon Sep 17 00:00:00 2001 From: scottsanderson Date: Wed, 1 Aug 2012 17:45:52 -0400 Subject: [PATCH] tsc work --- zipline/gens/examples.py | 23 +++++++++++++++++------ zipline/gens/tradesimulation.py | 16 +++++++++++----- 2 files changed, 28 insertions(+), 11 deletions(-) diff --git a/zipline/gens/examples.py b/zipline/gens/examples.py index fb3d8827..d99da662 100644 --- a/zipline/gens/examples.py +++ b/zipline/gens/examples.py @@ -3,9 +3,13 @@ from datetime import datetime, timedelta from zipline.utils.factory import create_trading_environment from zipline.test_algorithms import TestAlgorithm -from zipline.gens.composites import SourceBundle, TransformBundle, date_sorted_sources, merged_transforms +from zipline.gens.composites import SourceBundle, TransformBundle, \ + date_sorted_sources, merged_transforms from zipline.gens.tradegens import SpecificEquityTrades from zipline.gens.transform import MovingAverage, Passthrough +from zipline.gens.tradesimulation import trade_simulation_client as tsc + +import zipline.protocol as zp if __name__ == "__main__": @@ -45,13 +49,20 @@ if __name__ == "__main__": sort_out = date_sorted_sources(source_bundles) passthrough = TransformBundle(Passthrough, (), {}) - mavg_price = TransformBundle(MovingAverage, (timedelta(minutes = 20), ['price', 'volume']), {}) + mavg_price = TransformBundle(MovingAverage, (timedelta(minutes = 20), ['price']), {}) tnfm_bundles = (passthrough, mavg_price) merge_out = merged_transforms(sort_out, tnfm_bundles) - for message in merge_out: - print "Event: \n", message.event - print "Transforms: \n", message.tnfms - +# for message in merge_out: +# print "Event: \n", message.event +# print "Transforms: \n", message.tnfms + algo = TestAlgorithm(2, 100, 100) + environment = create_trading_environment() + style = zp.SIMULATION_STYLE.PARTIAL_VOLUME + + client_out = tsc(merge_out, algo, environment, style) + + for message in client_out: + print message diff --git a/zipline/gens/tradesimulation.py b/zipline/gens/tradesimulation.py index 07bd48d6..76d7938e 100644 --- a/zipline/gens/tradesimulation.py +++ b/zipline/gens/tradesimulation.py @@ -1,6 +1,10 @@ +import logbook + from numbers import Integral -from zipline.gens import stateful_transform +from zipline import ndict + +from zipline.gens.transform import stateful_transform from zipline.finance.trading import TransactionSimulator from zipline.finance.performance import PerformanceTracker @@ -44,20 +48,22 @@ def trade_simulation_client(stream_in, algo, environment, sim_style): # Initialize txn_sim's dictionary of orders here so that we can # reference it from within the user's algorithm. + + import nose.tools; nose.tools.set_trace() sids = algo.get_sid_filter() open_orders = {} for sid in sids: - open_orders[sids] = [] + open_orders[sid] = [] # Closure to pass into the user's algo to allow placing orders # into the txn_sim's dict of open orders. def order(self, sid, amount): assert sid in sids, "Order on invalid sid: %i" % sid - order = zp.ndict({ + order = ndict({ 'dt' : self.current_dt, 'sid' : sid, - 'amount' : int(amount) + 'amount' : int(amount), 'filled' : 0 }) @@ -75,7 +81,7 @@ def trade_simulation_client(stream_in, algo, environment, sim_style): algo.set_order(order) # Provide a logbook logging interface to user code. - algo.set_logger(Logger("Algolog")) + algo.set_logger(logbook.Logger("Algolog")) # Call user-defined initialize method before we process any # events.