IOrderBook
Interface for order book management.
Properties
public ValueTuple<decimal, decimal>? BestAsk { get; }
value = iOrderBook.BestAsk
Get best ask price and volume.
public ValueTuple<decimal, decimal>? BestBid { get; }
value = iOrderBook.BestBid
Get best bid price and volume.
public decimal TotalAskVolume { get; }
value = iOrderBook.TotalAskVolume
Total volume of all asks.
public decimal TotalBidVolume { get; }
value = iOrderBook.TotalBidVolume
Total volume of all bids.
Methods
public void AddQuote(EmulatorOrder order)
iOrderBook.AddQuote(order)
Add a quote to the order book.
- order
- Order or market quote to add. If TransactionId is default, it is treated as a market quote.
public void Clear(Sides side)
iOrderBook.Clear(side)
Clear all quotes for a specific side.
- side
- Side to clear.
public IEnumerable<OrderBookLevel> GetLevels(Sides side)
result = iOrderBook.GetLevels(side)
Get quotes for a side, ordered by price (best first).
- side
- Side to retrieve levels for.
public IEnumerable<EmulatorOrder> GetOrdersAtPrice(Sides side, decimal price)
result = iOrderBook.GetOrdersAtPrice(side, price)
Get all user orders at a specific price level.
- side
- Side to query.
- price
- Price level to query.
public decimal GetTotalVolume(Sides side)
result = iOrderBook.GetTotalVolume(side)
Get total volume for a side.
- side
- Side to get total volume for.
public decimal GetVolumeAtPrice(Sides side, decimal price)
result = iOrderBook.GetVolumeAtPrice(side, price)
Get volume at a specific price level.
- side
- Side to query.
- price
- Price level to query.
public bool HasLevel(Sides side, decimal price)
result = iOrderBook.HasLevel(side, price)
Check if there's a quote at the specified price.
- side
- Side to check.
- price
- Price level to check.
public IEnumerable<EmulatorOrder> RemoveLevel(Sides side, decimal price)
result = iOrderBook.RemoveLevel(side, price)
Remove entire level at price.
- side
- Side to remove level from.
- price
- Price level to remove.
Returns: Removed orders that were present at that level.
public bool RemoveQuote(long transactionId, Sides side, decimal price)
result = iOrderBook.RemoveQuote(transactionId, side, price)
Remove a quote from the order book.
- transactionId
- Transaction id of the order to remove.
- side
- Side (buy/sell) where the order is placed.
- price
- Price level of the order.
Returns: True if removed, false if not found.
public void SetSnapshot(IEnumerable<QuoteChange> bids, IEnumerable<QuoteChange> asks)
iOrderBook.SetSnapshot(bids, asks)
Set the order book from a snapshot (replaces all non-user quotes).
- bids
- Sequence of bid quote changes to set.
- asks
- Sequence of ask quote changes to set.
public QuoteChangeMessage ToMessage(DateTime localTime, DateTime serverTime)
result = iOrderBook.ToMessage(localTime, serverTime)
Create a QuoteChangeMessage from current state.
- localTime
- Local time to set on the generated message.
- serverTime
- Server time to set on the generated message.
public IEnumerable<EmulatorOrder> TrimToDepth(Sides side, int maxDepth)
result = iOrderBook.TrimToDepth(side, maxDepth)
Remove worst levels that exceed max depth.
- side
- Side to trim.
- maxDepth
- Maximum allowed depth to keep.
Returns: Removed orders from trimmed levels.
public void UpdateLevel(Sides side, decimal price, decimal volume)
iOrderBook.UpdateLevel(side, price, volume)
Update volume at a price level (for market quotes).
- side
- Side to update.
- price
- Price level to update.
- volume
- New market volume at the level.