Пример #1
0
        private void UpdateBindDataBuyTradeData(string channel, Model.TradeModel latestData)
        {
            if (LatestIndex == null)
            {
                return;
            }

            string subResult = string.Format("{0} = {1} - {2}", Math.Round(double.Parse(latestData.Price) - double.Parse(LatestIndex.futureIndex), 2), latestData.Price, LatestIndex.futureIndex);

            if (channel.Contains(OKCoinEntities.OKCoinPeriod.ThisWeek))
            {
                ThisWeekSubResult = subResult;
                PeriodTradeDict[OKCoinEntities.OKCoinPeriod.ThisWeek] = latestData;
            }
            else if (channel.Contains(OKCoinEntities.OKCoinPeriod.NextWeek))
            {
                NextWeekSubResult = subResult;
                PeriodTradeDict[OKCoinEntities.OKCoinPeriod.NextWeek] = latestData;
            }
            else if (channel.Contains(OKCoinEntities.OKCoinPeriod.Quarter))
            {
                QuarterSubResult = subResult;
                PeriodTradeDict[OKCoinEntities.OKCoinPeriod.Quarter] = latestData;
            }
        }
Пример #2
0
        private void TradeDataMain(object obj)
        {
            var adapter = obj as OKCoinAdapter;

            if (adapter != null)
            {
                DateTime latestTime = DateTime.MinValue;
                string   msg        = null;

                while (true)
                {
                    if (adapter.MessageQueue != null && adapter.MessageQueue.Count > 0 && adapter.MessageQueue.TryDequeue(out msg) && OKCoinConfig.IsChannelData(msg))
                    {
                        try
                        {
                            var dataStr = OKCoinConfig.GetChannelData(msg);
                            var data    = Newtonsoft.Json.JsonConvert.DeserializeObject <string[][]>(dataStr);
                            if (data != null && data.Length > 0)
                            {
                                var item = data.Last();
                                Model.TradeModel tradeItem = new Model.TradeModel();
                                tradeItem.TradeID  = item[0];
                                tradeItem.Price    = item[1];
                                tradeItem.TradeQty = item[2];
                                tradeItem.Time     = item[3];
                                tradeItem.BSFlag   = item[4];
                                UpdateBindDataBuyTradeData(adapter.Channel, tradeItem);
                            }
                        }
                        catch (Exception ex)
                        {
                            App.Log.LogInfoFormat("TradeIndexModel.TradeDataMain Exception:{0}", ex.Message);
                        }
                    }
                    else
                    {
                        Thread.Sleep(100);
                    }
                }
            }
        }