public void PlaceLimitOrder_Test()
        {
            var orderParams = new LimitOrderParams
            {
                ClientOid = Guid.NewGuid().ToString(),
                Pair      = "ETH-BTC",
                Price     = 0.00002M,
                Side      = Side.BUY,
                Size      = 2
            };

            var orderId = _service.PlaceLimitOrder(orderParams).Result;

            Assert.NotNull(orderId);
        }
Пример #2
0
        /// <summary>
        /// Place a limit order
        /// </summary>
        /// <param name="parms">Limit Order Parameters</param>
        /// <returns>String of order id</returns>
        public static async Task <string> PlaceLimitOrder(this IKuCoinDotNet service, LimitOrderParams parms)
        {
            var body = new SortedDictionary <string, object>();

            if (parms.CancelAfter > 0)
            {
                body.Add("cancelAfter", parms.CancelAfter);
            }
            if (string.IsNullOrEmpty(parms.ClientOid))
            {
                parms.ClientOid = Guid.NewGuid().ToString();
            }
            body.Add("clientOid", parms.ClientOid);
            body.Add("symbol", parms.Pair);
            if (parms.PostOnly)
            {
                body.Add("postOnly", parms.PostOnly);
            }
            body.Add("price", parms.Price);
            if (!string.IsNullOrEmpty(parms.Remark))
            {
                body.Add("remark", parms.Remark);
            }
            if (parms.SelfTradeProtect != null)
            {
                body.Add("stp", parms.SelfTradeProtect.ToString());
            }
            body.Add("side", parms.Side.ToString().ToLower());
            body.Add("size", parms.Size);
            if (parms.TimeInForce != null)
            {
                body.Add("timeInForce", parms.TimeInForce);
            }
            body.Add("type", parms.Type.ToString().ToLower());

            return(await service.PlaceOrder(body));
        }