Ejemplo n.º 1
0
        public Task <LimitOrderResponse> PlaceLimitOrder(string figi,
                                                         PlaceLimitOrderPayload payload, string brokerAccountId = null,
                                                         CancellationToken cancellationToken = default)
        {
            var query = new Dictionary <string, string>
            {
                { "figi", figi }
            };

            if (!string.IsNullOrWhiteSpace(brokerAccountId))
            {
                query.Add("brokerAccountId", brokerAccountId);
            }


            return(_http.Post <LimitOrderResponse>($"orders/limit-order",
                                                   payload,
                                                   query,
                                                   cancellationToken: cancellationToken));
        }
        public async Task Should_place_limit_order()
        {
            var balanceSetResponse = await _sandboxService.SetCurrencyBalance(new SandboxSetCurrencyBalanceRequest
            {
                Balance  = 200,
                Currency = Currency.Usd
            });

            ValidateRestResponse(balanceSetResponse);

            var request = new PlaceLimitOrderPayload
            {
                Lots      = 1,
                Operation = OperationType.Buy,
                Price     = 180
            };

            var response = await _orderService.PlaceLimitOrder("BBG000D9D830", request);

            ValidateRestResponse(response);
            Assert.NotNull(response.Order);
            Assert.Equal(OrderStatus.Fill, response.Order.Status);
        }