Skip to content

[FIX] Order Entry session (prediction + perps) #424

Description

@TexasCoding

Scope

FIX Order Entry (OE) message flow for both products over the shared session engine.

Messages

  • Outbound: NewOrderSingle (35=D), OrderCancelRequest (35=F), OrderCancelReplaceRequest (35=G), OrderMassCancelRequest (35=q).
  • Inbound: ExecutionReport (35=8), OrderCancelReject (35=9), OrderMassCancelReport (35=r), BusinessMessageReject (35=j).

Work

  • Typed order vocabulary mapping to/from FIX: Side (54: BUY_YES/SELL_NO), OrdType (40: LIMIT), TimeInForce (59), SelfTradePreventionType (2964), ExecInst (POST_ONLY), OrderGroupID, MaxExecutionCost, AllocAccount.
  • Money/qty precision: DollarDecimal for prices, FixedPointCount for quantities. Perps: fixed-point dollars (≤6dp) + FixedPointCount (≤2dp) with UseDollars on; prediction: integer cents unless UseDollars.
  • NoPartyIDs/NoMiscFees/NoCollateralAmountChanges groups (depends on repeating-group support).
  • Typed send helpers on FixClient/MarginFixClient and typed inbound delivery (ExecutionReport stream / callback).

Acceptance

Golden round-trip fixtures for every OE message; state tests for order lifecycle (New → PartiallyFilled → Filled, Cancel, Replace, Reject) against the mock acceptor. ruff + mypy --strict clean.

Dependencies

Foundation #422; repeating-group support. Part of #402.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestperpsPerps / margin (perpetual futures) API

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions