Trading_engine.OrderImmutable orders and their legal state transitions.
type kind = | Market| Limit of Scalar.Price.t| Stop of Scalar.Price.t| Stop_limit of {trigger_price : Scalar.Price.t;limit_price : Scalar.Price.t;}type time_in_force = | Gtc| Ioc| Fok| Day of {venue_id : Id.Venue.t;calendar_id : Id.Venue_calendar.t;}| Gtd of Ptime.ttype request = private {instrument_id : Id.Instrument.t;side : side;quantity : Scalar.Quantity.t;kind : kind;time_in_force : time_in_force;origin : origin;}type t = private {id : Id.Order.t;request : request;created_event_id : Id.Event.t;updated_event_id : Id.Event.t;created_sequence : int64;created_at : Ptime.t;eligible_after_slice_sequence : int64;filled_quantity : Scalar.Quantity.t;filled_notional : Scalar.Money.t;trigger_state : trigger_state option;status : status;}val compatibility_time_in_force : kind -> time_in_forcePreserve the pre-v8 mapping: market orders are IOC and all other kinds are GTC.
val request :
instrument_id:Id.Instrument.t ->
side:side ->
quantity:Scalar.Quantity.t ->
kind:kind ->
origin:origin ->
(request, string) Stdlib.resultval request_v8 :
instrument_id:Id.Instrument.t ->
side:side ->
quantity:Scalar.Quantity.t ->
kind:kind ->
time_in_force:time_in_force ->
origin:origin ->
(request, string) Stdlib.resultval accept :
id:Id.Order.t ->
created_event_id:Id.Event.t ->
accepted_sequence:int64 ->
created_at:Ptime.t ->
eligible_after_slice_sequence:int64 ->
request ->
(t, string) Stdlib.resultval reject :
id:Id.Order.t ->
created_event_id:Id.Event.t ->
rejected_sequence:int64 ->
created_at:Ptime.t ->
eligible_after_slice_sequence:int64 ->
request ->
reason:string ->
(t, string) Stdlib.resultval remaining_quantity : t -> Scalar.Quantity.tval is_active : t -> boolval is_terminal : t -> boolval is_market : t -> boolval is_ioc : t -> boolval is_fok : t -> boolval is_dormant_stop : t -> boolval trigger :
t ->
updated_event_id:Id.Event.t ->
triggered_at:Ptime.t ->
triggered_slice_sequence:int64 ->
(t, string) Stdlib.resultval apply_fill :
t ->
quantity:Scalar.Quantity.t ->
notional:Scalar.Money.t ->
(t, string) Stdlib.resultval adjust_for_split :
t ->
updated_event_id:Id.Event.t ->
numerator:int64 ->
denominator:int64 ->
(t, string) Stdlib.resultval side_to_string : side -> stringval kind_to_string : kind -> stringval time_in_force_to_string : time_in_force -> stringval origin_to_string : origin -> stringval status_to_string : status -> stringval pp : Stdlib.Format.formatter -> t -> unit