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; } }
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); }
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>()); }
public double GetDepth(int count, BookEntryType type) { var entries = GetEntries(count, type); return(entries.Sum(p => p.Amount)); }