Cancel multiple open orders at once on the zerohash CLOB
The OrderMassCancelRequest message (q) lets a participant cancel multiple open orders in a single request, scoped by instrument, account, or all open orders on the FIX session. The zerohash EP3 Platform responds with exactly one OrderMassCancelReport (r) per request, regardless of how many orders are affected. Individual order cancellations resulting from an accepted request are reported separately via ExecutionReport (8) messages with ExecType (150) = 4 (Canceled).
Mass Cancellation Scenarios
| Mass Cancel Type | MassCancelRequestType (530) | Required Filters |
|---|---|---|
| By instrument | 1 = Cancel Orders for a Security | Symbol (55) or SecurityID (48) + SecurityIDSource (22) |
| By account | 7 = Cancel All Orders | Account (1) |
| By account + ClOrdLinkID | 7 = Cancel All Orders | Account (1) and ClOrdLinkID (583) |
| All orders for the FIX session | 7 = Cancel All Orders | No filters required |
Message Fields
| Tag | Field Name | Required | Note |
|---|---|---|---|
| Standard Header | Yes | MsgType = q | |
| 1 | Account | - | Account reference, required if mass cancel is by account, or by account + ClOrdLinkID |
| 11 | ClOrdID | Yes | Unique, participant-created identifier for this request |
| 22 | SecurityIDSource | Conditional | Required if SecurityID (48) is provided. Only acceptable value is 8 (Exchange Symbol), even if security_id_source on the instrument is set to something else |
| 48 | SecurityID | Conditional | Instrument symbol, if canceling by symbol. Either SecurityID (48) or Symbol (55) is required when MassCancelRequestType (530) = 1. Required if SecurityIDSource (22) is provided |
| 55 | Symbol | Conditional | Instrument symbol, if canceling by symbol. Either SecurityID (48) or Symbol (55) is required when MassCancelRequestType (530) = 1 |
| 530 | MassCancelRequestType | Yes | 1 = Cancel orders for a security; 7 = Cancel all orders |
| 583 | ClOrdLinkID | - | Ties together a group of related orders (e.g., average execution price calculations, or waves of a program trade) |
| Standard Trailer | Yes |
Business Rules
- Canceling all orders by ClOrdLinkID (583) also requires Account (1), since ClOrdLinkID values aren't globally unique across accounts. If Account is omitted, the request is rejected via OrderMassCancelReport (r).
- Canceling orders for a security requires Symbol (55), or SecurityID (48) + SecurityIDSource (22). If neither is provided, the request is rejected via BusinessMessageReject (j), not an OrderMassCancelReport (r).
Example Message
Cancel all open orders on the FIX session:
8=FIXT.1.1 | 9=97 | 35=q | 49=SENDER | 56=TARGET | 34=101 | 52=20251216-19:29:50 |
11=New-Order-001 | 530=7 | 60=20251216-19:29:50 | 10=099