示例#1
0
        /// <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));
        }
示例#2
0
 /// <summary>
 /// Place a limit order
 /// </summary>
 /// <param name="coin"></param>
 /// <param name="quantity">Amount</param>
 /// <param name="price">Price</param>
 /// <param name="buy">True to buy, false to sell</param>
 /// <param name="baseCoin"></param>
 /// <returns>Result</returns>
 public virtual ExchangeOrderResult PlaceOrder(Coin baseCoin, Coin coin, decimal quantity, decimal?price, bool buy, Enumerations.OrderTypeEnum type = Enumerations.OrderTypeEnum.Market)
 {
     throw new NotImplementedException();
 }
示例#3
0
        public override ExchangeOrderResult PlaceOrder(Coin baseCoin, Coin coin, decimal quantity, decimal?price, bool buy, Enumerations.OrderTypeEnum type)
        {
            string symbol = NormalizeSymbol($"{baseCoin.Code}-{coin.Code}");
            JToken result = MakePrivateAPIRequest(buy ? "buy" : "sell", "currencyPair", symbol, "rate", price, "quantity", quantity);

            return(ParseOrder(result));
        }
示例#4
0
        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));
        }
示例#5
0
        public override ExchangeOrderResult PlaceOrder(Coin baseCoin, Coin coin, decimal quantity, decimal?price, bool buy, Enumerations.OrderTypeEnum type)
        {
            // No market or stop type orders available here, see https://bittrex.com/home/api
            string  symbol = NormalizeSymbol($"{baseCoin.Code}-{coin.Code}");
            string  url    = (buy ? "/market/buylimit" : "/market/selllimit") + "?market=" + symbol + "&quantity=" + quantity + "&rate=" + price;
            JObject obj    = MakeJsonRequest <JObject>(url, null, GetNoncePayload());

            CheckError(obj);
            string orderId = obj["result"]["uuid"].Value <string>();

            return(GetOrderDetails(orderId));
        }
示例#6
0
        private ExchangeOrderResult Sell(Coin baseCoin, Coin coin, decimal quantity, decimal?price, Enumerations.OrderTypeEnum type)
        {
            _logger.Info("");
            Log($"Placing SELL order for {baseCoin.Code}-{coin.Code}, quantity {quantity}, price {price}, type {type}");
            _logger.Info("");

            try
            {
                return(_exchangeApi.Simulated
                    ? SimulateOrderResult(baseCoin, coin, quantity, price, false, ExchangeAPIOrderResult.Pending)
                    : _exchangeApi.PlaceOrder(baseCoin, coin, quantity, price, false, type));
            }
            catch (Exception e)
            {
                _logger.Error(e);
                return(null);
            }
        }