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