/// <summary> /// Place a limit order /// </summary> /// <param name="symbol">Symbol</param> /// <param name="quantity">Amount</param> /// <param name="price">Price</param> /// <param name="buy">True to buy, false to sell</param> /// <returns>Result</returns> public override ExchangeOrderResult PlaceOrder(Coin baseCoin, Coin coin, decimal quantity, decimal?price, bool buy, Enumerations.OrderTypeEnum type) { string symbol = NormalizeSymbol($"{coin.Code}-{baseCoin.Code}"); Dictionary <string, object> payload = new Dictionary <string, object> { { "nonce", CryptoUtility.UnixTimestampFromDateTimeSeconds(DateTime.UtcNow) }, { "type", type.ToString().ToLower() }, { "side", (buy ? "buy" : "sell") }, { "product_id", symbol }, { "price", price.GetValueOrDefault().ToString(CultureInfo.InvariantCulture) }, { "size", quantity.ToString(CultureInfo.InvariantCulture) } }; switch (type) { case Enumerations.OrderTypeEnum.Market: break; case Enumerations.OrderTypeEnum.Limit: payload.Add("time_in_force", "GTC"); break; case Enumerations.OrderTypeEnum.Stop: break; } JObject result = MakeJsonRequest <JObject>("/orders", null, payload, "POST"); return(ParseOrder(result)); }
public override ExchangeOrderResult PlaceOrder(Coin baseCoin, Coin coin, decimal quantity, decimal?price, bool buy, Enumerations.OrderTypeEnum type) { string symbol = NormalizeSymbol($"{baseCoin.Code}-{coin.Code}"); Dictionary <string, object> payload = GetNoncePayload(); payload["symbol"] = symbol; payload["side"] = (buy ? "BUY" : "SELL"); payload["type"] = type.ToString().ToUpper(); payload["quantity"] = quantity; payload["price"] = price; payload["timeInForce"] = "GTC"; JToken token = MakeJsonRequest <JToken>("/order", BaseUrlPrivate, payload, "POST"); CheckError(token); return(ParseOrder(token)); }