Пример #1
0
        public async Task <Order> PlaceLimitGTCOrderAsync(
            Sides orderSide,
            string productId,
            decimal price,
            decimal size,
            Guid clientOrderId,
            OrderSelfTradePreventionFlags selfTradePreventionFlag = OrderSelfTradePreventionFlags.DecreaseAndCancel
            )
        {
            var orderRequest = new OrderRequest
            {
                OrderSide               = orderSide.GetString(),
                OrderType               = OrderTypes.Limit.GetString(),
                TimeInForceFlag         = LimitOrderTimeInForceFlags.GTC.GetString(),
                ProductId               = productId,
                Price                   = price,
                Size                    = size,
                SelfTradePreventionFlag = selfTradePreventionFlag.GetString(),
                ClientOrderId           = clientOrderId,
                PostOnly                = true
            };

            return(await Client.InvokeSecureRequestWithBody <OrderRequest, Order>(
                       CredentialsProvider,
                       HttpMethod.Post,
                       OrdersEndpoint,
                       orderRequest));
        }
        public static OrderSelfTradePreventionFlags FromString(this OrderSelfTradePreventionFlags flag, string flagText)
        {
            switch (flagText)
            {
            case "dc":
                return(OrderSelfTradePreventionFlags.DecreaseAndCancel);

            case "co":
                return(OrderSelfTradePreventionFlags.CancelOldest);

            case "cn":
                return(OrderSelfTradePreventionFlags.CancelNewest);

            case "cb":
                return(OrderSelfTradePreventionFlags.CancelBoth);

            default:
                throw new ArgumentException($"Unsupported OrderSelfTradePreventionFlag {flagText}");
            }
        }
        public static string GetString(this OrderSelfTradePreventionFlags flag)
        {
            switch (flag)
            {
            case OrderSelfTradePreventionFlags.DecreaseAndCancel:
                return("dc");

            case OrderSelfTradePreventionFlags.CancelOldest:
                return("co");

            case OrderSelfTradePreventionFlags.CancelNewest:
                return("cn");

            case OrderSelfTradePreventionFlags.CancelBoth:
                return("cb");

            default:
                throw new ArgumentException($"Unsupported OrderSelfTradePreventionFlag");
            }
        }