Exemple #1
0
        private void init()
        {
            data = new List <PriseData>();

            locker    = new Object();
            Trades_id = new List <string>();
            MaxData   = new PriseData();
            minPrice  = Decimal.MaxValue;
        }
Exemple #2
0
        public List <PriseData> data; // { get; set; }  = new List<PriseData>();

        /// <summary>
        /// Добавление данных в колекцию
        /// </summary>
        public void addTrade(Trade trade)
        {
            /*
             * lock (locker)
             * {
             *  if (trade.Id == "")
             *  {
             *      trade.Id = new_trade_num.ToString();
             *      //запоминаем id сделки
             *      Trades_id.Add(trade.Id);
             *  }
             *  else if (!isNewTrade(trade))
             *  {
             *      return;
             *  }
             * }
             */
            //дозаполняем накопленные цены
            PriseData pd;

            lock (locker)
            {
                pd = data.Find(x => x.Price == trade.Price);
            }
            if (pd == null)
            {
                pd       = new PriseData();
                pd.Price = trade.Price;
                lock (locker)
                {
                    data.Add(pd);
                }
            }
            pd.Add(trade);
            lock (locker)
            {
                if (MaxData.volume < pd.volume)
                {
                    MaxData = pd;
                }
                if (pd.Price > maxPrice)
                {
                    maxPrice = pd.Price;
                }
                if (pd.Price < minPrice)
                {
                    minPrice = pd.Price;
                }
                ClasterBody = maxPrice - minPrice;
            }
        }