Module Algostream_domain_market.Order_book

module Price_level : sig ... end
type side =
  1. | Bid
  2. | Ask
type order_book = {
  1. symbol : Base.string;
  2. timestamp : Timestamp.t;
  3. sequence : Base.int64;
  4. bids : Price_level.t Base.array;
  5. asks : Price_level.t Base.array;
}
val create_order_book : symbol:Base.string -> timestamp:Timestamp.t -> sequence:Base.int64 -> bids:Price_level.t Base.Array.t -> asks:Price_level.t Base.Array.t -> order_book
val best_bid : order_book -> Price_level.t option
val best_ask : order_book -> Price_level.t option
val spread : order_book -> Base__Float.t option
val mid_price : order_book -> Base__Float.t option
val spread_percentage : order_book -> Base__Float.t option
val total_bid_volume : order_book -> Base__Float.t
val total_ask_volume : order_book -> Base__Float.t
val imbalance : order_book -> Base__Float.t
val depth_at_price : order_book -> side:side -> price:Base.Float.t -> Base__Float.t
val weighted_mid_price : order_book -> Base__Float.t option
val is_valid_order_book : order_book -> Base.bool