class TestTradingEngine(TestCase): def setUp(self): self.pubsub = MockRedis() self.config = PyConfig("test_config.ini") self.symbols = ['GOOG'] self.strategy = StrategyFactory.create_strategy( self.config.get(CONF_ANALYZER_SECTION, CONF_STRATEGY_NAME), self.symbols, self.config) self.strategy2 = StrategyFactory.create_strategy( self.config.get(CONF_ANALYZER_SECTION, CONF_STRATEGY_NAME), self.symbols, self.config.getSection(CONF_ANALYZER_SECTION)) def tearDown(self): pass def test_register_strategy(self): trading_engine = TradingEngine(self.pubsub, self.strategy) # lets check that the trading engine was setup correctly # for key in trading_engine.strategies: # event = trading_engine.strategies # for strategy in event.keys(): # self.assertEquals(self.strategy, strategy) # self.assertEquals(self.symbols, event[strategy]['symbols']) # self.assertEquals(0, event[strategy]['fail']) def test_consume_ticks(self): pass def test_consume_executed_order(self): pass def test_place_order(self): pass
def setUp(self): self.pubsub = MockRedis() self.config = PyConfig("test_config.ini") self.symbols = ['GOOG'] self.strategy = StrategyFactory.create_strategy( self.config.get(CONF_ANALYZER_SECTION, CONF_STRATEGY_NAME), self.symbols, self.config) self.strategy2 = StrategyFactory.create_strategy( self.config.get(CONF_ANALYZER_SECTION, CONF_STRATEGY_NAME), self.symbols, self.config.getSection(CONF_ANALYZER_SECTION))
class testPyConfig(unittest.TestCase): def setUp(self): self.config = PyConfig("test.ini") def tearDown(self): pass def testGetSession(self): keyValues = self.config.getSection("app_main") print(keyValues) self.assertNotEqual(0, len(keyValues)) if not keyValues['field3']: print("field3 is None") def testGetOption(self): option = self.config.get("log", "file") print(option) self.assertEqual("test.log", option)
redis_conn = StrictRedis(**config) engine = create_engine('sqlite://') session_factory = sessionmaker(bind=engine) Session = scoped_session(session_factory) session = Session() Base.metadata.create_all(engine) usd = Currency(name='Dollar', code='USD') nasdaq = Exchange(name='NASDAQ', currency=usd) stock_ebay = Stock(symbol='EBAY', exchange=nasdaq, ISIN='US2786421030', description='') owner = Owner(name='Lucky') broker = Broker(name='Cheap Broker') account = Account(owner=owner, broker=broker) pesos = Currency(name='Pesos', code='ARG') account.deposit(Money(amount=1000, currency=pesos)) config_file = "backtest_smaPortfolio.ini" config = PyConfig(config_file) strategy = StrategyFactory.create_strategy(config.get(CONF_ULTRAFINANCE_SECTION, CONF_STRATEGY_NAME), config.getSection(CONF_ULTRAFINANCE_SECTION)) th_tick_feeder = BackTesterThread(config, redis_conn, securities=[stock_ebay]) start = datetime.now() end = datetime.now() - timedelta(days=30) th_trading_engine = TradingEngineThread(redis_conn.pubsub(), securities=[stock_ebay], strategy=strategy) th_tick_feeder.start() th_trading_engine.start() Session.remove()
class TestTradingEngine(unittest.TestCase): def setUp(self): self.config = PyConfig() self.config.setSource("test_config.ini") self.symbols = ['GOOG'] self.strategy = StrategyFactory.create_strategy( self.config.get(CONF_ANALYZER_SECTION, CONF_STRATEGY_NAME), self.symbols, self.config) self.strategy2 = StrategyFactory.create_strategy( self.config.get(CONF_ANALYZER_SECTION, CONF_STRATEGY_NAME), self.symbols, self.config.getSection(CONF_ANALYZER_SECTION)) def tearDown(self): pass def test_stop(self): trading_engine = TradingEngine() self.assertFalse(trading_engine._stop) trading_engine.stop() self.assertTrue(trading_engine._stop) def test_register_strategy(self): trading_engine = TradingEngine() trading_engine.register(self.strategy) # lets check that the trading engine was setup correctly for key in trading_engine.subscribers.keys(): event = trading_engine.subscribers[key] for strategy in event.keys(): self.assertEquals(self.strategy, strategy) self.assertEquals(self.symbols, event[strategy]['symbols']) self.assertEquals(0, event[strategy]['fail']) def test_unregister_strategy(self): trading_engine = TradingEngine() trading_engine.register(self.strategy) self.assertEquals(len(trading_engine.strategies), 2) trading_engine.unregister(self.strategy) # since this was the only strategy check if events is empty self.assertEquals(len(trading_engine.strategies), 0) trading_engine.register(self.strategy) trading_engine.register(self.strategy2) self.assertEquals(len(trading_engine.strategies), 2) self.assertEquals(len(map(lambda vdict: vdict.keys(), trading_engine.strategies.values())[0]), 2) self.assertEquals(len(map(lambda vdict: vdict.keys(), trading_engine.strategies.values())[1]), 2) trading_engine.unregister(self.strategy) self.assertEquals(len(trading_engine.strategies.keys()), 2) self.assertEquals(len(map(lambda vdict: vdict.keys(), trading_engine.strategies.values())[0]), 1) self.assertEquals(len(map(lambda vdict: vdict.keys(), trading_engine.strategies.values())[1]), 1) def test_consume_ticks(self): pass def test_consume_executed_order(self): pass def test_place_order(self): pass
def setUp(self): self.config = PyConfig() self.config.setSource("test.ini")
Base.metadata.create_all(engine) usd = Currency(name='Dollar', code='USD') nasdaq = Exchange(name='NASDAQ', currency=usd) stock_ebay = Stock(symbol='EBAY', exchange=nasdaq, ISIN='US2786421030', description='') owner = Owner(name='Lucky') broker = Broker(name='Cheap Broker') account = Account(owner=owner, broker=broker) pesos = Currency(name='Pesos', code='ARG') account.deposit(Money(amount=1000, currency=pesos)) config_file = "backtest_smaPortfolio.ini" config = PyConfig(config_file) strategy = StrategyFactory.create_strategy( config.get(CONF_ULTRAFINANCE_SECTION, CONF_STRATEGY_NAME), config.getSection(CONF_ULTRAFINANCE_SECTION)) th_tick_feeder = TickFeederThread(config, redis_conn, securities=[stock_ebay]) start = datetime.now() end = datetime.now() - timedelta(days=30) th_trading_engine = TradingEngineThread(redis_conn.pubsub(), securities=[stock_ebay], strategy=strategy) th_tick_feeder.start()
def setUp(self): self.config = PyConfig("test.ini")