Module Trading_engine.Strategy_protocol

Versioned JSON Lines protocol for an out-of-process strategy.

val version : string
val max_message_bytes : int
type initialization = {
  1. scenario_contract_version : string;
  2. scenario_sha256 : string;
  3. metadata : Yojson.Safe.t;
  4. run_id : Id.Run.t;
  5. base_currency : string;
  6. initial_cash : (string * Scalar.Money.t) list;
  7. initial_portfolio : Initial_portfolio.t option;
  8. instruments : Instrument.t list;
  9. venue_calendars : Venue_calendar.t list;
  10. risk : Risk.t;
  11. execution_model : Execution_model.t;
  12. execution : Execution.t;
  13. financing : Financing.policy option;
  14. settlement : Settlement.policy option;
}
type identity = private {
  1. name : Id.Strategy.t;
  2. version : string option;
}
type response =
  1. | Ready of identity
  2. | Intents of Strategy.intent list
  3. | Stopped
  4. | Failed of string
type direction =
  1. | Engine_to_strategy
  2. | Strategy_to_engine
val protocol_version : initialization -> string
val initialize_message : sequence:int64 -> initialization -> Yojson.Safe.t
val event_message : ?protocol_version:string -> sequence:int64 -> Strategy.context -> Strategy.event -> Yojson.Safe.t
val shutdown_message_for : protocol_version:string -> sequence:int64 -> Yojson.Safe.t
val shutdown_message : sequence:int64 -> Yojson.Safe.t
val response_of_yojson : ?protocol_version:string -> expected_sequence:int64 -> Yojson.Safe.t -> (response, Diagnostic.t) Stdlib.result
val response_of_string : ?protocol_version:string -> expected_sequence:int64 -> string -> (response * Yojson.Safe.t, Diagnostic.t) Stdlib.result
val transcript_record : transcript_sequence:int64 -> direction:direction -> message:Yojson.Safe.t -> Yojson.Safe.t
val message_to_string : Yojson.Safe.t -> string