Files
2019-11-15 00:47:48 +00:00

8.1 KiB
Raw Permalink Blame History

@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

▸ (b: Book, t: Trade[]): void

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