roq-cme#
Links#
Purpose#
Maintain network connectivity with the CME exchange
Route exchange updates to connected clients
Route client requests to the relevant exchange accounts
Stream all messages to an event-log
Overview#
Products
Spot |
|
Futures |
✓ |
Options |
Market Data
Reference Data |
✓ |
Market Status |
✓ |
Top of Book |
✓ |
Market by Price (L2) |
✓ |
Market by Order (L3) |
✓ |
Trade Summary |
✓ |
Statistics |
✓ |
Order Management
Create |
✓ |
Modify |
✓ |
Cancel |
✓ |
Cancel All |
✓ |
Auto Cancellation |
Account Management
Positions |
|
Funds |
Data center located in: Chicago, US
Conda#
$ mamba install \
--channel https://roq-trading.com/conda/stable \
roq-cme
$ cp $CONDA_PREFIX/share/roq-cme/config.toml $CONFIG_FILE_PATH
# Then modify $CONFIG_FILE_PATH to match your specific configuration
$ roq-cme \
--name "cme" \
--config_file "$CONFIG_FILE_PATH" \
--client_listen_address "$UNIX_SOCKET_PATH" \
--service_listen_address "$TCP_LISTEN_PORT" \
--flagfile "$FLAG_FILE"
Config#
Flags#
$ roq-cme --help
|
An |
|
A list of channel id’s to subscribe to (as defined from the |
|
The local interface used to bridge the multicast feed. |
|
Buffer size required by each datagaram in the re-ordering buffer. |
|
The maximum number of datagrams that can be held in the re-ordering buffer. |
|
The CME assigned firm ID |
|
The CME assigned port (for the firm ID) |
|
AN ISO code for the location, e.g. “UK” |
|
A |
|
Comma-separated list of market segments, e.g. 70 |
|
Enables the processing of MarketByOrder (requires the MBOFD feed from CME) |
Environments#
There is no specific environment setup.
You need to download the MDP config.xml
and iLink MSGW_Config.xml
files.
These files are used to discover IP addresses for MDP multicast and iLink’s MSGW (market segment gateways).
The gateway flags --multicast_channel_ids
and --ilink_market_segment_ids
are used to
join multicast streams and connect to specific MSGW end-points.
The multicast addresses must be made available from a local network interface.
The actual IP address of that interface must be provided with the --multicast_local_interface
flag.
Market Data#
Event |
Stream |
Messages |
Comments |
---|---|---|---|
Incremental |
MDInstrumentDefinitionFuture54, MDInstrumentDefinitionOption55, MDInstrumentDefinitionSpread56, MDInstrumentDefinitionFixedIncome57, MDInstrumentDefinitionRepo58, MDInstrumentDefinitionFX63 |
||
Incremental |
SecurityStatus30, MDInstrumentDefinitionFuture54, MDInstrumentDefinitionOption55, MDInstrumentDefinitionSpread56, MDInstrumentDefinitionFixedIncome57, MDInstrumentDefinitionRepo58, MDInstrumentDefinitionFX63 |
||
Incremental |
MDIncrementalRefreshBook46 |
||
Incremental |
MDIncrementalRefreshBook46 |
||
Incremental |
MDIncrementalRefreshBook46, MDIncrementalRefreshOrderBook47 |
||
Incremental |
MDIncrementalRefreshTradeSummary48, MDIncrementalRefreshTradeSummaryLongQty65 |
||
Incremental |
MDIncrementalRefreshDailyStatistics49, MDIncrementalRefreshSessionStatistics51, MDIncrementalRefreshSessionStatisticsLongQty67, MDIncrementalRefreshVolume37 |
Event |
Stream |
Messages |
Comments |
---|---|---|---|
Instrument Definition |
MDInstrumentDefinitionFuture54, MDInstrumentDefinitionOption55, MDInstrumentDefinitionSpread56, MDInstrumentDefinitionFixedIncome57, MDInstrumentDefinitionRepo58, MDInstrumentDefinitionFX63 |
||
Instrument Definition |
MDInstrumentDefinitionFuture54, MDInstrumentDefinitionOption55 |
||
MBP Market Recovery |
SnapshotFullRefresh52, SnapshotFullRefreshLongQty69 |
||
MBO Market Recovery |
SnapshotFullRefreshOrderBook53 |
||
Statistics#
TBD
Order Management#
Event |
Stream |
Messages |
Comments |
---|---|---|---|
OrderEntry |
ExecutionReportTradeOutright525, ExecutionReportTradeSpread526, ExecutionReportTradeSpreadLeg527 |
||
OrderEntry |
ExecutionReportTradeOutright525, ExecutionReportTradeSpread526, ExecutionReportTradeSpreadLeg527 |
Event |
Stream |
Messages |
Comments |
---|---|---|---|
OrderEntry |
ExecutionReportStatus532 |
||
Unavailable |
Event |
Stream |
Messages |
Comments |
---|---|---|---|
OrderEntry |
NewOrderSingle514 |
||
OrderEntry |
OrderCancelReplaceRequest515 |
||
OrderEntry |
OrderCancelRequest516 |
||
OrderEntry |
OrderMassActionRequest529 |
Event |
Stream |
Messages |
Comments |
---|---|---|---|
OrderUpdate |
ExecutionReportNew522, ExecutionReportReject523, ExecutionReportModify531, ExecutionReportCancel534, BusinessReject521 |
Order Types#
Type |
Comments |
---|---|
|
Mapped to |
|
Mapped to |
Time in Force#
Type |
Comments |
---|---|
|
Mapped to |
|
Mapped to |
|
Mapped to |
|
Mapped to |
Position Effect#
Note
Not supported
Execution Instructions#
Note
Not supported
Templates#
Note
Not supported
Account Management#
Event |
Stream |
Messages |
Comments |
---|---|---|---|
Unavailable |
|||
Unavailable |
Event |
Stream |
Messages |
Comments |
---|---|---|---|
Unavailable |
|||
Unavailable |
Streams#
Type |
Comments |
---|---|
UDP |
Primary purpose
|
Type |
Comments |
---|---|
UDP |
Primary purpose
|
Type |
Comments |
---|---|
UDP |
Primary purpose
|
Type |
Comments |
---|---|
UDP |
Primary purpose
|
Type |
Comments |
---|---|
TCP |
Primary purpose
|
Constraints#
The OrderEntry (iLink) connections are established based on the provided list of market segments. This is a bit unusual: the list of accounts are normally 1:1 with the connections. It is only allowed to configure a single account until we know better how this all works with CME’s party-definitions.
The actual exchange (e.g. XCBT) is now used for order management. The reason is technical and due to most gateways only providing access to a single exchange. The exchange name used for creating, modify and canceling orders, must therefore match the name provided with the
--exchange
flag.
Comments#
ExternalLatency
is currently only published when receiving a heartbeat from the exchange.MarketByOrder
is opt-in using the--enable_market_by_order
flag.ExecutionReportTradeOutright
reportsLastPx
as the order’s limit price. This should normally be expected to be the (average) price of the fill(s).