/// <summary> /// 获取一次更新 /// </summary> /// <returns>是否有变动</returns> public static bool UpdateData() { try { string json = GetTableJson("https://api.eosnewyork.io"); if (json != string.Empty) { JObject root = JObject.Parse(json); //Debug.WriteLine(root.ToString()); var baseBalanceToken = root.SelectToken("$..base.balance"); var quoteBalanceToken = root.SelectToken("$..quote.balance"); //string baseBalance = Regex.Match(baseBalanceToken.ToString(), @"(?<RAM>\d+)", RegexOptions.IgnoreCase).Groups["RAM"].Value; //string quoteBalance = Regex.Match(quoteBalanceToken.ToString(), @"(?<EOS>[0-9]*\.[0-9]*)", RegexOptions.IgnoreCase).Groups["EOS"].Value; string baseBalance = baseBalanceToken.ToString().Split(" ".ToArray())[0]; string quoteBalance = quoteBalanceToken.ToString().Split(" ".ToArray())[0]; RAMDATA data = new RAMDATA(); data.BaseBalance = ulong.Parse(baseBalance); data.QuoteBalance = Double.Parse(quoteBalance); data.RAMPrice = data.QuoteBalance / data.BaseBalance * 1024; data.time = DateTime.Now; RAMDATA lastData = GetLastData(); if (lastData != null) { if (lastData.RAMPrice != data.RAMPrice) { Debug.WriteLine(data); m_ramDataList.Add(data); return(true); } } else { Debug.WriteLine(data); m_ramDataList.Add(data); return(true); } } return(false); } catch (System.Exception ex) { return(false); } }
public static RAMQUOTES GetQuotes() { RAMQUOTES quotes = new RAMQUOTES(); quotes.LastData = GetLastData(); var lastLastData = GetLastLastData(); if (lastLastData != null) { quotes.LastPercentageDouble = GetProportion(quotes.LastData.RAMPrice, lastLastData.RAMPrice); } //计算一分钟的涨跌幅 RAMDATA data = m_ramDataList.FindLast(a => Math.Abs((a.time - DateTime.Now).TotalSeconds) > 60); if (data != null) { quotes.OneMinPercentageDouble = GetProportion(quotes.LastData.RAMPrice, data.RAMPrice); } else { quotes.OneMinPercentageDouble = GetProportion(quotes.LastData.RAMPrice, GetFirstData().RAMPrice); } data = m_ramDataList.FindLast(a => Math.Abs((a.time - DateTime.Now).TotalSeconds) > 60 * 10); if (data != null) { quotes.TenMinPercentageDouble = GetProportion(quotes.LastData.RAMPrice, data.RAMPrice); } else { quotes.TenMinPercentageDouble = GetProportion(quotes.LastData.RAMPrice, GetFirstData().RAMPrice); } data = m_ramDataList.FindLast(a => Math.Abs((a.time - DateTime.Now).TotalSeconds) > 60 * 60); if (data != null) { quotes.OneHourPercentageDouble = GetProportion(quotes.LastData.RAMPrice, data.RAMPrice); } else { quotes.OneHourPercentageDouble = GetProportion(quotes.LastData.RAMPrice, GetFirstData().RAMPrice); } return(quotes); }