Module Trading_engine.Venue_calendar

Immutable venue-local session policies resolved outside the reducer.

type phase_kind =
  1. | Premarket
  2. | Opening_auction
  3. | Regular
  4. | Closing_auction
  5. | Postmarket
type phase = private {
  1. kind : phase_kind;
  2. opens_at : Ptime.t;
  3. closes_at : Ptime.t;
}
type session_kind =
  1. | Regular_session
  2. | Early_close
  3. | Holiday
type session = private {
  1. session_date : string;
  2. kind : session_kind;
  3. phases : phase list;
}
type t = private {
  1. id : Id.Venue_calendar.t;
  2. version : string;
  3. venue_id : Id.Venue.t;
  4. instrument_ids : Trading_engine.Id.Instrument.Set.t;
  5. sessions : session list;
}
val phase_kind_of_string : string -> (phase_kind, string) Stdlib.result
val phase_kind_to_string : phase_kind -> string
val session_kind_of_string : string -> (session_kind, string) Stdlib.result
val session_kind_to_string : session_kind -> string
val create_phase : kind:phase_kind -> opens_at:Ptime.t -> closes_at:Ptime.t -> (phase, string) Stdlib.result
val create_session : session_date:string -> kind:session_kind -> phases:phase list -> (session, string) Stdlib.result
val create : id:Id.Venue_calendar.t -> version:string -> venue_id:Id.Venue.t -> instrument_ids:Id.Instrument.t list -> sessions:session list -> (t, string) Stdlib.result
val session_on : t -> session_date:string -> (session, string) Stdlib.result

Return the explicit policy for session_date. Missing dates are errors and are never inferred from weekdays, holidays, or neighboring sessions.