Module Algostream_domain_trades.Trade

type execution_type =
  1. | Maker
  2. | Taker
  3. | Self_trade
type trade = {
  1. id : Base.string;
  2. order_id : Base.string;
  3. symbol : Base.string;
  4. side : [ `Buy | `Sell ];
  5. quantity : Base.float;
  6. price : Base.float;
  7. timestamp : Timestamp.t;
  8. execution_type : execution_type;
  9. commission : Base.float;
  10. commission_asset : Base.string;
  11. exchange : Base.string;
  12. strategy_id : Base.string Base.option;
  13. counterparty_order_id : Base.string Base.option;
}
val stamp : Timestamp.t option -> Timestamp.t
val create_trade : ?ts:Timestamp.t -> id:Base.string -> order_id:Base.string -> symbol:Base.string -> side:[ `Buy | `Sell ] -> quantity:Base.float -> price:Base.float -> execution_type:execution_type -> commission:Base.float -> commission_asset:Base.string -> exchange:Base.string -> ?strategy_id:Base.string -> ?counterparty_order_id:Base.string -> unit -> trade
val gross_value : trade -> Base__Float.t
val net_value : trade -> Base__Float.t
val is_buy : trade -> bool
val is_sell : trade -> bool
val trade_pnl : trade -> reference_price:Base__Float.t -> Base__Float.t
val commission_rate : trade -> Base__Float.t
val effective_price : trade -> Base__Float.t
module Trade_aggregation : sig ... end