Skip to main content

CME MSGW Trade Connector

Features

cme-msgwConnector Key
Instruments
OPTIONFUTURESYNTHETIC
Request Types
SUBMITCANCELREPLACE
Order Types
MARKETLIMITSTOPSTOP_LIMIT
Time In Force
DAYGTCIOCFOKGTD
Order ID Mapper
SEQUENCE
Order Status Request
Cancel On Disconnect
Commission
Post Only
Fast Cancel
Fast Replace

Notes

Common CME Connectors Settings

Symbology

SMD Column KeyRequiredDescription
cmeSymbolYesSecurityID (numeric)

Schedule

ParameterValue
Time ZoneAmerica/Chicago
Start DaySunday
Start Time16:00:00
End DayFriday
End Time16:00:00
Daily Session?No

Config sample

connectors {
CME-MCGW: ${template.connector.cme.msgw}{
settings {
host = "<PRIMARY_HOST>"
port = <PRIMARY_PORT>

backupHost = "<BACKUP_HOST>"
backupPort = <BACKUP_PORT>

session = "<SESSION_ID>"
firm = "<FIRM_ID>"

accessKey = "<ACCESS_KEY_ID>"
secretKey = "<SECRET_KEY_ID>"

senderId = "<OPERATOR_ID>"
senderLocationId = "ML,US" # default

orderEntryService {
host = "<OESG_PRIMARY_HOST>"
backupHost = "<OESG_BACKUP_HOST>"

declaredPartyDetails = [
{
account = "<ACCOUNT>"
operator = "<OPERATOR_ID>"
orderHandling = ELECTRONIC
clearingAccountType = FIRM # FIRM or CUSTOMER
customerOrderCapacity = CTI_1 # CTI_1, CTI_2, CTI_3, CTI_4
}
]
}
}
}
}

Multiple Connectors

To simplify manual connector configuration, leverage HOCON templating. This is especially helpful for managing multiple MSGW connectors. Since settings across different market segments are usually identical except for hosts, you can define common configurations just once within a template.

Configuration Example
template {
connector {
acme {
msgw: ${template.connector.cme.msgw} {
settings {
port = <PRIMARY_PORT>
backupPort = <BACKUP_PORT>

session = "<SESSION_ID>"
firm = "<FIRM_ID>"

accessKey = "<ACCESS_KEY_ID>"
secretKey = "<SECRET_KEY_ID>"

senderId = "<SENDER_ID>"
senderLocationId = "ML,US" # default

orderEntryService {
host = "<OESG_PRIMARY_HOST>"
backupHost = "<OESG_BACKUP_HOST>"

declaredPartyDetails = [
{
account = "<ACCOUNT>"
operator = "<OPERATOR_ID>"
orderHandling = ELECTRONIC
clearingAccountType = CUSTOMER
customerOrderCapacity = CTI_4
}
]
}
}
}
}
}
}

connectors {
# connector config for market segment 64
MSGW_64: ${template.connector.acme.msgw} { # use template above
settings {
host = "<PRIMARY_HOST_64>"
backupHost = "<BACKUP_HOST_64>"
}
}

# connector config for market segment 82
MSGW_82: ${template.connector.acme.msgw} { # use template above
settings {
host = "<PRIMARY_HOST_82>"
backupHost = "<BACKUP_HOST_82>"
}
}
}

Tools

Message Log To Json Converter

Converts CME binary logs (*.messages) to JSON format.
Usage: cme-msgw-log-to-json --log-dir <message-logs-dir> --output-dir <output-dir>

docker compose exec ember /opt/deltix/ember/lib/custom/tools/cme-msgw-log-to-json --log-dir /var/lib/emberwork/connectors/CME --output-dir /var/lib/emberwork

AuditLog Generator

AuditLog generator generates Audit Trail document from connector's logs.

ArgArg ShortRequiredDescription
--connector-cYesConnector ID
--session-sYesCME Session ID
--output-dir-oNoPath where logs will be generated. Default is $EMBER_WORK/audit
--start-date-bNoThe date from which files should be accepted. If omitted, the current date applies. Ignored when --files is specified. Format: yyyyMMdd
--end-date-eNoThe date until which files are accepted. If omitted, the current date applies. Ignored when --files is specified. Format: yyyyMMdd
--files-fNoList of files that should be converted.
--help-hNoPrint usage help.

Usage: cme-msgw-audit-log --connector <connector-id> --session <session-id> [--start-date <yyyyMMdd>] [--end-date <yyyyMMdd>] [--output-dir <output-dir>]

docker compose exec ember /opt/deltix/ember/lib/custom/tools/cme-msgw-audit-log --connector CGW-2X4 --session 2X4 --start-date 20250218 --end-date 20250227