OrderStatusSet

This message changes the status of an existing Order or set of Orders in the engine.

Status is the status to which the specified Orders should be set or changed. Examples include Cancelling, Holding and Releasing orders.

The Orders that will have their status changed depends on the role and permissions of the user. For example, a Firm Supervisor could change the status for Orders for other users or users within their own firm and an Exchange Supervisor could change the status for Orders for any users or firms. This means that if a user has permission to cancel some, but not all orders, only some of the orders in a product group (such as market) will be cancelled.

The available options for specifying the orders are:

  • Id - the single Order will have its status changed. The other fields in the message are ignored.

  • Blotter - All orders in blotter will have their status changed.

  • Account - All orders for the account will have their status changed. This can be paired with a product grouping and/or firm/user as below.

  • Market Orders for the specified market have their status changed

  • InstrumentGroup Orders for the specified instrumentgroup have their status changed

  • Instrument Orders for the specified instrument have their status changed

  • InstrumentMarket Orders for the specified instrumentmarket have their status changed

  • Firm or User - All orders from the specified firm/user (and product group and account, if specified), will have their status changed. Either none or only one of Firm or User can be specified (none means all orders to which the user has access).

    More specifically, an order from a specified Firm or User will have it's status changed if:

{
	Account is blank or the Account matches the account code for each Order
	AND (
		Market, InstrumentGroup, Instrument, InstrumentMarket are all 0
		OR
		Any of Market, InstrumentGroup, Instrument, InstrumentMarket match the
		value in the Order. Note - only one product grouping can be specified.
	)
}

If nothing is specified, all Orders will have their status changed. The Orders changed are only those of which the User has permission to change the status.

Order Management Details

Metadata

  • Message Type: TransactionMessage
  • Message Number: 1003

Inherited fields

NameTypeSize (bytes)Description
MessageTypeInteger (unsigned)2The unique identifier of this message.
ClientIdInteger (unsigned)4The unique identifier of a session with the server, returned in a successful LoginReply message.
RequestIdInteger (unsigned)4Within each session each message must be uniquely identified by this field. It must be monotonically increasing for the duration of the session.

Fields

Permissions


Cancel Orders of Account

{ account: "test-account", status: OrderStatus.Cancelled }

Permission Checks

NameTypeSize (bytes)Description
OrderForeign key to Order8If the status is to be changed for a specific Order, this is the Id of the Order for which the status is to be set.
ClOrdIDString60If the status of a specific FIX Order is to be changed, this is the Client OrderId of the Order.
OrigClOrdIDString60If the status of a specific FIX Order is to be changed, this is the Client OrderId of the Order. [Currently this is the same as ClOrdID, one of these fields should be made redundant and removed].
OriginalAccountForeign key to Account8if not NULL, the Account of the order being changed must match this.
FirmForeign key to Firm8If the status is to be changed for Orders from a specific Firm only, this is the Id of the Firm.
UserForeign key to User8If the status is to be changed for Orders from a specific User only, this is the Id of the User.
AccountForeign key to Account8If the status is to be changed for Orders for a specific Account only, this is the Id of the Account.
MarketForeign key to Market8If the status is to be changed for Orders for a specific Market only, this is the Id of the Market.
InstrumentGroupForeign key to InstrumentGroup8If the status is to be changed for Orders for a specific InsrumentGroup only, this is the Id of the Instrument.
InstrumentForeign key to Instrument8If the status is to be changed for Orders for a specific Instrument only, this is the Id of the Instrument.
InstrumentMarketForeign key to InstrumentMarket8If the status is to be changed for Orders for a specific InstrumentMarket only, this is the Id of the InstrumentMarket.
BlotterForeign key to Blotter8If the status is to be changed for Orders that belong to a specific Blotter only, this is the Id of the Blotter.
StatusSet of OrderStatus4This is the mask of values to which the Status of the Orders will be set if this transaction is successful.
IsBulkCancelInteger (unsigned)1Set true if this message is for an order that is part of a bulk cancel set.
PermissionActionTableScopeIndex
EnterAccountInstance0
CancelOrderInstance0
ViewAccountInstance0

Test file: OrderStatusSet_Account


Cancel Orders of Firm

{ firm: "test-firm", status: OrderStatus.Cancelled }

Permission Checks

PermissionActionTableScopeIndex
CancelFirmInstance1
CancelOrderInstance0
ViewAccountInstance0

Test file: OrderStatusSet_Firm


Cancel Orders of Instrument

{ instrument: "test-instrument", status: OrderStatus.Cancelled }

Permission Checks

PermissionActionTableScopeIndex
CancelOrderInstance0
ViewAccountInstance0

Test file: OrderStatusSet_Instrument


Cancel Orders of InstrumentGroup

{ instrumentgroup: "test-group", status: OrderStatus.Cancelled }

Permission Checks

PermissionActionTableScopeIndex
CancelOrderInstance0
ViewAccountInstance0

Test file: OrderStatusSet_InstrumentGroup


Cancel Orders of InstrumentMarket

{ instrumentmarket: "test-im", status: OrderStatus.Cancelled }

Permission Checks

PermissionActionTableScopeIndex
CancelOrderInstance0
ViewAccountInstance0

Test file: OrderStatusSet_InstrumentMarket


Cancel specific order

{ order: 1, status: OrderStatus.Cancelled }

Permission Checks

PermissionActionTableScopeIndex
CancelOrderInstance0
ViewAccountInstance0

Test file: OrderStatusSet_Order