def test_serialize_and_deserialize_stop_limit_order_initialized_events( self): # Arrange options = { 'Price': '1.0005', 'Trigger': '1.0010', 'PostOnly': True, 'ReduceOnly': False, 'Hidden': False, } event = OrderInitialized( ClientOrderId("O-123456"), StrategyId("S", "001"), AUDUSD_SIM.id, OrderSide.SELL, OrderType.STOP_LIMIT, Quantity(100000), TimeInForce.DAY, uuid4(), UNIX_EPOCH, options=options, ) # Act serialized = self.serializer.serialize(event) deserialized = self.serializer.deserialize(serialized) # Assert self.assertEqual(deserialized, event) self.assertEqual(options, event.options)
def test_serialize_and_deserialize_stop_limit_order_initialized_events( self): # Arrange options = { "ExpireTime": None, "Price": "1.0005", "Trigger": "1.0010", "PostOnly": True, "ReduceOnly": False, "Hidden": False, } event = OrderInitialized( ClientOrderId("O-123456"), StrategyId("S-001"), AUDUSD_SIM.id, OrderSide.SELL, OrderType.STOP_LIMIT, Quantity(100000, precision=0), TimeInForce.DAY, uuid4(), 0, options=options, ) # Act serialized = self.serializer.serialize(event) deserialized = self.serializer.deserialize(serialized) # Assert assert deserialized == event assert deserialized.options == options
def test_serialize_and_deserialize_stop_market_order_initialized_events( self): # Arrange options = { "ExpireTime": None, "Price": "1.0005", "ReduceOnly": False, } event = OrderInitialized( ClientOrderId("O-123456"), StrategyId("S", "001"), AUDUSD_SIM.id, OrderSide.SELL, OrderType.STOP_MARKET, Quantity(100000), TimeInForce.DAY, uuid4(), 0, options=options, ) # Act serialized = self.serializer.serialize(event) deserialized = self.serializer.deserialize(serialized) # Assert assert deserialized == event assert deserialized.options == options
def test_serialize_and_deserialize_limit_order_initialized_events(self): # Arrange options = { "Price": "1.0010", "PostOnly": True, "ReduceOnly": True, "Hidden": False, } event = OrderInitialized( ClientOrderId("O-123456"), StrategyId("S", "001"), AUDUSD_SIM.id, OrderSide.SELL, OrderType.LIMIT, Quantity(100000), TimeInForce.DAY, uuid4(), 0, options=options, ) # Act serialized = self.serializer.serialize(event) deserialized = self.serializer.deserialize(serialized) # Assert self.assertEqual(deserialized, event) self.assertEqual(options, event.options)
def test_pack_and_unpack_market_orders(self): # Arrange order = self.order_factory.market( AUDUSD_SIM.id, OrderSide.BUY, Quantity(100000, precision=0), ) # Act packed = OrderInitialized.to_dict(order.last_event) unpacked = self.unpacker.unpack(packed) # Assert assert unpacked == order
def test_pack_and_unpack_limit_orders(self): # Arrange order = self.order_factory.limit( AUDUSD_SIM.id, OrderSide.BUY, Quantity(100000, precision=0), Price(1.00000, precision=5), TimeInForce.DAY, ) # Act packed = OrderInitialized.to_dict(order.last_event) unpacked = self.unpacker.unpack(packed) # Assert assert unpacked == order
def test_order_initialized(self): # Arrange uuid = uuid4() event = OrderInitialized( cl_ord_id=ClientOrderId("O-2020872378423"), strategy_id=StrategyId("SCALPER", "001"), symbol=Symbol("BTC/USDT", Exchange("BINANCE")), order_side=OrderSide.BUY, order_type=OrderType.LIMIT, quantity=Quantity("0.561000"), time_in_force=TimeInForce.DAY, event_id=uuid, event_timestamp=UNIX_EPOCH, options={"Price": "15200.10"} ) # Act # Assert self.assertEqual(f"OrderInitialized(cl_ord_id=O-2020872378423, strategy_id=SCALPER-001, event_id={uuid})", str(event)) self.assertEqual(f"OrderInitialized(cl_ord_id=O-2020872378423, strategy_id=SCALPER-001, event_id={uuid})", repr(event))
def test_serialize_and_deserialize_market_order_initialized_events(self): # Arrange event = OrderInitialized( ClientOrderId("O-123456"), StrategyId("S-001"), AUDUSD_SIM.id, OrderSide.SELL, OrderType.MARKET, Quantity(100000, precision=0), TimeInForce.FOK, uuid4(), 0, options={}, ) # Act serialized = self.serializer.serialize(event) deserialized = self.serializer.deserialize(serialized) # Assert assert deserialized == event
def test_pack_and_unpack_stop_market_orders_with_expire_time(self): # Arrange order = StopMarketOrder( ClientOrderId("O-123456"), StrategyId("S-001"), AUDUSD_SIM.id, OrderSide.BUY, Quantity(100000, precision=0), price=Price(1.00000, precision=5), time_in_force=TimeInForce.GTD, expire_time=UNIX_EPOCH, init_id=uuid4(), timestamp_ns=0, ) # Act packed = OrderInitialized.to_dict(order.last_event) unpacked = self.unpacker.unpack(packed) # Assert assert unpacked == order
def test_order_initialized(self): # Arrange uuid = uuid4() event = OrderInitialized( client_order_id=ClientOrderId("O-2020872378423"), strategy_id=StrategyId("SCALPER", "001"), instrument_id=InstrumentId(Symbol("BTC/USDT"), Venue("BINANCE")), order_side=OrderSide.BUY, order_type=OrderType.LIMIT, quantity=Quantity("0.561000"), time_in_force=TimeInForce.DAY, event_id=uuid, timestamp_ns=0, options={"Price": "15200.10"}, ) # Act # Assert assert ( f"OrderInitialized(client_order_id=O-2020872378423, strategy_id=SCALPER-001, event_id={uuid})" == str(event)) assert ( f"OrderInitialized(client_order_id=O-2020872378423, strategy_id=SCALPER-001, event_id={uuid})" == repr(event))
def test_serialize_and_deserialize_order_initialized_events(self): # Arrange options = {'Price': '1.0005'} event = OrderInitialized( ClientOrderId("O-123456"), StrategyId("S", "001"), AUDUSD_SIM.symbol, OrderSide.SELL, OrderType.STOP_MARKET, Quantity(100000), TimeInForce.DAY, uuid4(), UNIX_EPOCH, options=options, ) # Act serialized = self.serializer.serialize(event) deserialized = self.serializer.deserialize(serialized) # Assert self.assertEqual(deserialized, event) self.assertEqual(options, event.options)