Maker API Development Considerations
Development Considerations include the following:
FIX Version
This specification is based upon FIX 4.4 but includes some elements of FIX 5.0SP2 which has a richer set of tags to support FX Trading. A ready customized FIX Data Dictionary is available to download from the EBS Support Portal.
Where fields contain custom fields or elements of later versions of the FIX protocol these have been highlighted.
General Considerations
It is best practice to observe the following:
Before Logout issue a TestRequest to ensure no messages are missing.
Wait for a response to your Logout message before closing a connection.
Client Settings
For each client, the following settings will be configured. All settings are customizable per client pricing stream, please discuss with your Client Integration Manager if you have specific requirements.
Client Setting | Setting Description |
---|---|
Expected times of operation | The period in which Market Data is expected to be streamed. |
Quote type | Whether quotes are Firm or Non-Firm (configurable per Instrument). |
Time To Live (TTL) of LP Quotes | For stale quote management (configurable per instrument). |
Subscription Methodology | Dynamic Amounts – Each MD Snapshot contains the full set of price/amounts available per instrument. The Maker may dynamically determine the sizes of each MD Snapshot. This is the preferred method. Discrete Amounts – Quote sizes are pre-configured per instrument, a separate MDRequest is sent for each configured MDEntrySize. |
Execution Method | Sweepable – Taker orders may be executed against any number of sweepable bid/offers to reach the desired cumulative size. Bids/offers will be hit in order of descending attractiveness from TOB. Single Ticket – Takers order will be filled by a single Maker bid/offer which best meets the size and price constraints of the order. |
Additional Maker preferences regarding supported instruments and client entitlements may be set by the Maker in the EBS LPM Liquidity Provider Manager) web application.
EBS Configuration Settings
The following configuration settings are determined by EBS and communicated to all Market Makers:
Setting | Setting Description |
---|---|
FIX Heartbeat Interval | Interval in seconds at which heartbeats are expected. |
Deal timeout in milliseconds | Non-firm workflow: As an offset from order submission. Determines when a deal will be rejected if an execution report is received after this interval. |
List of supported instruments. |
|
Settlement Date Management
Market Data Requests will include a settlement date. When the value date rolls, EBS will unsubscribe to market data, and re-subscribe with a new value date. If you are not in agreement with the EBS-provided settlement date, then you should reject the Market Data subscription.
Settlement Date will be provided on all FX NewOrderSingle messages. Maker is expected to echo back this date on their ExecutionReports.
Request and Order IDs
Request/Order IDs are provided by EBS on the following requests:
Market Data Request (MDReqID)
New Order Single (ClOrdID)
Test Request (TestReqID)
All Request IDs are a maximum length of 40 ASCII characters (printable characters 32-126).
In addition the ExecID provided by Makers on the Execution Report should be no longer than 28 ASCII characters.
It is recommended you do not include the below characters in your ids:
! Exclamation Mark decimal 33
" Double Quote decimal 34
# Hash decimal 35
$ Dollar decimal 36
% Percentage decimal 37
& Ampersand decimal 38
' Single Quote decimal 39
( Open Bracket decimal 40
) Close Bracket decimal 41
* Asterisk decimal 42
, Comma decimal 44
: Colon decimal 58
= Equals Sign decimal 61
[ Left Square Bracket decimal 91
\ Backslash decimal 92
] Right Square Bracket decimal 93
^ Caret decimal 94
` Accent decimal 95
' Single Quote decimal 96
( Open Curly Bracket decimal 123
| Pipe decimal 124
} Close Curly Bracket decimal 125
~ Tilda decimal 126
Timestamps
EBS timestamps will be provided to millisecond granularity. It is recommended clients provide timestamps to millisecond granularity except for TransactTime(60) on ExecutionReport(35=8) messages where microseconds are preferred if possible.
SendingTime [52] is a standard field in the FIX header and should be populated by the FIX engine at the time the FIX message is transmitted.
Application level timestamp on select messages indicate when the business transaction represented by the message occurred. Application level timestamps will appear in TransactTime [60] in the following EBS Maker API messages:
FIX Message | Description |
---|---|
NewOrderSingle | Time the NOS to the Maker was created by the EBS system. |
ExecutionReport | Timestamp of the Deal as recorded in the Maker system. Applicable when ExecType=F [Trade]. |
DKTrade | Time the rejected Execution Report was processed by the EBS system. |
ExecutionAck | Time of confirmation by the EBS system. |
Message Rejection
There are two types of message rejections – rejections specific to the request and session level rejections.
A session level reject message can be sent by either side to indicate that it has received an invalid message. For example, a message missing a required field will be responded to with a session level reject.
Wherever possible application messages should be used to reject invalid requests.
Invalid Message | Rejection Message |
---|---|
Logon | Logout |
NewOrderSingle | ExecutionReport (ExecType = Rejected) |
Market Data Subscription Request | Market Data Request Reject |
How was your Client Systems Wiki Experience? Submit Feedback
Copyright © 2024 CME Group Inc. All rights reserved.