def test_can_cancel_all_orders(self): # Arrange strategy = TradingStrategy(order_id_tag='001') self.exec_engine.register_strategy(strategy) order1 = strategy.order_factory.stop(USDJPY_FXCM, OrderSide.BUY, Quantity(100000), Price(90.003, 3)) order2 = strategy.order_factory.stop(USDJPY_FXCM, OrderSide.BUY, Quantity(100000), Price(90.005, 3)) position_id = strategy.position_id_generator.generate() strategy.submit_order(order1, position_id) strategy.submit_order(order2, position_id) # Act strategy.cancel_all_orders() # Assert self.assertEqual(order1, strategy.orders()[order1.id]) self.assertEqual(order2, strategy.orders()[order2.id]) self.assertEqual(OrderState.CANCELLED, strategy.orders()[order1.id].state) self.assertEqual(OrderState.CANCELLED, strategy.orders()[order2.id].state) self.assertTrue(order1.id in strategy.orders_completed()) self.assertTrue(order2.id in strategy.orders_completed())
def test_cancel_all_orders(self): # Arrange strategy = TradingStrategy() strategy.register( trader_id=self.trader_id, portfolio=self.portfolio, msgbus=self.msgbus, cache=self.cache, clock=self.clock, logger=self.logger, ) order1 = strategy.order_factory.stop_market( USDJPY_SIM.id, OrderSide.BUY, Quantity.from_int(100000), Price.from_str("90.007"), ) order2 = strategy.order_factory.stop_market( USDJPY_SIM.id, OrderSide.BUY, Quantity.from_int(100000), Price.from_str("90.006"), ) strategy.submit_order(order1) self.exchange.process(0) strategy.submit_order(order2) self.exchange.process(0) # Act strategy.cancel_all_orders(USDJPY_SIM.id) self.exchange.process(0) # Assert assert order1 in self.cache.orders() assert order2 in self.cache.orders() assert self.cache.orders()[0].status == OrderStatus.CANCELED assert self.cache.orders()[1].status == OrderStatus.CANCELED assert order1 in self.cache.orders_completed() assert order2 in strategy.cache.orders_completed()
def test_cancel_all_orders(self): # Arrange strategy = TradingStrategy(order_id_tag="001") strategy.register_trader( TraderId("TESTER", "000"), clock=self.clock, uuid_factory=self.uuid_factory, logger=self.logger) self.exec_engine.register_strategy(strategy) order1 = strategy.order_factory.stop( USDJPY_FXCM, OrderSide.BUY, Quantity(100000), Price("90.003"), ) order2 = strategy.order_factory.stop( USDJPY_FXCM, OrderSide.BUY, Quantity(100000), Price("90.005"), ) strategy.submit_order(order1) strategy.submit_order(order2) # Act strategy.cancel_all_orders(USDJPY_FXCM) # Assert self.assertTrue(order1 in strategy.execution.orders()) self.assertTrue(order2 in strategy.execution.orders()) self.assertEqual(OrderState.CANCELLED, strategy.execution.orders()[0].state()) self.assertEqual(OrderState.CANCELLED, strategy.execution.orders()[1].state()) self.assertTrue(order1 in strategy.execution.orders_completed()) self.assertTrue(order2 in strategy.execution.orders_completed())