public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var o = (JObject.Load(reader))["k"] as JObject; return(new CurrentKlineInfo() { OpenTime = JsTimeConverter.TimeFromMs(Convert.ToInt64(o["t"])), CloseTime = JsTimeConverter.TimeFromMs(Convert.ToInt64(o["T"])), Open = Convert.ToDecimal(o["o"]), High = Convert.ToDecimal(o["h"]), Low = Convert.ToDecimal(o["l"]), Close = Convert.ToDecimal(o["c"]), Volume = Convert.ToDecimal(o["v"]), QuoteVolume = Convert.ToDecimal(o["q"]), TradeNumber = Convert.ToInt32(o["n"]), BuyTakerVolume = Convert.ToDecimal(o["V"]), BuyTakerQuoteVolume = Convert.ToDecimal(o["Q"]), }); }
public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer) { var o = JArray.Load(reader); return(new HistoryKlineInfo() { OpenTime = JsTimeConverter.TimeFromMs(Convert.ToInt64(o[0])), Open = Convert.ToDecimal(o[1]), High = Convert.ToDecimal(o[2]), Low = Convert.ToDecimal(o[3]), Close = Convert.ToDecimal(o[4]), Volume = Convert.ToDecimal(o[5]), CloseTime = JsTimeConverter.TimeFromMs(Convert.ToInt64(o[6])), QuoteVolume = Convert.ToDecimal(o[7]), TradeNumber = Convert.ToInt32(o[8]), BuyTakerVolume = Convert.ToDecimal(o[9]), BuyTakerQuoteVolume = Convert.ToDecimal(o[10]), }); }
public static DateTime ConvertServerTime(string data) { var o = JsonConvert.DeserializeObject <JObject>(data); return(JsTimeConverter.TimeFromMs(Convert.ToInt64(o["serverTime"]))); }
public static async Task <T> InvokeHttpCall <T>( string args, InvokeMethod method, SecurityType token, string apiKey, string secretKey) { string endpoint = endpointBase + args; if (token == SecurityType.TRADE || token == SecurityType.USER_DATA) { endpoint += "&recvWindow=5000"; long timestamp = JsTimeConverter.TimeToMs(DateTime.UtcNow - _offset); endpoint += "×tamp=" + timestamp.ToString(); var signature = Crypto(endpoint, secretKey); endpoint += "&signature=" + signature; } if (_httpClient.DefaultRequestHeaders.Contains("X-MBX-APIKEY")) { _httpClient.DefaultRequestHeaders.Remove("X-MBX-APIKEY"); } if (token != SecurityType.NONE) { _httpClient.DefaultRequestHeaders.Add("X-MBX-APIKEY", apiKey); } HttpResponseMessage res; switch (method) { case InvokeMethod.GET: res = await _httpClient.GetAsync(endpoint); break; case InvokeMethod.DELETE: res = await _httpClient.DeleteAsync(endpoint); break; case InvokeMethod.POST: res = await _httpClient.PostAsync(endpoint, null); break; case InvokeMethod.PUT: res = await _httpClient.PutAsync(endpoint, null); break; default: res = null; break; } string data = await res.Content.ReadAsStringAsync(); if (!res.IsSuccessStatusCode) { throw new HttpRequestException(data); } return(ConvertHelper.DataConvert <T>(data)); }
string AppendPeriod(DateTime startTime, DateTime endTime) { return("&startTime=" + JsTimeConverter.TimeToMs(startTime).ToString() + "&endTime=" + JsTimeConverter.TimeToMs(endTime).ToString()); }