com.apama.mlom
Event NewMultiLegOrder


Used to submit a complete multi-legged order enclosing one or more simple single-legged orders.

All subsequent operations and responses related to this order are keyed on orderId field.

Note that this event includes "symbol", "price", "side", "type" and "quantity" fields, which are all also present in the OrderLeg event. In general, a given service will expect these parameters to be specific either in the NewMultiLegOrder (and AmendMultiLegOrder) event *or* in the individual OrderLeg events, and the other version of the fields will be ignored. For example, an exchange-traded calendar spread order service might expect the symbol, price and quantity to be specified in terms of the spread instrument, in the NewMultiLegOrder event, whereas a basket order service would require these to be specified individually for each leg.

The "type" field is a possible exception to this convention, as it may be necessary to specify the type of individual legs ("MARKET", "LIMIT", etc.) as well as an overall type for the multi-legged order ("BASKET", "STRATEGY", etc.) The documentation for each service will specify the acceptable type values for the order and legs.

An OrderReceived event should be routed by the service as soon as it receives a NewMultiLegOrder event. The OrderReceived provides information on whether the service will be supplying leg updates only, order updates only, or both.
Member Summary
 stringorderId

Unique (within a correlator) identifier, supplied by the application or block.
 stringserviceId

Service identifier - the name of the service that should handle this order. A blank serviceId is shorthand for "any" (only recommended for example applications).
 stringtraderId

One of four identifiers for the entity placing the order. The exact meaning is service-specific.
 stringtraderSubId

One of four identifiers for the entity placing the order. The exact meaning is service-specific.
 stringmarketId

One of four identifiers for the entity placing the order. The exact meaning is service-specific.
 stringmarketSubId

One of four identifiers for the entity placing the order. The exact meaning is service-specific.
 stringusername

The username that placed the order. This will correspond to the dashboard user in Event Modeller or Dashboard Studio.
 stringsymbol

The symbol, stock code, bond, currency pair or other instrument to be traded by this order.
 floatprice

The price for this order. Unless specified otherwise by an extraParams value, this is assumed to be in the default currency, or the base currency for FX trades.
 stringside

The side for this order: "BUY", "SELL", "SELL SHORT", "BUY LONG", etc. Acceptable values are service-specific.
 stringtype

The order type for this order: "MARKET", "LIMIT", "STOP", etc. Acceptable values are service-specific.
 floatquantity

The quantity to be traded by this order. This may be an absolute number of shares, a number of lots, or some other service-specific representation. Some services will reject orders with non-integer quantities.
 sequence<com.apama.mlom.OrderLeg >legs

The set of legs to be associated with this order. The order of the legs may be meaningful to specific services.
 dictionary<string, string >extraParams

Extra parameters that do not map into any of the above.
 
Member Detail

extraParams

dictionary<string, string > extraParams
Extra parameters that do not map into any of the above.

Convention is that keys are in TitleCase, e.g. "StopPrice", "Account", etc. although other conventions may apply, particularly where extraParams keys are mapped directly to identifiers used by the underlying exchange.

legs

sequence<com.apama.mlom.OrderLeg > legs
The set of legs to be associated with this order. The order of the legs may be meaningful to specific services.

marketId

string marketId
One of four identifiers for the entity placing the order. The exact meaning is service-specific.

marketSubId

string marketSubId
One of four identifiers for the entity placing the order. The exact meaning is service-specific.

orderId

string orderId
Unique (within a correlator) identifier, supplied by the application or block.

You may use the GetID/ID request/response events from the com.apama.oms package to generate a unique identifier. This is a free form string and has no restriction on range other than uniqueness.

price

float price
The price for this order. Unless specified otherwise by an extraParams value, this is assumed to be in the default currency, or the base currency for FX trades.

quantity

float quantity
The quantity to be traded by this order. This may be an absolute number of shares, a number of lots, or some other service-specific representation. Some services will reject orders with non-integer quantities.

serviceId

string serviceId
Service identifier - the name of the service that should handle this order. A blank serviceId is shorthand for "any" (only recommended for example applications).

side

string side
The side for this order: "BUY", "SELL", "SELL SHORT", "BUY LONG", etc. Acceptable values are service-specific.

symbol

string symbol
The symbol, stock code, bond, currency pair or other instrument to be traded by this order.

traderId

string traderId
One of four identifiers for the entity placing the order. The exact meaning is service-specific.

traderSubId

string traderSubId
One of four identifiers for the entity placing the order. The exact meaning is service-specific.

type

string type
The order type for this order: "MARKET", "LIMIT", "STOP", etc. Acceptable values are service-specific.

username

string username
The username that placed the order. This will correspond to the dashboard user in Event Modeller or Dashboard Studio.