Class OrderBook<ExtraStateType>

Storage helper to store/track/manipulate the current state of an symbol's orderbook

Type Parameters

  • ExtraStateType = unknown

Constructors

Properties

lastUpdateTimestamp: number
maxDepth: number
shouldCheckTimestamps: boolean
symbol: string

Methods

  • throw error if current timestamp is older than last updated timestamp

    Parameters

    • timestamp: number

    Returns undefined | false

  • Private

    find index of level in book, using "price" property as primary key

    Parameters

    Returns number

    index of level in book, if found, else -1

  • get lowest sell order

    Parameters

    • Optional offset: number = 0

      offset from array centre (should be positive)

    Returns null | number

    lowest seller price

  • get highest buy order price

    Parameters

    • Optional offset: number = 0

      offset from array centre (should be positive)

    Returns null | number

    highest buyer price

  • get current bid/ask spread in basis points

    Parameters

    • Optional n: number = 0

      offset from centre of book

    Returns null | number

    spread between best bid & ask in basis points

  • get current bid/ask spread percentage

    Parameters

    • Optional n: number = 0

      offset from centre of book

    Returns null | number

    percentage spread between best bid & ask

  • Process orderbook delta change, either deleting, updating or inserting level data into the existing book. Price is used on each level to find existing index in tracked book state.

    Parameters

    • Optional deleteDelta: OrderBookLevelState<unknown>[] = []

      levels to delete

    • Optional upsertDelta: OrderBookLevelState<unknown>[] = []

      levels to update (will automatically insert if level does not exist)

    • Optional insertDelta: OrderBookLevelState<unknown>[] = []

      levels to insert

    • timestamp: number = ...

    Returns this

  • Process orderbook snapshot, replacing existing book in memory

    Parameters

    • data: OrderBookLevelState<ExtraStateType>[]

      current orderbook snapshot represented as array, where each child element is a level in the orderbook

    • timestamp: number = ...

    Returns this

  • Private

    replace item at index, mutating existing book store

    Parameters

    Returns this

  • Sort orderbook in memory, lowest price last, highest price first

    Returns this

  • Track last updated timestamp

    Parameters

    • timestamp: number = ...

    Returns this

  • Trim edges of orderbook to total target

    Parameters

    • Optional totalToTrim: number = 0
    • Optional shouldTrimTop: boolean

      if true, trim from array beginning (top = sells) else from array end (bottom = buys)

    Returns this

  • trim orderbook in place to max depth, evenly across both sides

    Returns this

Generated using TypeDoc