Esempio n. 1
0
 private static string MakePairListString(WexPair[] pairlist)
 {
     if (pairlist == null)
     {
         return("");
     }
     return(string.Join(
                "-",
                pairlist.Select(x => WexPairHelper.ToString(x)).ToArray()
                ));
 }
Esempio n. 2
0
        /// <summary>
        /// Returns trade history.
        /// See https://github.com/wex-exchange/api-doc/blob/master/trade-api.md#TradeHistory
        /// </summary>
        /// <param name="from">Trade ID, from which the display starts</param>
        /// <param name="count">The number of trades for display</param>
        /// <param name="from_id">Trade ID, from which the display starts</param>
        /// <param name="end_id">Trade ID on which the display ends</param>
        /// <param name="order_asc">Sorting</param>
        /// <param name="since">The time to start the display</param>
        /// <param name="end">The time to end the display</param>
        /// <param name="pair">Pair to be displayed</param>
        public TradeHistoryAnswer TradeHistory(
            int?from       = null,
            int?count      = null,
            int?from_id    = null,
            int?end_id     = null,
            bool?order_asc = null,
            DateTime?since = null,
            DateTime?end   = null,
            WexPair pair   = WexPair.Unknown)
        {
            var args = new Dictionary <string, string>()
            {
                { "method", "TradeHistory" }
            };

            if (from != null)
            {
                args.Add("from", from.Value.ToString());
            }
            if (count != null)
            {
                args.Add("count", count.Value.ToString());
            }
            if (from_id != null)
            {
                args.Add("from_id", from_id.Value.ToString());
            }
            if (end_id != null)
            {
                args.Add("end_id", end_id.Value.ToString());
            }
            if (order_asc != null)
            {
                args.Add("order", (order_asc.Value ? "ASC" : "DESC"));
            }
            if (since != null)
            {
                args.Add("since", UnixTime.GetFromDateTime(since.Value).ToString());
            }
            if (end != null)
            {
                args.Add("end", UnixTime.GetFromDateTime(end.Value).ToString());
            }
            if (pair != WexPair.Unknown)
            {
                args.Add("pair", WexPairHelper.ToString(pair));
            }

            string query_answer = QueryExec(args);
            var    json_result  = ParseAnswer(query_answer);

            return(TradeHistoryAnswer.ReadFromJObject(json_result));
        }
Esempio n. 3
0
        //PRIVATE:

        static SortedSet <string> GetAddedPairs(List <string> resp_pairs)
        {
            SortedSet <string> added_pairs = new SortedSet <string>();

            foreach (string s_pair in resp_pairs)
            {
                WexPair wex_pair = WexPairHelper.FromString(s_pair);
                if (wex_pair == WexPair.Unknown)
                {
                    added_pairs.Add(s_pair.ToLowerInvariant());
                }
            }

            return(added_pairs);
        }
Esempio n. 4
0
        /// <summary>
        /// Returns the list of your active orders.
        /// See https://github.com/wex-exchange/api-doc/blob/master/trade-api.md#ActiveOrders
        /// </summary>
        /// <param name="pair">pair, default all pairs</param>
        public OrderList ActiveOrders(WexPair pair = WexPair.Unknown)
        {
            var args = new Dictionary <string, string>()
            {
                { "method", "ActiveOrders" }
            };

            if (pair != WexPair.Unknown)
            {
                args.Add("pair", WexPairHelper.ToString(pair));
            }

            string query_answer = QueryExec(args);
            var    json_result  = ParseAnswer(query_answer);

            return(OrderList.ReadFromJObject(json_result));
        }
Esempio n. 5
0
        public TradeAnswer Trade(WexPair pair, TradeType type, decimal rate, decimal amount)
        {
            var args = new NameValueDictionary
            {
                { "pair", WexPairHelper.ToString(pair) },
                { "type", TradeTypeHelper.ToString(type) },
                { "rate", DecimalToString(rate) },
                { "amount", DecimalToString(amount) }
            };
            var result = JObject.Parse(Query("Trade", args));

            if (result.Value <int>("success") == 0)
            {
                throw new WexApiException(result.Value <string>("error"));
            }
            return(TradeAnswer.ReadFromJObject(result["return"] as JObject));
        }
Esempio n. 6
0
        public static Trade ReadFromJObject(JObject o)
        {
            if (o == null)
            {
                return(null);
            }

            return(new Trade()
            {
                Pair = WexPairHelper.FromString(o.Value <string>("pair")),
                Type = TradeTypeHelper.FromString(o.Value <string>("type")),
                Amount = o.Value <decimal>("amount"),
                Rate = o.Value <decimal>("rate"),
                Timestamp = o.Value <UInt32>("timestamp"),
                IsYourOrder = (o.Value <int>("is_your_order") == 1),
                OrderId = o.Value <int>("order_id")
            });
        }
Esempio n. 7
0
        public static Order ReadFromJObject(JObject o)
        {
            if (o == null)
            {
                return(null);
            }

            return(new Order()
            {
                Pair = WexPairHelper.FromString(o.Value <string>("pair")),
                Type = TradeTypeHelper.FromString(o.Value <string>("type")),
                Amount = o.Value <decimal>("amount"),
                StartAmount = o.Value <decimal>("start_amount"),
                Rate = o.Value <decimal>("rate"),
                TimestampCreated = UnixTime.ConvertToDateTime(
                    o.Value <UInt32>("timestamp_created")),
                Status = o.Value <int>("status"),
            });
        }
Esempio n. 8
0
        public OrderList ActiveOrders(WexPair?pair = null)
        {
            var args = new NameValueDictionary();

            if (pair != null)
            {
                args.Add("pair", WexPairHelper.ToString(pair.Value));
            }

            var json = Query("ActiveOrders", args);

            if (json.Contains("\"no orders\""))
            {
                return(new OrderList());
            }

            var result = DeserializeBtceObject <OrderList>(json);

            return(result);
        }
Esempio n. 9
0
        /// <summary>
        /// The basic method that can be used for creating orders and trading on the exchange.
        /// See https://github.com/wex-exchange/api-doc/blob/master/trade-api.md#Trade
        /// </summary>
        /// <param name="pair">Pair</param>
        /// <param name="type">Order type: buy or sell</param>
        /// <param name="rate">The rate at which you need to buy/sell</param>
        /// <param name="amount">The amount you need to buy/sell</param>
        /// <param name="mode">Order mode</param>
        public TradeAnswer Trade(
            WexPair pair,
            TradeType type,
            decimal rate,
            decimal amount,
            TradeMode mode = TradeMode.Limit)
        {
            var args = new Dictionary <string, string>()
            {
                { "method", "Trade" },
                { "pair", WexPairHelper.ToString(pair) },
                { "type", TradeTypeHelper.ToString(type) },
                { "rate", DecimalToString(rate) },
                { "amount", DecimalToString(amount) },
                { "mode", TradeModeHelper.ToString(mode) }
            };
            string query_answer = QueryExec(args);
            var    json_result  = ParseAnswer(query_answer);

            return(TradeAnswer.ReadFromJObject(json_result));
        }
Esempio n. 10
0
        static SortedSet <string> GetDeletedPairs(IEnumerable <string> resp_pairs)
        {
            var our_pairs = WexPairHelper.GetAllPairs();

            foreach (string s_pair in resp_pairs)
            {
                WexPair wex_pair = WexPairHelper.FromString(s_pair);
                if (wex_pair != WexPair.Unknown)
                {
                    our_pairs.Remove(wex_pair);
                }
            }

            SortedSet <string> deleted_pairs = new SortedSet <string>();

            foreach (WexPair pair in our_pairs)
            {
                deleted_pairs.Add(WexPairHelper.ToString(pair));
            }
            return(deleted_pairs);
        }
Esempio n. 11
0
/*
 *      private static string QueryIgnoreInvalid(string method, IEnumerable<BtcePair> pairlist, Dictionary<string, string> args = null)
 *      {
 *          var newargs = new Dictionary<string,string> { {"ignore_invalid", "1"} };
 *              if (args != null)
 *              {
 *                      foreach (var arg in args)
 *                      {
 *                              newargs.Add(arg.Key, arg.Value);
 *                      }
 *              }
 *              return Query(method, pairlist, newargs);
 *      }
 */

        private static Dictionary <WexPair, T> ReadPairDict <T>(JObject o, Func <JContainer, T> valueReader)
        {
            return(o.OfType <JProperty>().Select(x => new KeyValuePair <WexPair, T>(WexPairHelper.FromString(x.Name), valueReader(x.Value as JContainer))).ToDictionary(x => x.Key, x => x.Value));
        }
Esempio n. 12
0
        public static decimal GetFee(WexPair pair)
        {
            string queryStr = string.Format(CultureInfo.InvariantCulture, WebApi.RootUrl + "/api/2/{0}/fee", WexPairHelper.ToString(pair));
            var    json     = WebApi.Query(queryStr);

            return(JObject.Parse(json).Value <decimal>("trade"));
        }
Esempio n. 13
0
        public static List <TradeInfo> GetTrades(WexPair pair)
        {
            string queryStr = string.Format(CultureInfo.InvariantCulture, WebApi.RootUrl + "/api/2/{0}/trades", WexPairHelper.ToString(pair));
            var    json     = WebApi.Query(queryStr);
            var    result   = JsonConvert.DeserializeObject <List <TradeInfo> >(json);

            return(result);
//            return JArray.Parse(json).OfType<JObject>().Select(TradeInfo.ReadFromJObject).ToList();
        }
Esempio n. 14
0
        public static Ticker GetTicker(WexPair pair)
        {
            string queryStr = string.Format(CultureInfo.InvariantCulture, WebApi.RootUrl + "/api/2/{0}/ticker", WexPairHelper.ToString(pair));
            var    json     = WebApi.Query(queryStr);

            return(Ticker.ReadFromJObject(JObject.Parse(json)["ticker"] as JObject));
        }
Esempio n. 15
0
        public static Depth GetDepth(WexPair pair)
        {
            string queryStr = string.Format(CultureInfo.InvariantCulture, WebApi.RootUrl + "/api/2/{0}/depth", WexPairHelper.ToString(pair));
            var    json     = WebApi.Query(queryStr);
            var    result   = JsonConvert.DeserializeObject <Depth>(json);

            return(result);

//            return Depth.ReadFromJObject(JObject.Parse(json));
        }