Exemplo n.º 1
0
 public void Clear()
 {
     ChartAsks.Clear();
     ChartBids.Clear();
     ChartAggregatedAsks.Clear();
     ChartAggregatedBids.Clear();
     Asks    = null;
     Bids    = null;
     TopAsks = null;
     TopBids = null;
 }
Exemplo n.º 2
0
        public void Update(List <OrderBookPriceLevel> asks, List <OrderBookPriceLevel> bids)
        {
            this.asks = asks.OrderByDescending(a => a.Price).ToList();
            this.bids = bids.OrderByDescending(b => b.Price).ToList();

            if (ChartAsks.Any())
            {
                UpdateChartValues(ChartAsks, asks, true);
            }
            else
            {
                ChartAsks = new ChartValues <OrderBookPriceLevel>(asks.OrderBy(a => a.Price));
            }

            if (ChartBids.Any())
            {
                UpdateChartValues(ChartBids, bids, false);
            }
            else
            {
                ChartBids = new ChartValues <OrderBookPriceLevel>(bids.OrderByDescending(b => b.Price));
            }

            var aggregatedAsks = GetAggregatedList(asks.OrderBy(a => a.Price).ToList());

            if (ChartAggregatedAsks.Any())
            {
                UpdateChartValues(ChartAggregatedAsks, aggregatedAsks, true);
            }
            else
            {
                ChartAggregatedAsks = new ChartValues <OrderBookPriceLevel>(aggregatedAsks.OrderBy(a => a.Price));
            }

            var aggregatedBids = GetAggregatedList(bids.OrderByDescending(a => a.Price).ToList());

            if (ChartAggregatedBids.Any())
            {
                UpdateChartValues(ChartAggregatedBids, aggregatedBids, false);
            }
            else
            {
                ChartAggregatedBids = new ChartValues <OrderBookPriceLevel>(aggregatedBids.OrderByDescending(b => b.Price));
            }

            OnPropertyChanged("TopAsks");
            OnPropertyChanged("TopBids");
        }