internal void CanSerializeAndDeserialize_OrderPartiallyFilledEvents() { // Arrange var order = new StubOrderBuilder() .WithQuantity(Quantity.Create(100000)) .BuildStopLimitOrder(); var partiallyFilled = new OrderPartiallyFilled( AccountId.FromString("FXCM-02851908-DEMO"), order.Id, new ExecutionId("E123456"), new PositionIdBroker("P123456"), order.Symbol, order.OrderSide, Quantity.Create(order.Quantity / 2), Quantity.Create(order.Quantity / 2), Price.Create(2m, 1), Currency.USD, StubZonedDateTime.UnixEpoch(), Guid.NewGuid(), StubZonedDateTime.UnixEpoch()); // Act var packed = this.serializer.Serialize(partiallyFilled); var unpacked = (OrderPartiallyFilled)this.serializer.Deserialize(packed); // Assert Assert.Equal(partiallyFilled, unpacked); this.Output.WriteLine(Convert.ToBase64String(packed)); }
private void When(OrderPartiallyFilled @event) { this.executionIds.Add(@event.ExecutionId); this.PositionIdBroker = @event.PositionIdBroker; this.FilledQuantity = @event.FilledQuantity; this.AveragePrice = @event.AveragePrice; this.Slippage = this.CalculateSlippage(); }
private void OnMessage(OrderPartiallyFilled @event) { this.EventCount++; this.Logger.LogWarning(LogId.Trading, $"{Received}{Event} {@event}."); this.ProcessOrderEvent(@event); this.HandleOrderFillEvent(@event); this.SendToEventPublisher(@event); }
private void OnMessage(OrderPartiallyFilled @event) { this.ReceivedObjects.Add(@event); }
private void OnMessage(OrderPartiallyFilled @event) { this.SendToBus(@event); }