/// <summary> /// Place a limit order trade asyncronously /// </summary> /// <param name="side">Buy or sell</param> /// <param name="pair">Trading pair</param> /// <param name="price">Trading price</param> /// <param name="size">Amount in trade</param> /// <param name="tif">Time in force (default = GTC)</param> /// <param name="tca">Cancel after (default = none)</param> /// <returns>OrderResponse object</returns> public async Task <OrderResponse> PlaceLimitOrderAsync(SIDE side, string pair, decimal price, decimal size, TimeInForce tif = TimeInForce.GTC, TradeCancelAfter tca = TradeCancelAfter.NONE) { return(await _repository.PlaceLimitOrder(side, pair, price, size, tif, tca)); }
/// <summary> /// Place a limit order trade /// </summary> /// <param name="side">Buy or sell</param> /// <param name="pair">Trading pair</param> /// <param name="price">Trading price</param> /// <param name="size">Amount in trade</param> /// <param name="tif">Time in force (default = GTC)</param> /// <param name="tca">Cancel after (default = none)</param> /// <returns>OrderResponse object</returns> public async Task <OrderResponse> PlaceLimitOrder(SIDE side, string pair, decimal price, decimal size, TimeInForce tif = TimeInForce.GTC, TradeCancelAfter tca = TradeCancelAfter.NONE) { var tradingPair = _helper.CreateDashedPair(pair); var tradeParams = new Dictionary <string, object>(); tradeParams.Add("product_id", tradingPair); tradeParams.Add("side", side.ToString().ToLower()); tradeParams.Add("type", TradeType.LIMIT.ToString().ToLower()); tradeParams.Add("price", price); tradeParams.Add("size", size); if (tif != TimeInForce.IOC && tif != TimeInForce.FOK) { tradeParams.Add("post_only", true); } tradeParams.Add("time_in_force", tif.ToString()); if (tca != TradeCancelAfter.NONE && tif == TimeInForce.GTT) { tradeParams.Add("cancel_after", tca.ToString().ToLower()); } return(await OnPlaceTrade(tradeParams)); }
/// <summary> /// Place a limit order trade /// </summary> /// <param name="side">Buy or sell</param> /// <param name="pair">Trading pair</param> /// <param name="price">Trading price</param> /// <param name="size">Amount in trade</param> /// <param name="tif">Time in force (default = GTC)</param> /// <param name="tca">Cancel after (default = none)</param> /// <returns>OrderResponse object</returns> public OrderResponse PlaceLimitOrder(SIDE side, string pair, decimal price, decimal size, TimeInForce tif = TimeInForce.GTC, TradeCancelAfter tca = TradeCancelAfter.NONE) { return(_repository.PlaceLimitOrder(side, pair, price, size, tif, tca).Result); }