private static string MakePairListString(WexPair[] pairlist) { if (pairlist == null) { return(""); } return(string.Join( "-", pairlist.Select(x => WexPairHelper.ToString(x)).ToArray() )); }
/// <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)); }
//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); }
/// <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)); }
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)); }
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") }); }
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"), }); }
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); }
/// <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)); }
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); }
/* * 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)); }
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")); }
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(); }
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)); }
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)); }