示例#1
0
 /// <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));
        }
示例#3
0
 /// <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);
 }