private void CalcSellingVolume(ReceiveDataSocket receiveData) { if (receiveData != null) { double[][] asks = receiveData.tick.asks; for (var i = 0; i < asks.Length; i++) { BitDetailEntity bitEntity = new BitDetailEntity(); for (var j = 0; j < asks[i].Length; j++) { //价格 if (j == 0) { bitEntity.Price = decimal.Parse(asks[i][j].ToString()); } //成交量 else if (j == 1) { bitEntity.Number = asks[i][j]; } } asksList.Add(bitEntity); } } }
public virtual void Calc(ReceiveDataSocket receiveData) { CalcBuyVolume(receiveData); CalcSellingVolume(receiveData); AnalysisDepth(); if (forecastAmount > 0) { var dic = GetPairs(receiveData.ch); AnalysisBuyPrice(dic[CRRENCY_NAME]); string currencyName = dic.Keys.Contains(CRRENCY_NAME) ? dic[CRRENCY_NAME] : string.Empty; //当深度有变化才进行插入操作 if (!HuoBiContract.depthDic.Keys.Contains(currencyName)) { var bitTarget = new { CurrencyName = currencyName, ForecastAmount = forecastAmount, ServerReturnTime = receiveData.tick.ts, ForecastTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff") }; HuoBiContract.depthDic.Add(currencyName, forecastAmount); string json = JsonConvert.SerializeObject(bitTarget); //Trace.WriteLine(json); InsertToRedis(json, currencyName, receiveData.tick.ts); } else { decimal value = HuoBiContract.depthDic[currencyName]; if (value != forecastAmount) { var bitTarget = new { CurrencyName = currencyName, ForecastAmount = forecastAmount, ServerReturnTime = receiveData.tick.ts, ForecastTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss:fff") }; //更新 HuoBiContract.depthDic[currencyName] = forecastAmount; string json = JsonConvert.SerializeObject(bitTarget); //Trace.WriteLine(json); InsertToRedis(json, currencyName, receiveData.tick.ts); } } } }
public void ExecuteDetpthJob(ReceiveDataSocket receiveData) { lock (objDepthLock) { if (isDepthFlg) { isDepthFlg = false; try { var service = ServerLocation._iServiceProvider.Resolve <BitBaseService>(); service.Calc(receiveData); } catch (Exception ex) { LogManage.Job.Error($"ExecuteDetpthQueueJob执行报错:{ex}"); } finally { isDepthFlg = true; } } } }