Application level messages (Trading)
New order single
This message is used to submit a new order to the TraderEvolution servers. Give-up and order routing can be done on the application servers by having the administrator set up users and accounts to do so.
The application server will respond with either an Execution Report or a Reject (Session) message. A Reject message is only issued if the message fails session level validation, such as invalid tag values. If an order fails business validation, an Execution Report will be issued with an appropriate status and error text.
Standard Header
Y
MsgType = D
11
ClOrdID
Y
Client identifier of the order (Should be only integer numbers)
73
NoOrders
N
Optional. Used for closing position or adding SL/TP. If specified, must be the value of Order ID supplied by the server in the execution report
37
OrderID
N
OrderID
1
Account
Y
The trader account
21
HandlInst
Y
Set to 1, otherwise will cause rejection
55
Symbol
Y
Instrument name
100
ExDestination
N
Defines route identifier. Available values: Not specified or 100 – instrument is identified by message; 101 – instrument is identified by the tag set SecurityID(48) + ExDestination(100)
48
SecurityID
N
Tradable instrument ID. If set, then instrument search is performed by the specified ID instead of Symbol (55) field
200
MaturityMonthYear
N
Reserved. Required for Options: format CCYYMM
205
MaturityDay
N
Reserved. Required for Options
201
PutOrCall
N
Reserved. Required for Options
202
StrikePrice
N
Reserved. Required for Options
207
SecurityExchange
Y
Route name
54
Side
Y
Only 1 (buy) or 2 (sell) supported
60
TransactTime
Y
Time of this order. Time can be set in the past if OrdType(40)=Manual
38
OrderQty
N
Required: order amount. One of tags 38 or 152 must be used at a time
152
CashOrderQty
N
Order amount in cash (currency). One of tags 38 or 152 must be used at a time. For Market orders only. This value should be transmitted in USD, otherwise it will be converted to USD using the cross course
40
OrdType
Y
Varies by exchange. Types supported by application server: 0 – manual; 1 – market; 2 – limit; 3 – stop
16555
CrossPrice
N
Cross price. It can be used if OrdType(40)=Manual. If not set, that means the current cross price will be applied
20120
CommissionType
N
Commission type. It can be used if OrdType(40)=Manual. Possible values: 0 - apply commission from commission plan settings. Default value; 1 - commission plan settings are not applied
20119
SpreadType
N
Defines spread value that can be applied. It can be used if OrdType(40)=Manual. Possible values: 0 - place order without spread. Default value; 1 - place order considering spread plan settings; 2 - set spread value
20118
SpreadMeasure
N
Defines spread measure, if SpreadType(20119)=2. Can be used, if OrdType(40)=Manual and SpreadType(20119)=2. Possible values: 0 – ticks. Default value; 1 – price; 2 – basis points
20116
SpreadValue
N
Spread value. Can be used, if OrdType(40)=Manual and SpreadType(20119)=2
20117
ExecutionVenue
N
Execution venue. It can be used if OrdType(40)=Manual. If not set, that means the execution venue is not set for the route
20146
UserComment
N
Any useful information on the order
20161
OvernightExecution
N
Possible values are: 0 and 1.
If 1 the order can be placed and filled during overnight trading.
44
Price
N
Order price. For market orders price is indicative and not required
99
StopPx
N
Order price for stop orders. Note: Stop prices for Stop orders in Execution report will be reported in the Price (44) field
15
Currency
N
Not supported. Always in primary currency
117
QuoteID
N
Reserved
59
TimeInForce
N
Varies by exchange. Absence of this field indicates Day order. Types supported by application server: 0 – Day; 1 – Good Till Cancel (GTC); 3 – Immediate or cancel (IOC); 4 – Fill or Kill (FOK); 6 – Good Till Date (GTD)
432
ExpireDate
N
Reserved GTD orders
58
Text
N
User comment for order
583
ClOrdLinkID
N
OrderID. Cannot be used together with 73 and 37 tags for close orders
77
OpenClose
N
C for close orders (to add SL/TP or to close position)
20017
ProductType
N
Defines the product type. Available values: 0 – General; 1 – Intraday; 2 – Delivery
18205
SlPrice
N
Price for “Stop loss” order
18206
TpPrice
N
Price for “Take profit” order
Standard Trailer
Y
Note, that if you have specified an SL/TP price, you can modify this order (cancel, modify).
Open and Close indicator
The OpenClose field is used in for trades to indicate whether the trade is opening or closing (close position, add SL/TP to position or Order.
For close order OrderID tag must be the value TraderEvolution Order ID. For mutual close must be sent NoOrders of OrderID of all orders for mutual close.
Example Position Close:
8=FIX.4.4|9=172|35=D|34=18|49=alexm1|56=TEORDER|52=20131202-12:30:39.640|38=1000|40=1|11=11|21=1|55=EUR/USD|54=1|60=20131202-12:30:39.639|59=0|1=alexm1|207=LMAX|44=2|73=1|37=8415707|77=C|10=180|
Example Open Position:
8=FIX.4.4|9=145|35=D|34=5|49=alexm1|56=TEORDER|52=20131202-12:34:38.926|38=1000|40=1|11=13|21=1|55=EUR/USD|54=1|60=20131202-12:34:38.926|59=0|1=alexm1|207=LMAX|10=214|
SL/TP orders
If you need to set SL/TP orders, use Limit/Strop order (40=2 or 40=3) and NoOrders tag 73 with OrderID field 37 and ClOrdLinkID field 583 and Posiiton Effect 77=C for bounded order/position.
Example Adding TP for position:
8=FIX.4.4|9=177|35=D|34=2|49=alexm1|56=TEORDER|52=20131202-12:33:53.927|38=1000|40=2|11=12|21=1|55=EUR/USD|54=1|60=20131202-12:33:53.926|59=0|1=alexm1|207=LMAX|44=1.50000|73=1|37=8415673|77=C|10=1 73|
Order cancel/replace
The Order Cancel/Replace is sent by the client application to amend an order that has a working status. It may not be used to re-open an order by increasing the volume of a completed order. Part-filled orders may be amended, but not fully filled orders. Attempts to do so will result in a Cancel Reject with “no such order”.
If an Order Cancel/Replace is accepted by the business rules but rejected downstream (for example, if the exchange connection is disabled) the system will deliver an Execution Report for the pending state followed by a Cancel Reject.
Standard Header
Y
MsgType = G
37
OrderID
Y
Order ID
11
ClOrdID
Y
Unique identifier of replacement order (will be used in the Cancel Reject message if the replacement request is rejected)
1
Account
Y
User account field is required. But it is not validating, since you can’t change the account for the order
21
HandlInst
Y
Set to 1, otherwise will cause rejection
200
MaturityMonthYear
N
Optional: match original order if supplied
205
MaturityDay
N
Optional: match original order if supplied
201
PutOrCall
N
Optional: match original order if supplied
202
StrikePrice
N
Optional: match original order if supplied
207
SecurityExchange
N
Optional. If specified, then field is not validating, because you can’t change SecurityExchange for an already existing order
54
Side
Y
Must match original order
60
TransactTime
Y
Time this order request was initiated/released by the trader or trading system
38
OrderQty
Y
Must match original order
152
CashOrderQty
N
Not supported
40
OrdType
Y
Must match original order
44
Price
N
Optional: may specify new price
99
StopPx
N
Optional: may specify new stop price
59
TimeInForce
N
Optional. Supported only by specific Liquidity Providers. If tag is not specified, then the system will use Day as default
168
EffectiveTime
N
Not supported
432
ExpireDate
N
Optional: match original order if supplied
77
OpenClose
N
Optional: Must match original order
Standard Trailer
Y
Order cancel
The Order Cancel is sent by the client application to cancel all the remaining volume of a working order. To reduce the volume of an order, you should use Order Cancel/Replace.
Standard Header
Y
MsgType = F
37
OrderID
Y
ClOrdID of the order to cancel
11
ClOrdID
Y
Unique identifier of cancel request (will be used in the Cancel Reject message if the replacement request is rejected)
1
Account
Y
Required: User account
48
SecurityID
N
Optional
167
SecurityType
N
Ignored
200
MaturityMonthYear
N
Ignored
205
MaturityDay
N
Ignored
201
PutOrCall
N
Ignored
202
StrikePrice
N
Ignored
207
SecurityExchange
N
Ignored
54
Side
N
Must match original order
60
TransactTime
Y
Time this order request was initiated/released by the trader or trading system
38
OrderQty
N
Ignored
Standard Trailer
Y
Notes: The OrderID field is requred and the Cancel will be not processed without this field present. This value is an Order ID.
Execution report
The execution report message is sent by the server to your application for the following reasons:
Confirm receipt of a new order
Confirm changes or cancels to an existing order
Supply unsolicited order state changes
Relay fill information
Actual orders state (on login) or as response for Order Status request.
Reject new orders
The OrdStatus and ExecType fields are important for determining the sequence of events that took place. Some of these scenarios are discussed in further detail below.
Standard Header
Y
MsgType = 8 PossResend=Y for Request for Positions
37
OrderID
Y
Order identifier
198
SecondaryOrderID
N
Not supported
11
ClOrdID
N
Tag 11 you are receiving only with first message 150=A (pending new). For further work should be used server orderid (tag 37).
17
ExecID
N
Trade identifier assigned by sell-side
19
ExecRefID
N
Not supported
150
ExecType
Y
Not all states are supported.
39
OrdStatus
Y
Not all states are supported.
103
OrdRejReason
N
Not supported.
1
Account
N
User account
55
Symbol
Y
Instrument name
48
SecurityID
N
Tradable instrument ID
200
MaturityMonthYear
N
For Options: format CCYYMM
205
MaturityDay
N
For Options
201
PutOrCall
N
For Options
202
StrikePrice
N
For Options
207
SecurityExchange
N
Optional: TraderEvolution route name
54
Side
Y
1 (buy) or 2 (sell) only
38
OrderQty
N
Order volume
40
OrdType
N
As stated on the order
44
Price
N
As stated on the order
99
StopPx
N
As status on the order
59
TimeInForce
N
As stated on the order
432
ExpireDate
N
As stated on the order
32
LastQty
N
Trade amount bought/sold on this (last) fill.
60
TransactTime
N
Date of order execution
64
SettlDate
N
Date of settlement
31
LastPx
N
Price of this fill, zero for reversal
151
LeavesQty
Y
Volume still working
14
CumQty
Y
Volume filled so far
6
AvgPx
N
Decimal average price (accuracy limited)
21
HandlInst
N
Not returned (is set to 1 on order)
77
OpenClose
N
Indicate open or close
58
Text
N
Contains rejection reason text
527
SecondaryExecID
N
ID of open position
20017
ProductType
N
Defines the product type. Available values: 0 – General; 1 – Intraday; 2 – Delivery
20146
UserComment
N
Any useful information on the order
100
ExDestination
N
Defines route identifier
Standard Trailer
Y
ExecType I = Order Status used in execution report messages that were sent for update position/order status or as response on Order Status request.
Order status request
The order status request can be used to get the list of opened positions or active orders.
Note, that during startup (after Logon) the system sends the list of active orders automatically.
Standard Header
Y
MsgType=H
790
OrdStatusReqID
Y
55
Symbol
Y
TraderEvolution Instrument Name
11
ClOrdID
N
Unique identifier for Order as assigned by the buy-side. If specified, then will be used for searching the order.
54
Side
N
1 = Buy, 2 = Sell
37
OrderId
N
TraderEvolution OrderID
48
SecurityID
N
Tradable instrument ID. If set, then instrument search will be performed by this ID instead of Symbol (55)
790
OrdStatusReqID
N
20000
IntField
Y
1 = State of opened orders, 2 = State of opened positions
100
ExDestination
N
Defines route identifier. Possible values: • Not specified or 100 – instrument is identified from a message; • 101 – instrument is identified by the tag set SecurityID(48) + ExDestination(100)
1
Account
N
TraderEvolution account name
Standard Trailer
Y
Order cancel reject
The Order Cancel Reject is delivered by the server when a Cancel or Cancel/Replace is not accepted by the application server. If the server accepted the Cancel or Cancel/Replace but the trading system rejected it, then this message is preceded by an Execution Report for the pending status.
Standard Header
Y
MsgType = 9
37
OrderID
Y
Order ID
198
SecondaryOrderID
N
Not supported
11
ClOrdID
Y
As set in the Cancel or Cancel/Replace
41
OrigClOrdID
Y
ClOrdID which could not be cancelled
39
OrdStatus
Y
Current order status
1
Account
N
User account
60
TransactTime
N
Not supported
434
CxlRejResponseTo
Y
Either 1 (Cancel) or 2 (Cancel/Replace)
58
Text
N
Text description of rejection
354
EncodedTextLen
N
Not supported
355
EncodedText
N
Not supported
Standard Trailer
Y
Trade capture report request
Standard Header
Y
MsgType = AD
568
TradeRequestID
Y
Unique request id
569
TradeRequestType
Y
Must be 0
37
OrderID
N
Order ID
55
Symbol
N
Instrument Name
207
SecurityExchange
N
Route name
100
ExDestination
N
Defines how instrument will be identified on the server side. Possible values: • Not specified or 100 – instrument is identified from a message; • 101 – instrument is identified by the tag set SecurityID(48) + ExDestination(100)
48
SecurityID
N
Tradable instrument ID
580
NoDate
N
Must be 2. Range of dates (between NoDate1 and NoDate2)
75
TradeDate
Y
60
TransactTime
Y
Time the trade was created
Standard Trailer
Y
Trade capture report
Standard Header
Y
MsgType = AE
568
TradeReportID
Y
Unique report ID
569
TradeRequestID
C
ID of the request
912
LastRptRequested
N
Indicates that this is the last report which will be returned as a result of the request. N – not last, Y – last.
55
Symbol
Y
Instrument Name
207
SecurityExchange
Y
Route name
570
PreviouslyReported
N
Not supported.
32
LastQty
Y
Trade amount bought/sold on this (last) fill.
31
LastPx
Y
Trade Price
100
ExDestination
N
Defines route identifier
48
SecurityID
N
Tradeable instrument ID
75
TradeDate
Y
Not supported
60
TransactTime
Y
Time the trade was created
552
NoSides
Y
Number of sides
54
Side
Y
Order side. 1 - BUY; 2 - SELL
37
OrderID
Y
Unique order id
1
Account
Y
Account name
119
SettlCurrA
Y
LastPx*LastQty
198
Secondary
N
Counter Order ID
64
SettlDate
Y
date of trade settlement
Standard Trailer
Y
Close position
The Close position message is delivered by the server when a position is closed.
Standard Header
Y
MsgType = CP
7001
AccountID
Y
Account ID
60
TransactTime
Y
Time of transaction
44
Price
Y
Price of transaction
20026
SuperPositionId
Y
ID of superposition
20027
PositionId
Y
ID of position
7016
Commission
Y
Commission
Standard trailer
Y
Account operation
The Account operation message is delivered by the server when account operation is made.
Standard Header
Y
MsgType = AOP
1
Account
Y
Account name
7035
Amount
Y
Operation amount
15
Currency
Y
Operation currency
20021
AccountOperationId
Y
Account operation ID
20023
OperationType
Y
Account operation type. Possible values: 1 Trading, 2 Deposit, 3 Withdraw, 4 Brokerage, 5 Swap, 6 MinFeeAdjEquity, 7 Blocking, 8 Unblocking, 9 ManufacturedDividends, 10 Interest, 12 Adjustment, 13 Dividends, 14 Stock, 15 AccruedInterest, 16 Subscribe, 17 Transfer, 18 Spread, 19 Credit, 22 DeliveredForward, 23 FundTransfer, 24 DWT, 25 ValueAddedTax, 26 Exchange, 27 SecuritiesTransferTax, 28 SettlementFee, 29 InvestorProtectionLevy, 30 Delivery, 31 Maker, 32 Taker, 33 WithdrawalFee, 34 Markup, 35 PortfolioManagementFee, 36 PortfolioManagementMinFeeAdj, 40 ClearingVMtransfer, 41 Level1Charging, 42 Level2Charging, 43 Level3Charging, 44 DelayedCharging, 45 NewsCharging, 46 MamPerfomanceFee, 47 MamManagementFee, 48 Collateral, 88 InterestOnCash, 90 InterestOnMargin, 91 InterestOnMarginAndUnsettledCash, 92 InterestOnAvailableFunds, 93 InterestOnAvailableFundsPlusUnsettledCash, 94 OpenOptionPremium, 95 CloseOptionPremium, 96 TransferFee, 97 FixedFee, 98 Custodial, 99 ProductFee, 100 BalanceCredit, 101 BalanceDebit, 102 AccruedDividends, 103 DividendsTax, 104 PrimeBroker, 105 CloseTminus1OptionPremium, 106 Funding, 107 FundingMarkup, 108 WhiteLabel
60
TransactTime
Y
Time of transaction
20024
CreationDate
Y
Date/Time of creation
20025
ValueDate
Y
Date and time when account operation was valuated
20022
CounterAccountOperationId
N
ID of the counter-account operation, if required
Standard trailer
Y
Last updated