Esempio n. 1
0
        public BookEntry(double price, int count, double amount)
        {
            Price  = price;
            Count  = count;
            Amount = Math.Abs(amount);

            if (amount > 0)
            {
                Type = BookEntryType.Bid;
            }
            else if (amount < 0)
            {
                Type = BookEntryType.Ask;
            }
        }
Esempio n. 2
0
        public double GetBestPrice(BookEntryType type)
        {
            lock (book_lock)
            {
                if (type == BookEntryType.Ask)
                {
                    return(Asks.First().Key);
                }
                else if (type == BookEntryType.Bid)
                {
                    return(Bids.Last().Key);
                }
            }

            return(-1);
        }
Esempio n. 3
0
        public List <BookEntry> GetEntries(int count, BookEntryType type)
        {
            lock (book_lock)
            {
                if (type == BookEntryType.Ask)
                {
                    return(Asks.Take(count).Select(p => p.Value).ToList());
                }
                else if (type == BookEntryType.Bid)
                {
                    return(Bids.Skip(Bids.Count - count).Take(count).Select(p => p.Value).ToList());
                }
            }

            return(new List <BookEntry>());
        }
Esempio n. 4
0
        public double GetDepth(int count, BookEntryType type)
        {
            var entries = GetEntries(count, type);

            return(entries.Sum(p => p.Amount));
        }