internal void CanSerializeAndDeserialize_OrderWorkingWithExpireTimeEvents()
        {
            // Arrange
            var order = new StubOrderBuilder()
                        .WithTimeInForce(TimeInForce.GTD)
                        .WithExpireTime(StubZonedDateTime.UnixEpoch() + Duration.FromMinutes(1))
                        .BuildStopMarketOrder();

            var working = new OrderWorking(
                AccountId.FromString("FXCM-02851908-DEMO"),
                order.Id,
                new OrderIdBroker("B" + order.Id.Value),
                order.Symbol,
                order.OrderSide,
                order.OrderType,
                order.Quantity,
                order.Price,
                order.TimeInForce,
                order.ExpireTime,
                StubZonedDateTime.UnixEpoch(),
                Guid.NewGuid(),
                StubZonedDateTime.UnixEpoch());

            // Act
            var packed   = this.serializer.Serialize(working);
            var unpacked = (OrderWorking)this.serializer.Deserialize(packed);

            // Assert
            Assert.Equal(working, unpacked);
            this.Output.WriteLine(Convert.ToBase64String(packed));
        }
Beispiel #2
0
        private void When(OrderWorking @event)
        {
            Debug.EqualTo(@event.Symbol, this.Symbol, nameof(@event.Symbol));
            Debug.EqualTo(@event.OrderSide, this.OrderSide, nameof(@event.OrderSide));
            Debug.EqualTo(@event.OrderType, this.OrderType, nameof(@event.OrderSide));
            Debug.EqualTo(@event.Quantity, this.Quantity, nameof(@event.OrderSide));
            Debug.EqualTo(@event.TimeInForce, this.TimeInForce, nameof(@event.TimeInForce));

            this.IdBroker = @event.OrderIdBroker;
            this.SetIsWorkingTrue();
        }
Beispiel #3
0
        private void OnMessage(OrderWorking @event)
        {
            this.EventCount++;
            this.Logger.LogInformation(LogId.Trading, $"{Received}{Event} {@event}.");

            var order = this.ProcessOrderEvent(@event);

            if (order != null)
            {
                this.ProcessModifyBuffer(order);

                if (this.GtdExpiryBackups && this.IsExpiredGtdOrder(order))
                {
                    // Creates a scheduled CancelOrder backup command for the expiry time
                    this.CreateGtdCancelBackup(order);
                }
            }

            this.SendToEventPublisher(@event);
        }
Beispiel #4
0
 private void OnMessage(OrderWorking @event)
 {
     this.ReceivedObjects.Add(@event);
 }
Beispiel #5
0
 private void OnMessage(OrderWorking @event)
 {
     this.SendToBus(@event);
 }