public async Task <OrderResponse> PlaceLimitOrderAsync(
            OrderSide side,
            ProductType productPair,
            decimal size,
            decimal price,
            GoodTillTime cancelAfter,
            bool postOnly = true)
        {
            var newOrder = JsonConvert.SerializeObject(new Order
            {
                side         = side.ToString().ToLower(),
                product_id   = productPair.ToDasherizedUpper(),
                type         = OrderType.Limit.ToString().ToLower(),
                price        = price,
                size         = size,
                cancel_after = cancelAfter.ToString().ToLower(),
                post_only    = postOnly
            });

            var httpResponseMessage = await SendHttpRequestMessageAsync(HttpMethod.Post, authenticator, "/orders", newOrder);

            var contentBody = await httpClient.ReadAsStringAsync(httpResponseMessage).ConfigureAwait(false);

            var orderResponse = JsonConvert.DeserializeObject <OrderResponse>(contentBody);

            return(orderResponse);
        }
Exemple #2
0
        public async Task <OrderResponse> PlaceLimitOrderAsync(
            OrderSide side,
            ProductType productId,
            decimal size,
            decimal price,
            GoodTillTime cancelAfter,
            bool postOnly = true)
        {
            var order = new Order
            {
                Side        = side,
                ProductId   = productId,
                OrderType   = OrderType.Limit,
                Price       = price,
                Size        = size,
                TimeInForce = TimeInForce.Gtt,
                CancelAfter = cancelAfter,
                PostOnly    = postOnly
            };

            return(await PlaceOrderAsync(order));
        }
        Task <Order> IOrdersEndpoint.PlaceLimitOrderAsync(
            OrderSide side,
            string productId, decimal size, decimal limitPrice,
            GoodTillTime cancelAfter,
            bool postOnly,
            Guid?clientOid,
            CancellationToken cancellationToken)
        {
            var lo = new CreateLimitOrder
            {
                Side        = side,
                ProductId   = productId,
                Type        = OrderType.Limit,
                Price       = limitPrice,
                Size        = size,
                TimeInForce = TimeInForce.GoodTillTime,
                CancelAfter = cancelAfter,
                PostOnly    = postOnly,
                ClientOid   = clientOid
            };

            return(this.Orders.PlaceOrderAsync(lo, cancellationToken));
        }