Cumulative Bid/Ask Depth
Install and import
npm install fintech-algorithmsimport { cumulativeDepth } from "fintech-algorithms/market-microstructure/market-depth-analytics/cumulative-bid-ask-depth";Signature
cumulativeDepth(bidsRaw, asksRaw, tickRaw)Running total of quantity available as you walk out from the touch on each side — the basis of every question about how much can be traded before price moves.
Parameters
| Name | Type | Notes |
|---|---|---|
bidsRaw | Level[] | Bid levels, best first. |
asksRaw | Level[] | Ask levels, best first. |
tickRaw | number | Tick size, used to express distance in ticks rather than currency. min: 0 |
Returns
{ bids, asks, total_bid_depth, total_ask_depth, … }
Cumulative depth per level on each side.
Errors
- When tick size is not positive, or a level has negative size — throws
Complexity: time O(levels),
space O(levels).
Worked example
executed Captured by running this function on the input its own test provides. Real output of real code — but not asserted against a published figure.
Input
[
{
"price": 99.99,
"quantity": 500
},
{
"price": 99.98,
"quantity": 800
},
{
"price": 99.97,
"quantity": 1200
}
]Showing 3 of 5 elements.
[
{
"price": 100.01,
"quantity": 300
},
{
"price": 100.02,
"quantity": 600
},
{
"price": 100.03,
"quantity": 1000
}
]Showing 3 of 5 elements.
0.01Call
cumulativeDepth(bidsRaw, asksRaw, tickRaw)Returns
object with 10 fields: model, best_bid, best_ask, tick_size, spread_ticks, bid_levels, ask_levels, total_bid_depth, …
{
"model": "visible-cumulative-depth",
"best_bid": 99.99,
"best_ask": 100.01,
"tick_size": 0.01,
"spread_ticks": 2,
"bid_levels": [
{
"price": 99.99,
"quantity": 500,
"distance_ticks": 0,
"cumulative_quantity": 500
},
{
"price": 99.98,
"quantity": 800,
"distance_ticks": 1,
"cumulative_quantity": 1300
},
{
"price": 99.97,
"quantity": 1200,
"distance_ticks": 2,
"cumulative_quantity": 2500
}
],
"ask_levels": [
{
"price": 100.01,
"quantity": 300,
"distance_ticks": 0,
"cumulative_quantity": 300
},
{
"price": 100.02,
"quantity": 600,
"distance_ticks": 1,
"cumulative_quantity": 900
},
{
"price": 100.03,
"quantity": 1000,
"distance_ticks": 2,
"cumulative_quantity": 1900
}
],
"total_bid_depth": 3600,
"total_ask_depth": 3300,
"state": "bid-deeper"
}Other exports
This module also exports
topNDepthImbalance, depthAtDistanceProfile, expectedFillPrice, sweepCostAndSlippage, liquidityWallConcentration, depthDepletionReplenishment, marketDepthHeatmap, calculate. Every module additionally exports run as an alias of its
primary function, and a meta object carrying its catalog id, domain, family,
shape and article URL.
Diagrams
How it works
This page states the contract — how to call it correctly. The article explains the concept: why it works, and where it breaks.
References
- NYSE Integrated Feed — New York Stock Exchange
- Nasdaq TotalView-ITCH 5.0 Specification — Nasdaq
- Evidence boundary