Module Trading_engine.Scenario

Strict replay scenario input contract.

type t = private {
  1. contract_version : string;
  2. metadata : Yojson.Safe.t;
  3. run_id : Id.Run.t;
  4. base_currency : string;
  5. initial_cash : (string * Scalar.Money.t) list;
  6. initial_portfolio : Initial_portfolio.t option;
  7. instruments : Instrument.t list;
  8. venue_calendars : Venue_calendar.t list;
  9. risk : Risk.t;
  10. execution_model : Execution_model.t;
  11. execution : Execution.t;
  12. financing : Financing.policy option;
  13. settlement : Settlement.policy option;
  14. max_internal_events : int;
  15. schedule : (int64 * Strategy.intent list) list;
  16. slices : Market_slice.t list;
}
type stream_header = private {
  1. contract_version : string;
  2. metadata : Yojson.Safe.t;
  3. run_id : Id.Run.t;
  4. base_currency : string;
  5. initial_cash : (string * Scalar.Money.t) list;
  6. initial_portfolio : Initial_portfolio.t option;
  7. instruments : Instrument.t list;
  8. venue_calendars : Venue_calendar.t list;
  9. risk : Risk.t;
  10. execution_model : Execution_model.t;
  11. execution : Execution.t;
  12. financing : Financing.policy option;
  13. settlement : Settlement.policy option;
  14. max_internal_events : int;
}
type stream_item = private {
  1. market_slice : Market_slice.t;
  2. intents : Strategy.intent list;
  3. action_ids : Trading_engine.Id.Corporate_action.Set.t;
}
val of_yojson : Yojson.Safe.t -> (t, Diagnostic.t) Stdlib.result
val of_string : string -> (t, Diagnostic.t) Stdlib.result
val read_file : string -> (t, Diagnostic.t) Stdlib.result
val intent_of_yojson : ?contract_version:string -> Yojson.Safe.t -> (Strategy.intent, Diagnostic.t) Stdlib.result
val stream_header_of_yojson : contract_version:string -> Yojson.Safe.t -> (stream_header, Diagnostic.t) Stdlib.result
val stream_item_of_yojson : stream_header -> previous:stream_item option -> Yojson.Safe.t -> (stream_item, Diagnostic.t) Stdlib.result