Module Trading_engine.Oms

Deterministic order-management state.

type t
type fill_outcome =
  1. | Applied of Order.t
  2. | Duplicate
val empty : t
val find : t -> Id.Order.t -> Order.t option
val orders : t -> Order.t list
val active_orders : t -> Order.t list
val active_for_instrument : t -> Id.Instrument.t -> Order.t list
val accept : t -> id:Id.Order.t -> created_event_id:Id.Event.t -> accepted_sequence:int64 -> created_at:Ptime.t -> eligible_after_slice_sequence:int64 -> Order.request -> (t * Order.t, string) Stdlib.result
val reject : t -> id:Id.Order.t -> created_event_id:Id.Event.t -> rejected_sequence:int64 -> created_at:Ptime.t -> eligible_after_slice_sequence:int64 -> Order.request -> reason:string -> (t * Order.t, string) Stdlib.result
val cancel : t -> Id.Order.t -> (t * Order.t, string) Stdlib.result
val trigger : t -> Id.Order.t -> updated_event_id:Id.Event.t -> triggered_at:Ptime.t -> triggered_slice_sequence:int64 -> (t * Order.t, string) Stdlib.result
val adjust_for_split : t -> instrument_id:Id.Instrument.t -> updated_event_ids:Id.Event.t list -> numerator:int64 -> denominator:int64 -> (t * Order.t list, string) Stdlib.result
val apply_fill : t -> Fill.t -> (t * fill_outcome, string) Stdlib.result