Skip to main content

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.

info

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

ParameterDefault ValueDescription
keyParty Details definition key. Required.
requestTypePRE_REGISTEREDDefines the way how this definition will be applied. Allowed values: PRE_REGISTERED, ON_DEMAND
accountCustomer account. Required.
operatorThis value represents the individual or team submitting the message and is subject to registration requirements and character limits as required by Rule 576.
executingFirmExecuting firm.
orderHandlingDefines source of original order. Allowed values: DESK, ELECTRONIC, VENDOR_PROVIDED_PLATFORM, SPONSORED_ACCESS, ALGO_ENGINE, OTHER
clearingAccountTypeDesignates the account type to use for the order when submitted to clearing. Allowed values: FIRM, CUSTOMER.
customerOrderCapacityCapacity of customer placing the order. Allowed values: CTI_1, CTI_2, CTI_3, CTI_4
selfMatchPreventionInstructionUsed 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
selfMatchPreventionIdIdentifies 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

ParameterDefault ValueDescription
keyParty Details definition key. Required.
requestIdParty 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

ParameterDefault ValueDescription
➡️ OESGW & Session Settings
hostOESGW Primary Host
portSession Primary Port
backupHostOESGW Backup Host
backupPortSession Backup Port
sessionSession ID.
firmFirm ID.
accessKeyAccessKeyID assigned to this session.
secretKeySecretKeyID assigned to this session.
senderIdDefault Operator ID.
senderLocationIdUS,MADefault SenderLocationID - ISO identifier of the physical location of trader.
partyDetailsParty Details definitions to be registered.
➡️ Extra Settings
awaitTimeout5mHow long to wait until task will be finished.
log.logFilenullOptional. If defined - CME messages will logged.