8.1 KiB
@hanzo/matching-engine › Globals › "Book" › Book
Class: Book
order book for keeping track of and settling orders
Hierarchy
- Book
Index
Constructors
Properties
Accessors
Methods
Object literals
Constructors
constructor
+ new Book(name: string): Book
Defined in Book.ts:129
order constructor
Parameters:
| Name | Type | Description |
|---|---|---|
name |
string | name of this book |
Returns: Book
Properties
Private _meanPrice
• _meanPrice: Decimal = new Decimal(0)
Defined in Book.ts:119
cached mean price, can only safely be taken after a settle
Private _orderBook
• _orderBook: OrderBookTree = new AVLTree<string, Decimal>(naturalOrderCollator.compare)
Defined in Book.ts:106
this keeps track of the current orderbook as a map of prices to volumes
activeOrders
• activeOrders: OrderMap = new Map<string, Order>()
Defined in Book.ts:129
this keeps track of all the orders so updating status and cancellation is easier
asks
• asks: OrderHeap = new FibonacciHeap(askComparator)
Defined in Book.ts:96
ask heap
bids
• bids: OrderHeap = new FibonacciHeap(bidComparator)
Defined in Book.ts:101
bid heap
id
• id: string = uuid.v4()
Defined in Book.ts:85
unique book id
name
• name: string
Defined in Book.ts:91
string identifier for book (generally something simple like the trading pair)
pendingOrderBook
• pendingOrderBook: OrderBookMap = new Map<string, Decimal>()
Defined in Book.ts:123
this is a list of pending orders that is merged into the existing orderbook on settle
Accessors
askSize
• get askSize(): number
Defined in Book.ts:144
get the number of asks, note cancelled but unsettled orders are only periodically removed
Returns: number
returns number of asks
bidSize
• get bidSize(): number
Defined in Book.ts:153
get the number of bids, note cancelled but unsettled orders are only periodically removed
Returns: number
returns number of bids
meanPrice
• get meanPrice(): Decimal
Defined in Book.ts:293
Returns: Decimal
orderBook
• get orderBook(): OrderBook
Defined in Book.ts:198
Returns: OrderBook
returns the current orderbook (readonly)
spread
• get spread(): Decimal
Defined in Book.ts:289
Returns: Decimal
return the spread between bid and asks or Infinity if less than 2 limit orders
Methods
addOrder
▸ addOrder(order: Order): boolean
Defined in Book.ts:220
Insert an order into the order book
Parameters:
| Name | Type | Description |
|---|---|---|
order |
Order | order to add or throw an error |
Returns: boolean
addToPendingOrderBook
▸ addToPendingOrderBook(price: Decimal, quantity: Decimal): void
Defined in Book.ts:207
modify the pending order book, skip 0s
Parameters:
| Name | Type | Description |
|---|---|---|
price |
Decimal | price to add the quantity to |
quantity |
Decimal | quantity to add to pending order book |
Returns: void
cancelOrder
▸ cancelOrder(order: Order): boolean
Defined in Book.ts:272
cancel an order if it exists
Parameters:
| Name | Type | Description |
|---|---|---|
order |
Order | order to cancel |
Returns: boolean
nearestAsk
▸ nearestAsk(): Order | undefined
Defined in Book.ts:160
Returns: Order | undefined
returns the nearest ask order
nearestBid
▸ nearestBid(): Order | undefined
Defined in Book.ts:179
Returns: Order | undefined
returns the nearest bid order
settle
▸ settle(): Trade[]
Defined in Book.ts:300
settle the order book by executing overlapping trades
Returns: Trade[]
start
▸ start(settleFn: function): ExecutionContext
Defined in Book.ts:493
start executing settle repeatedly, only run once
Parameters:
▪Default value settleFn: function= () => {}
function that executes with the return value of settle
Parameters:
| Name | Type |
|---|---|
b |
Book |
t |
Trade[] |
Returns: ExecutionContext
return an ExecutionContext with a stop function
Object literals
Private _renderedOrderBook
▪ _renderedOrderBook: object
Defined in Book.ts:111
this keeps track of the rendered orderbook
asks
• asks: never[] = []
Defined in Book.ts:113
bids
• bids: never[] = []
Defined in Book.ts:112