Order Entry Service Gateway
For iLink3 there is a new Order Entry Service Gateway (OESGW) for customers to register administrative information.
The OESGW configuration information (i.e. market segments and IPs) can be obtained in the MSGW config file via an SFTP site (sftpng.cmegroup.com) and accessed via a CME Globex network direct connection. This SFTP site contains the configuration files for all environments. The SFTP site is a secure site that requires a user name and password for access.
There are some rules for Party Details Definition Request.
The main rules are:
- Party Detail Definitions are valid only for the week and must be resubmitted at the start of each week on Sunday.
- Modification and Deletion of existing Party Details Definition messages are not allowed.
- Any business message sent with an unknown or invalid tag 1505-PartyDetailsList RequestID will be rejected.
- There will be a limit of 2500 Party Detail Definition combinations allowed for each FirmID beyond which further submissions will be rejected.
Party Details
Party details consists of administrative information to facilitate business message processing.
Party Details Definition
Party Details Connector Configuration
CME iLink3 connectors can either register party details upon (re)start or use already pre-registered party details.
declared and registered party details can be mixed - in such case connector will register all party details which does not exist in registered list.
Declared Party Details
orderEntryService.declaredPartyDetails define list of party details which should be registered upon connector (re)start.
By default the registration of declaredPartyDetails happens once a week (or session reset).
If you have to change "party details" in the middle of session (i.e. within the week) and want to apply changes -
the special file registered-party-details.json should be deleted before (re)start.
This file is located in $EMBER_WORK/connectors/<CONNECTOR_NAME> folder.
See declared party details parameters here.
Registered Party Details
orderEntryService.registeredPartyDetails define list of party details which are already registered and should be used as is. It means that registeredPartyDetails already contain Party Details Request ID which can be used directly in order requests.
See registered party details parameters here.
Applying Party Details
Both declaredPartyDetails and registeredPartyDetails settings allows to specify several Party Details definitions.
While sending order the concrete definition can be specified via passing definition's key in 7210 order attribute.
If 7210 tag is omitted then default definition will be applied. The default definition can be explicitly set via defaultKey parameter.
If this parameter is not specified then first item in declaredPartyDetails array will be used as default.
Party Details Config
Example: cme-cgw-s10.conf
connectors {
CGW-S10: ${template.connector.cme.cgw} {
settings {
...
orderEntryService {
host = 69.50.112.152 # OESG primary host
backupHost = 69.50.112.153 # OESG backup host
defaultKey = "GENE" # default definition
declaredPartyDetails = [
{
key = "NICK"
requestType = PRE_REGISTERED
account = "DLTX"
operator = "nick"
orderHandling = ELECTRONIC
clearingAccountType = CUSTOMER
customerOrderCapacity = CTI_1
selfMatchPreventionId = 1234567
selfMatchPreventionInstruction = CANCEL_NEWEST
},
{
key = "GENE"
account = "DLTX"
operator = "gene"
clearingAccountType = FIRM
customerOrderCapacity = CTI_2
}
]
}
}
}
}
Declared Party Details Parameters
| Parameter | Default Value | Description |
|---|---|---|
| key | Party Details definition key. Required. | |
| requestType | PRE_REGISTERED | Defines the way how this definition will be applied. Allowed values: PRE_REGISTERED, ON_DEMAND |
| account | Customer account. Required. | |
| operator | This value represents the individual or team submitting the message and is subject to registration requirements and character limits as required by Rule 576. | |
| executingFirm | Executing firm. | |
| orderHandling | Defines source of original order. Allowed values: DESK, ELECTRONIC, VENDOR_PROVIDED_PLATFORM, SPONSORED_ACCESS, ALGO_ENGINE, OTHER | |
| clearingAccountType | Designates the account type to use for the order when submitted to clearing. Allowed values: FIRM, CUSTOMER. | |
| customerOrderCapacity | Capacity of customer placing the order. Allowed values: CTI_1, CTI_2, CTI_3, CTI_4 | |
| selfMatchPreventionInstruction | Used to act upon the outcome when a self-match is detected and an order is prevented from trading against another order with the same SelfMatchPreventionID. Allowed values: CANCEL_NEWEST, CANCEL_OLDEST | |
| selfMatchPreventionId | Identifies an order or trade that should not be matched to an opposite order or trade if both buy and sell orders for the same asset contain the same SelfMatchPreventionID and were submitted by the same firm. |
Registered Party Details Parameters
| Parameter | Default Value | Description |
|---|---|---|
| key | Party Details definition key. Required. | |
| requestId | Party Details Request ID. Required. |
Party Details Pre-Register Tool
The utility pre-register provided list of party details.
Usage: cme-cgw-party-details-registrar.bat --config-file <config-file> --config-key <config-key> --output-file <output-file>
set EMBER_INSTALL=C:/ember
set ARGS=--config-file %EMBER_HOME%/cgw-oesgw.conf --config-key CGW --output-file %EMBER_HOME%/registered-party-details.json
%EMBER_INSTALL%\lib\custom\tools\cme-cgw-party-details-registrar.bat %ARGS%
Config File
The config file defines connectivity for OESG.
Example: cgw-oesgw.conf
include required("oesgw-party-details.json")
CGW: ${template.connector.cme.oesgw.cgw} {
settings {
# how long to wait until task will be finished
awaitTimeout = 5m
host = 69.50.112.177 # OESG primary host
port = 41911
backupHost = 69.50.112.176 # OESG backup host
backupPort = 41911
session = "NWA"
firm = "NRD"
accessKey = "<ACCESS_KEY>"
secretKey = "<SECRET_KEY>"
senderId = NICK
senderLocationId = "ML,US"
partyDetails = ${declaredPartyDetails}
}
}
Party details definitions for registration can be prepared separately and included in OESG config file.
Example: oesgw-party-details.json
{
"declaredPartyDetails": [
{
"key": "NICK",
"requestType": "PRE_REGISTERED",
"account": "DLTX",
"operator": "nick",
"orderHandling": "ELECTRONIC",
"clearingAccountType": "CUSTOMER",
"customerOrderCapacity": "CTI_1",
"selfMatchPreventionId": 1234567,
"selfMatchPreventionInstruction": "CANCEL_NEWEST"
},
{
"key": "GENE",
"account": "DLTX",
"operator": "gene",
"clearingAccountType": "FIRM",
"customerOrderCapacity": "CTI_2"
}
]
}
Output File
The pre-register utility will generate the output file with structure like below:
{
"registeredPartyDetails": [
{
"key": "NICK",
"requestId": 100012345
},
{
"key": "GENE",
"requestId": 200067890
}
]
}
Pre-Register Settings
| Parameter | Default Value | Description |
|---|---|---|
| ➡️ OESGW & Session Settings | ||
| host | OESGW Primary Host | |
| port | Session Primary Port | |
| backupHost | OESGW Backup Host | |
| backupPort | Session Backup Port | |
| session | Session ID. | |
| firm | Firm ID. | |
| accessKey | AccessKeyID assigned to this session. | |
| secretKey | SecretKeyID assigned to this session. | |
| senderId | Default Operator ID. | |
| senderLocationId | US,MA | Default SenderLocationID - ISO identifier of the physical location of trader. |
| partyDetails | Party Details definitions to be registered. | |
| ➡️ Extra Settings | ||
| awaitTimeout | 5m | How long to wait until task will be finished. |
| log.logFile | null | Optional. If defined - CME messages will logged. |