Example #1
0
        void btceModels_DepthUpdated(object sender, System.EventArgs e)
        {
            UiThread.UiDispatcher.Invoke(() =>
            {
                Asks = btceModels.MarketDepths[CurrentPair].Asks.OrderBy(a => a.Price).Take(20).OrderByDescending(a => a.Price).ToList();
                Bids = btceModels.MarketDepths[CurrentPair].Bids.OrderByDescending(a => a.Price).Take(20).ToList();

                AggregatedAsks = DepthHelper.GetAggregatedAskOrderList(btceModels.MarketDepths[CurrentPair].Asks, configuration.PairAggregatorIncrement[CurrentPair]).OrderByDescending(a => a.Price).ToList();
                AggregatedBids = DepthHelper.GetAggregatedBidOrderList(btceModels.MarketDepths[CurrentPair].Bids, configuration.PairAggregatorIncrement[CurrentPair]).OrderByDescending(a => a.Price).ToList();

                foreach (var order in btceModels.ActiveOrders.FindAll(a => a.Pair == CurrentPair && a.Type == TradeTypeEnum.Sell))
                {
                    var ask = Asks.Find(a => a.Price == order.Rate);
                    if (ask != null)
                    {
                        ask.ActiveOrder = string.Format("Sell {0}", order.Amount);
                    }
                }

                foreach (var order in btceModels.ActiveOrders.FindAll(a => a.Pair == CurrentPair && a.Type == TradeTypeEnum.Buy))
                {
                    var bid = Bids.Find(a => a.Price == order.Rate);
                    if (bid != null)
                    {
                        bid.ActiveOrder = string.Format("Buy {0}", order.Amount);
                    }
                }

                spread = Asks[Asks.Count - 1].Price - Bids[0].Price;
                OnPropertyChanged("Asks");
                OnPropertyChanged("Bids");
                OnPropertyChanged("AggregatedAsks");
                OnPropertyChanged("AggregatedBids");
                OnPropertyChanged("Spread");
            });
        }