Skip to main content

Eurex T7 ETI Trade Connector

Features

eti-eurexConnector 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

Session Type

See 5.2 Session Concept chapter in T7 ETI Manual.

  • Low Frequency Session (LF)
    This session type supports the complete ETI functionality.
    Modification for another session of the same business unit is only supported for standard orders.
    A LF session may also be used to subscribe broadcast streams, for example: Listener broadcast, trade notifications.

  • High Frequency Session (HF)
    This session type is aimed at high frequency trading.
    The HF session type does not support the subscription of the broadcasts listener, trades, and news.
    Mass cancellation and quote activation/inactivation for another session is supported.

External Order Modification

External order modification (via GUI) is supported via notifying RESTATED order event.

Order Scope

Config ValueDescription
PERSISTENTA persistent order is an order that is reinstated at the beginning of the Business Day (if valid for that Business Day) or after a Market Reset.
NON_PERSISTENTNon-persistent orders are automatically cancelled at the end of the Business Day or after a Market reset. They are also cancelled in case of some system events (see Mass Cancellation Notification) and session connection problems or normal session logout.

Order Kind

Config ValueTag 28703Description
LEAN0For lean orders, the execution notifications can be recovered (via retransmission requests on the session data channel). All data on lean orders are visible only to the session that submitted the order. Lean orders are always non-persistent.
STANDARD1The complete order history can be recovered via retransmission requests. The order data is visible to all low-frequency sessions belonging to the same business unit. Standard orders can be persistent or non-persistent.

Trading Capacity

This field designates if the trader is acting in the capacity of agent, trading for its own account or acting as a market maker.

Config ValueTag 1815Description
CUSTOMER1Customer (Agency)
PRINCIPAL5Principal (Proprietary)
MARKET_MAKER6Market Maker

Execution Instructions

Instructions for order handling. ExecInst(18).
The default value passed in this tag depends on orderScope settings.

Tag 18Description
HPersistent Order
QNon-persistent Order
H 6Persistent and Book or Cancel (Post Only) order
Q 6Non-persistent and Book or Cancel (Post Only) order

Self Match Prevention Instruction

Indicate the instruction for SMP. The default value is REJECT_ON_BU_LEVEL.

Config ValueTag 2964Description
REJECT_ON_BU_LEVEL100Reject cross on business unit level
REJECT_ON_MARKET_LEVEL101Reject cross on market level

Cross Match Instruction

Indicate the instruction for SMP. Applicable only when MatchInstCrossID(28744) is set.
The default value is DEFAULT which means that the behavior is defined by the exchange.

Config ValueTag 31625Description
DEFAULTThe default behavior is defined by the exchange
CANCEL_TAKING1Cancel incoming order
CANCEL_RESTING2Cancel resting order
REDUCE_CANCEL_BOTH3Reduce/Cancel both incoming and resting order

Order Handling

Identifies the source of an order, in accordance with the FIA guidelines for a rate Identifier. The field is for participant use only.

Config ValueTag 1031Description
DESKWDesk
ELECTRONICYElectronic
VENDOR_PROVIDED_PLATFORMCVendor-provided Platform billed by Executing Broker
SPONSORED_ACCESSGSponsored Access via Exchange API or FIX provided by Executing Broker
ALGO_ENGINEHPremium Algorithmic Trading Provider billed by Executing Broker
OTHERDOther, including Other-provided Screen

Position Effect

The parameter is used for T7 position management purposes and indicates whether the order is submitted to open or close a position.

Position EffectTag 77Description
OPENCOpen.
CLOSEOClose.

Price Validity Check Type

When entering or replacing an order or quote, the user may opt for a check ensuring that the entered price does not differ significantly from the market.
The field PriceValidityCheckType (28710) provides the following options:

Price Validity CheckTag 28710Description
NONE0None.
OPTIONAL1Optional.
MANDATORY2Mandatory.

See more in ETI Manual - 4.12.1 Price Reasonability Check.

Users Login Procedure

Eurex has some rate limits for user login requests.
The users login behavior can be adjusted via User Login Settings.

Traders Mapping

A mapping can be configured to send a specific ETI User ID for a given Trader ID.

  • traderId - Trader ID passed within order request
  • userId - ETI User ID (should exist within configured users)
traders = [
{traderId = "nick", userId = 200009},
{traderId = "eugene", userId = 200010}
]

Special MiFID Handling

The special handling for MiFID tags can be implemented via specifying firm info in firms settings.

When the firms section is defined in the configuration, the connector looks up firm info using the FirmCode(8714) tag.
The FirmCode(8714) value is expected to contain the specific firmCode.

If a matching firm is found, the connector makes the following changes:

  • PartyIDClientID(20003) tag is set to firm info's clientId
  • If AlgoID(376) tag exists and mifidMember flag is true - the following tags are updated:
    • ExecutingTrader(25123) is populated with AlgoID(376) value
    • ExecutingTrader-Qualifier(25124) is populated with value 22 (Algo)
firms = [
{
firmCode = "EPAM"
mifidMember = true
clientId = 12345
},
{
firmCode = "DELTIX"
mifidMember = false
clientId = 0
}
]

Symbology

SMD Column KeyRequiredDescription
eurexSymbolYesSecurityID (numeric)
eurexMarketSegmentIdYesMarketSegmentIID (numeric)
eurexProductComplexYesProductComplex (numeric)

Configuration

Connector settings

ParameterDefault ValueDescription
attributeKeyeurexPrefix for securities columns: [attributeKey]Symbol, [attributeKey]MarketSegmentIdm [attributeKey]ProductComplex.
➡️ Connectivity Settings
hostHost.
portPort.
standbyHostStandby Host.
standbyPortStandby Port.
➡️ Logging Settings
log.logMaxFiles30Max number of log files to keep on disk.
log.logMaxFileSize100MMax file size of single log file.
log.logBufferSize8MMax buffer size.
➡️ Order Cache Settings
cache.initialActiveCacheSize256Initial active order cache size.
cache.inactiveCacheSize8192Inactive order cache size.
➡️ Session Settings
session.sessionIdSession ID
session.sessionTypeSession Type. Allowed values: LF, HF.
session.passwordSession password.
session.encryptPasswordfalseWhether password encryption required.
session.publicKeyFileThe path to public key PEM file. Required if password encryption enabled.
session.etiVersion12.1T7 ETI API version.
session.engineVersion5.0The version of the FIX infrastructure component.
session.engineNameQuantServerThe name of the infrastructure component being used for session level communication.
session.engineVendorEPAM DeltixThe name of the vendor providing the FIX infrastructure component.
session.appVersion1.12The version of the application system being used to initiate T7 ETI application messages.
session.appNameEmberThe name of the application system being used to generate T7 ETI application messages. This will normally be a trading system, OMS, or EMS.
session.appVendorEPAM DeltixProvides the vendor of the application system as the 5-letter EUREX/ETRA Member ID.
➡️ ETI Users
users.userIdETI User ID. Numeric value. Required.
users.passwordETI User Password. Required.
➡️ ETI Users Logins Settings
userLogin.initialDelay0The initial delay (after session logon) before initiating users logins.
userLogin.delay0The interval between two subsequent user login requests.
userLogin.retryCount5The number of user logins attempts.
userLogin.retryInterval5sThe retry interval after user login failure.
➡️ Order Settings
accountAccount to book trades and keep positions on. Required.
orderKindSTANDARDOrder Kind. Allowed values: LEAN, STANDARD.
orderScopePERSISTENTOrder Scope. Allowed values: PERSISTENT, NON_PERSISTENT.
orderHandlingELECTRONICOrder Handling. See allowed values in Config Value column..
positionEffectOPENPosition Effect. See allowed values in Config Value column..
tradingCapacityCUSTOMERTrading Capacity. See allowed values in Config Value column..
valueCheckTypeNO_CHECKIndicator for checking the maximum order/quote value by the exchange. Allowed values: CHECK, NO_CHECK.
priceValidityCheckTypeNONEIndicator how price validity check should be performed by the exchange(see the ETI Manual, chapter Price Reasonability Check). Allowed values: NONE, MANDATORY.
selfMatchPreventionIdSelf Match Prevention ID. Numeric value.
selfMatchPreventionInstructionSelf Match Prevention Instruction. Allowed values: REJECT_ON_BU_LEVEL, REJECT_ON_MARKET_LEVEL.
crossMatchInstructionDEFAULTCross Match Instruction. Allowed values: DEFAULT, CANCEL_RESTING, CANCEL_TAKING, REDUCE_CANCEL_BOTH.
➡️ MiFID Settings
mifid.clientIdClient Identifier field (ESMA Field 3 (Section A)) is used to identify the client of an order for agent account of the member or participant of the trading venue.
mifid.investmentDecisionMakerInvestment decision within firm (ESMA Field 4 (Section A)) is the code used to identify the person or the algorithm within the member or participant of the Trading Venue who is responsible for the investment decision.
mifid.executingTraderExecuting Trader data field (ESMA Field 5 (Section A)) is used to identify the person or algorithm within the member or participant of the trading venue who is responsible for the execution of the transaction resulting from the order.
mifid.orderOriginationField to indicate order received from a direct access or sponsored access customer. Allowed values: DIRECT_ACCESS_CUSTOMER, SPONSORED_ACCESS_CUSTOMER.
mifid.investmentDecisionMakerQualifierQualifier for field investmentDecisionMaker. Members/participants will have the possibility to specify an Investment qualifier value to distinguish between natural persons and Algos. Allowed values: ALGO, HUMAN.
mifid.liquidityProvisionLIQUIDITYIndication as to whether an order is submitted to a Trading Venue as part of a market making strategy. Allowed values: LIQUIDITY, NO_LIQUIDITY.
mifid.executingTraderQualifierALGOQualifier for field executingTrader. It is required to distinguish between natural persons and Algos. Allowed values: ALGO, HUMAN.
➡️ Trader Mapping Settings
traders.traderIdThe trader name which is passed within trade request.
traders.userIdETI User ID.

Supported order attributes

KeyDescription
18ExecInst(18). Instructions for order handling. See allowed values in table above.
1031CustOrderHandlingInst(1031). Order Handling. See allowed values in Config Value column..
1815TradingCapacity(1815). Trading Capacity. See allowed values in Tag 1815 column.
77PositionEffect(77). See allowed values in Tag 77 column.
28710PriceValidityCheckType(28710). See allowed values in Tag 28710 column.
2964SelfMatchPreventionInstruction(2964). See allowed values in Tag 2964 column.
31625CrossMatchInstruction(31625). See allowed values in Tag 31625 column.
28744MatchInstCrossID(28744). Self Match Prevention ID. Numeric value.
28703ApplSeqIndicator(28703). Indicates if the order is a Lean Order or a Standard Order. See allowed values in Tag 28703 column.
➡️ MiFID Tags
20003PartyIDClientID(20003). Client Identifier field (ESMA Field 3 (Section A)) is used to identify the client of an order for agent account of the member or participant of the trading venue.
20122PartyIdInvestmentDecisionMaker(20122). Investment decision within firm (ESMA Field 4 (Section A)) is the code used to identify the person or the algorithm within the member or participant of the Trading Venue who is responsible for the investment decision.
25123ExecutingTrader(25123). Executing Trader data field (ESMA Field 5 (Section A)) is used to identify the person or algorithm within the member or participant of the trading venue who is responsible for the execution of the transaction resulting from the order.
1724OrderOrigination(1724). Field to indicate order received from a direct access or sponsored access customer. Allowed value: 5 - Order received from a direct access customer.
21222PartyIdInvestmentDecisionMakerQualifier(21222). Qualifier for field investmentDecisionMaker. Members/participants will have the possibility to specify an Investment qualifier value to distinguish between natural persons and Algos. Allowed values: 22 - Algo, 24 - Human.
23002OrderAttributeLiquidityProvision(23002). Indication as to whether an order is submitted to a Trading Venue as part of a market making strategy. Allowed values: 1 - Liquidity provision, 0 - No liquidity provision.
25124ExecutingTraderQualifier(25124). Qualifier for field executingTrader. It is required to distinguish between natural persons and Algos. Allowed values: 22 - Algo, 24 - Human.
25007FreeText1(25007). First free-format text field for trader specific or customer-related comments. The value length should be exactly 12 symbols. Use space padding if needed.
25008FreeText2(25008). Second free-format text field for trader specific or customer-related comments. The value length should be exactly 12 symbols. Use space padding if needed.
25009FreeText3(25009). Third free-format text field for trader specific or customer-related comments. The value length should be exactly 12 symbols. Use space padding if needed.

Config sample

connectors {
EUREX: ${template.connector.eti.eurex}{
settings {
host = "<HOST>"
port = <PORT>

session {
sessionId = <SESSION_ID> # numeric
sessionType = LF # LF or HF

password = "<SESSION_PASSWORD>"
encryptPassword = false
}

# MIFID settings
mifid {
clientId = <CLIENT_ID> # numeric
executingTrader = <EXECUTING_TRADER> # numeric
executingTraderQualifier = HUMAN # HUMAN/ALGO
}

# ETI users
users = [
{
userId = <USER_1_ID> # numeric
password = "<USER_1_PASSWORD>"
},
{
userId = <USER_2_ID>
password = "<USER_2_PASSWORD>"
}
]

# trader to user mapping
traders = [
{
traderId = "<TRADER_ID>"
userId = <USER_ID> # numeric
}
]
}
}
}

UAT

Tools

Message Log To Json Converter

Converts Eurex binary logs (*.messages) to JSON format.
Usage: eurex-log-to-json --log-dir <message-logs-dir> [--output-dir <output-dir|$EMBER_WORK>]

docker compose exec ember /opt/deltix/ember/lib/custom/tools/eurex-log-to-json --log-dir /var/lib/emberwork/connectors/EUREX --output-dir /var/lib/emberwork

Security Definition Extractor

Extracts Security Metadata from Eurex reference data files.
Usage: eurex-secdef-extractor --input-dir <input-dir> [--output-dir <output-dir|$EMBER_WORK>] [--attribute-key <attribute-key|eurex>] [--symbol-pattern <symbol-pattern>] [--type-pattern <security-type-pattern|(FUT)|(MLEG)>] [--file-pattern <reference-data-filename-pattern|.*\.XML>]

docker compose exec ember /opt/deltix/ember/lib/custom/tools/eurex-secdef-extractor --input-dir /var/lib/emberwork/eurex