Logo
FAQs

Questions on Eurex

1. Which products are traded at the Eurex exchange ?

Eurex is one of the world's largest derivatives exchanges and the leading clearing house in Europe. Wherever you are located, we provide you with access to the benchmark futures and options market for European derivatives. With clearing services for derivatives, equities, bonds and repos, our customers benefit from a high-quality, cost-efficient and comprehensive trading and clearing value chain.

2. How do you know a basis trade has been approved by the counterparty?

An inquiry on the basic trade shows a valid trade number 'trdNo'. Only the counterparty selling the contract can approve an existing Basis Trade. Thus, the field 'buyCod' must filled with EXCH_CONST_SELL. The approval is possible only after the inquiry of the Basis Trade entered by the buyer. This request is applicable only for futures.

3. I am testing with the Change Password request and got '20083 invalid password'

The password must have 8 letters and no blanks are allowed. Moreover, the password given by the exchange must not be reused. The same is true for the field 'new password'. Please note that the GUI converts the given string to uppercase.

Please note that the ‘new password’-field needs to be initialized if you don’t want to change the existing password.

4. How does the exchange handle trade reversals?

Trade Reversals are done by Market Supervision. A negative quantity will be entered by the market supervision. Please contact the Eurex Clearing Helpdesk regarding how the exchange handles this. The tel.no. is +49-(0) 69-2 11-1 12 50. From the VALUES API point a negative fee can be seen in the subscribe trade confirmation stream. Trade Reversals are assigned a new transaction ID 'trnIdNo' and have negative fees (trnFeeAmnt). In addition, the buyCod is the opposite of the actual trade, i.e. a buy trade that is reversed is a sell in the trade reversal transaction.

5. Under the Eurex system, orderbook depth broadcast is activated on a contract by contract basis. We would like to be able to select which products are broadcast on the MISS. Is this an option? Could you also please let me know the criteria that are used to select which contracts are enabled for broadcast?

Eurex Market Supervision defines for which contracts the orderbook depth is broadcast. For the most frequently traded contacts (futures), the orderbook depth is broadcast. If the field 'cntrAsynInd' (exists in the Inquire Contract Application Request) is set to 'Y' you can receive only broadcasts. If the field is set to 'N', you can only inquire for the order book depth.

6. I tried to inquire single leg orderbook depth for a future contract. But it was rejected due to broadcasting orderbook. Why couldn't this be done? Is there a way that I could get it working?

The message 'NO INQUIRIES ALLOWED WHEN ORDERBOOK DEPTH IS BROADCASTED' is correct: If the order book is broadcasted inquiries are not allowed (in order to decrease the Back End load). In order to get the order book depth, a subscription to the appropriate stream must be done.

7. Why can't I see Broadcast Depth for the contract I am subscribing for?

Not all products in Eurex have Orderbook Depth Broadcast. The cntrAsynInd in the Inquire Contract Request is the indicator if the orderbook depth broadcast is sent or not. Only the contracts with cntrAynInd= 'Y' have Broadcast Depth

8. What are the Values-API limits and constraints?

The number of user requests is regulated on a session level via VALUES on the frontend. There is a maximum of 50 pending requests per session and a maximum of 98 sessions ( VCI_Connects) per machine. And for one session you can use 10 VCI_Login Requests. These numbers are subject to change and should not be hardcoded into an application.

9. What is the meaning of dateLstUpdDat?

A 'dateLstUpdDat' is always related to a specific data record (trade, order, etc.) in its status by a given time. dateLstUpdDat is a value that changes whenever something happens. After 'dateLstUpdDat's' initial value, which is sent to the application in the response to 'Enter S/D Leg Order', (as well as in the first Subscribe S/D Leg Order Confirmation) it changes whenever the order is modified, partially executed etc. In each of these cases, the application is notified by a broadcast on the 'Subscribe S/D Leg _Order_ Confirmation' stream. The broadcast message always contains the current 'dateLstUpdDat' value that has been assigned to the order. You probably want to subscribe to this stream anyway to be able to track your orders. Thus, it is obsolete and inefficient to inquire for the order each time you want to modify it. This must not be mixed up with the 'dateLstUpdDat' entries in the 'Subscribe Trade Confirmation' stream. It refers to the trade, not to the order that it resulted from, and is used for trade adjustments, for example. Successfully deleting single leg orders does not mean the 'dateLstUpdDat' is correct. In fact, the 'dateLstUpdDat' in 'Delete Single Leg Order' is not really validated, but only checked for numeric content.

If the modified quantity is filled into the 'ordrQty' field, then the 'date LstUpdDat' field has to be filled; if the 'ordrTotQty' field is used then the 'dateLstUpdDat' field is not mandatory.

10. I receive in the Subscribe Trade Confirmation Callback option and future values. Why?

If you are using wildcards in your request structure you receive all types of data, options and futures. That pointer that should be cast to the response type is appData-> appRespData. The appData->brcSubject pointer only mirrors back your subscription subject (and should be cast to that type), with wildcards expanded.

11. When does a 'No Data' broadcast message occur?

'No Data' broadcasts occur under certain circumstances when the exchange must create a broadcast in order to ensure a gapless sequence, but has no data at hand. They should not be confused with 'End Of Stream' broadcasts, which indicate the receipt of the last broadcast that this stream produces on a given trading day. On the 'Subscribe Trade Confirmation' stream, we recommend waiting for the 'End of Stream' message. Please note that you must subscribe its subject (END_OF_STREAM in 'prodId') explicitly if you do not use wildcard.

12. Which Values-API requests generate no transaction fees?

All VALUES API requests with the Transaction Class 'not counted' did not create relevant Back End load and are not considered for transaction fee calculation. For more information please refer to the relevant Values API Member Front End Development Guide, section 2.8.

13. Please explain the VCI_Subscribe logic to handle multiple subscriptions.

Some background information: After issuing a VCI_Subscribe call, you usually check the return code in the ´'statusDataT' struct. If it is anything else but SUCCESS, the call has been rejected and no callback invocations will ever occur. If it is SUCCESS, the status of the subscription request will be communicated via (a first) callback invocation. Usually, this announces a successful subscription, which can be recognized by the status passed to the callback, which is ELB_TECH_SUBSCRIBED. Subsequent callback invocations will announce a 'real' broadcast and have ELB_TECH_OK. So the exact point to know if a subscription has been successfully established is in the first callback invocation that is related to the invocation of VCI_Subscribe, and this where your subscription tracking mechanism should be updated. Part of your code reads like: if (statusDataGlobal->techComplSeverity == VCI_SUCCESS & & statusDataGlobal->complSeverity == VCI_SUCCESS) { vci_poll_and_dispatch(); } Since VCI_Dispatch receives just a random VMQ event, without even knowing what it is, you may well just dispatch a broadcast (ELB_TECH_OK) from another subscription instead of the subscription confirmation event (ELB_TECH_SUBSCRIBED) that you are actually waiting for.

14. How do we interpret the contents of field 'bscReqBcastRTrmResponseT.rTrmData' in the Broadcast Retransmission Response?

The product information is given in each record of the response; i.e., each record contains the dataHeader structure and the corresponding product specific structure. The total length of one record is the same for options and future (for technical reasons). Each record contains the dataHeader structure in front of the product specific structure you can use.

15. OTC Block Trade Processing. How does the seller find out the transaction ID?

The OTC (Over The Counter) Block Trade Processing functionality allows entry, modification, deletion,approval, and inquiry of Block Trade requests. These trades enable a user to directly trade a contractwith another member with whom the deal was agreed upon in advance. Block Trades are not visible to the market unless they are approved. The counterparties receive execution confirmation and tradeconfirmation broadcasts for Block Trades.

16. I have entered a Mass Quote Request. How can I check the result for each quote?

If the statusDataT indicates success, check 'rtnCod' for each quote.

17. Is it possible to send electronic position close out instructions via the API?

A position can be closed via 'Enter Position Close Adjustment'.

18. If I specify ordrResCod = ORDR_RES_COD_IOC, or ordrResCod = ORDR_RES_COD_FOK, do I need to supply an expiry date? I.e. - these order types be implicitly cancelled almost immediately (just after they might have matched). Thus, if I use either of these orders, how should I set the 'ordrExpDat' field?

These orders are not entered into the orderbook. They will be executed immediately or not. Leave the 'ordrExpDat' field initialized. This makes no sense in case of an FOK or IOC order.

19. Why is it that if a trade for 1500 lots was split into 3 records (750,500,250 lots), the new records ALL have the same 'ordrNo+trnIdNo' as the original order (for 1500 lots)?

For transactions that have undergone a Trade Adjustment (Trade Separation is one of these), the resulting sub-transactions can be addressed by their 'trnIdSfxNo' suffix. Thus, they can still be tracked down to their original trade but can be identified nevertheless.

20. I wonder why there is an array for 'optBscInqBlkTrdRec'. What are the elements in this array? I think a single trade can only have one Open Close Indicator and also one Counterparty... So why there are several structures returned?

The solution is hidden in the tiny sentence: 'For an in-house cross trade, all details will be retrieved. 'That is, if the Block trade happens between two traders at the same member, you get to see also your counterpart's 'cust', 'userOrdrNum', 'acctTypCod' etc. fields. Otherwise, the second record is just initialized.

21. I would like to have clarification on how to use the 'Inquire BO Information' request for settlement prices. What do the fields 'strtTrnSeqNo' and 'stopTrnSeqNo' mean?

This application request allows the recovery of BO information in case BO-Information broadcast has not been retrieved on a previous business day. The 'strtTrnSeqNo' and 'stopTrnSeqNo' field must be wildcarded in this request, so no range can be specified, you always get everything. You need not be subscribed to the related stream in order to use the inquiry. Please note that this request is only a recovery procedure and normally the settlement prices should be recorded and stored from the broadcast.

22. When is the 'boiTrnTyp' field filled with END_OF_PUBL_RECOV '99'?

END_OF_PUBL_RECOV is not a functional transaction type, but indicates the End of Stream, technically.

23. What kind of decimal shifts can I use?

The mapping for decimal shifts is the following: exerPrcDcml: cntrExerPrc prodDispDcml: ordrExePrc etc. setlDispDcml: cntrSetlPrc and undrFinSetlPrc undrDispDcml: undrClsPrc and mgnClsPrc

24. Is there any way to get the contract size information?

You should use the field 'trdUntNo' in the Inquire Contract List Request.

  • trdUntNo in VALUES API= contract size on Eurex web page, fractional , format unsigned 4.4
  • This is the number of shares to be bought or sold upon excercise of a stock option, typically 100 or 50 or 10, fractional for adjusted series after a capital adjustment. Note that cash settlement of fractional parts will occur as fractions of shares cannot be delivered.
  • For non-stock options, the trade unit is always 1.0

25. Why did the error message 'CONTRACT IS INVALID' occur by using the 'Inquire Inside Market' request?

It could be that a wrong 'appReqBlkSize' was used. The following code for the sizing of 'appReqBlkSize' solves the problem: AppReqBlkSiz = size of (DataHeaderT) + size of (optBscInqSLegInsMktGrpT) * number of requested records.

26. What are the meanings of 'cntrStsCod' in 'Inquire Contract' and 'Inquire Contract List'? What are CNTR_STS_COD_INACTIVE and CNTR_STS_COD_REPORTING for?

REPORTING actually means that the according contract has expired, thus EXPIRED. INACTIVE means that the according contract is not tradable.

27. Can the request 'Inquire Historical Position Transaction' be used to get today's trades?

You cannot perform an Inquire Historical Position Transaction from the current trading day. (Member Frontend Description Guide, Chapter 3.4.8.4). This will produce the error message 12060 INVALID DATE. Please try to request another trading day (the last four business days are possible), or use 'Request Broadcast Retransmission' on 'Subscribe Trade Confirmation' for today's trader.

28. What is the format of the 'timMax' and 'timMin' field?

The format for 'timMin' and 'timMax' has the format time: HHMMSSCC. This is Eurex's system time.

29. Does the 'InquireOwnTrade' fall into category of transactions for which there is a daily limit?

Please use the broadcast 'Subscribe Trade Confirmation' or its retransmission facility for most purposes.

30. I have filled out all of the 'inquire position' request structure, and it all seems to be good. However, I get a response with an error of 'invalid source relationship'.

This error means that the relationship between Member and Clearer is invalid, i.e. invalid member-ID or clearing member -ID in this request.

31. Will the newly cascaded trades information in the 'Inquire Position Detail 'request be available on the same day as the expiry date or will it be the next business day?

The cascaded product expired in the Eurex Batch and Eurex sent out an Back Office Information, a contract change message. Also you can receie an Trade Confirmation with the posTrnTyp 126. During the next business day you can read the new position via Inquire Position Detail and you can see the details in the CB010 and CB105 report.

32. I have seen the 'fasMktMinQty' and 'fastMktPcnt' in the manual for the 'Inquire Product'. How do we get informed if a market has the state: 'fast market on' / 'fast market off'?

The fast market trading phase will be activate by Eurex Market Supervision and 'prcStsValCod' FAST indicate this status. Subscribe Product State Change Information or Subscribe Single Leg Inside Market should be used to read this information because 'Inquire Product State' will be count as a non product specific transaction and generates transaction fees.

33. In the Values guide I see there is a function 'Inquire Second Leg Contract List' that takes as arguments a first contract and the double leg type. Is there a way that I can find out which contracts have second legs associated with them other than doing an 'Inquire Second Leg Contract List' for every contract ?

Future Time Spreads

Time spreads combine two different maturities for futures on the same underlying. At any time, three time spreads are supported for products subject to price/time matching:

  • first month/second month (for example March/June)
  • second month/third month (for example June/September)
  • first month/third month (for example March/September)

For pro-rata matched futures products, all spreads between each pair of consecutive maturity months are supported.

34. When will a new order number be generated after a 'Modify Order' request?

When you increase the order quantity or you change the order limit price you will get a new Order Number for MODIFY SINGLE LEG ORDER.

35. After a 'Modify Single Leg Order' request the error message 'ORDER DATA HAS CHANGED SINCE RETRIEVED FOR EDITING' occurs. Why?

The message 'ORDER DATA HAS CHANGED SINCE RETRIEVED FOR EDITING' means you used a wrong dateLstUpdDat. Make sure you use the field which you got back from the modify response. Maybe you modified the order another time. Then you should use these values which you got back. 'dateLstUpdDat' is a value that changes whenever something happens to the order. After 'dateLstUpdDat's' initial value, which is entered to the application in the response to 'Enter S/D Leg Order', (as well as in the first Subscribe S/D Leg Order Confirmation) it changes whenever the order is modified, partially executed etc. In each of these cases, the application is notified by a broadcast on the 'Subscribe S/D Leg _Order_ Confirmation' stream. The broadcast message always contains the current 'dateLstUpdDat' value that has been assigned to the order. You probably want to subscribe to this stream anyway to be able to track your orders. Thus, it is obsolete and inefficient to inquire for the order each time you want to modify it. This must not be mixed up with the 'dateLstUpdDat' entries in the 'Subscribe Trade Confirmation' stream. It refers to the trade, not to the order that it resulted from, and is used for trade adjustments, for example.

36. What severity does the message ELB_XEUR_SEQNUM_TOO_HIGH have?

With release 4.1 we introduced the field 'bcastIntnGapSkipInd'. You will receive no error message 'strtStmSeqNo too high' if bcastIntnGapSkipInd is set to 'Y' in the request. Using 'bcastIntnGapSkipInd='Y' ' is intended only for disaster situations where all MISSes loose contact to the BackEnd, and cannot recover from internal gaps. In normal operation, your application won't even notice broadcast losses before internal gaps have been healed, so 'N' should be used.

37. I understand that I have to extract the required information from the 'rTrmData' field but I don't know how to interpret this field.

In the response, the 'rTrmData' field contains the Data Header and the corresponding broadcast structure. The size of the responses depend on the broadcast structure. For the 'Subscribe Trade Confirmation' and 'Subscribe Order Confirmation' streams, the maximum response length is the maximum of the options or futures structure. For the 'Subscribe BO Information' broadcast stream, the response length equals the length of longest response structure ( this stream has 7 response structures.)

38. How can I use the Broadcast Retransmission Request?

To use the Retransmission Xervice you have to perform an VCI_Submit call. In this request you have to specify the 'startSeqNo' and the 'stopSeqNo' of the rerequested broadcast type.

39. I am trying to use BO Information broadcast to receive BO information. But stream seems to be empty.

If you have the XXXXXF stream in your eurexsublist.dat file you can subscribe to the BO-Information stream. For the Request Broadcast Retransmission used on 'Subscribe BO Information' you must filled in the request structure the member ID MEMBER_ID_SUB_BO_INFO.

40. I have a question regarding the expiration day of a new contract after it has been changed. We receive contract change record through MISS server via Subscribe BO information stream and in the layout of data structure 'extCntrChgTrnPubBcastTag - Subscribe BO Information' record for contract change, I could not find any field that indicates expiration day of the contract AFTER specification change or after new contract added.

This type of message is sent during the batch. A 'Contract Add' message is sent if a new contract is set up by the market supervision. In addition, the message is sent when an Option contract has to be changed because of capital adjustment of the given underlying and it will be sent during the batch of the business day before the capital adjustment is taking place.
A 'Contract Change' message is sent when an option contract has to be changed because of a captial adjustment of the given underlying and it will be sent during the batch of the business day before the Capital adjustment is taking place.
A contract delete is sent during the batch of the expiration day of an Options contract and on the settlement day in case of a Futures contract. A Futures contract is uniquely defined by its product and expiration month. An Options contract is uniquely defined by its type (Call or Put), its underlying, its expiration month, its exercise price and its version. Therefore the messages 'Contract Add', 'Contract Change' (contains old and new contract) and 'Contract Delete' are unique, because they belong to an unique contract. The 'Contract Change' messages are sent after trading in batch. The deleted contracts do not disappear from the EUREX database immediately, but if they are still listed in the contract list, they are marked as expired.

41. How can I receive Settlement Data?

When subscribing to Subscribe BO Information, the data is delivered as soon as it is available, with no additional effort for the application. On that stream, settlement prices are broadcast with 'boiTrnTyp' =BO_SETL_PRC_TRN, which you may use as a subject when subscribing, in order to receive only this transaction type. The field setlPrcTrnTyp, which we may call a 'sub-type', specifies if the broadcast referring to an underlying settlement price, a contract settlement price or to an adjusted contract settlement price.

42. Is it possible to receive, through VALUES API, the messages that are displayed in the 'Message Log' window and in the Market Supervision Message window?

The message log window is filled by the VALUES API Request 'Subscribe Market Supervision Information' and the market supervision message window is filled by the Values requests 'Inquire Market News List' and 'Inquire Market News'.

43. In my application I already subscribe to the Inside Market stream. It seems from the manual that from field 'ctrStsValCod' I can find out if the product is in fast market mode. 'ctrStsValCod = 'V' (STARTFAST)'. Does it provide the same information (as far as fast market is concerned) as the 'Subscribe Product State Change' stream, field 'prcsStsValCod' ?

'Subscribe Product State Change Information' (field 'prcsStsValCod') offers information on expiries in the moment of intraday expiry. EXCNT means: 'All contract series for the current month have expired in this product.' This is complete information once you know the current month. However, inquiry on 'prcsStsValCod' does not help - it still shows 'TRAD', because the product itself is still alive, no matter if the month's contract are expired.

44. Is Eurex exchange broadcasting all market information repeated/multiple over some period of time, or does the exchange only send out messages when there is a change of price in market?

As long as there are no changes in the inside market (prices or quantities) the Inside Market broadcasts contain blanked fields. If a price / quantity pair is removed (because it has been matched and nothing is left in the book) the broadcast contains both price and qty fields set to +00000000.

45. If I do a wildcard subscription on the 'prodld', will that give me futures and options? Does it not depend on the type of subject, futures or options?

Strictly speaking, there is no such thing as subscribing for options or for futures. This sounds weird at first. Fact is that on any given stream, only the data items passed in the subject can be used for filtering the broadcasts that your application receives. Since the prodLine is not in the subject, it is not a filter. Subscription using the options structure just allows you to specify more detail, detail that does not apply for futures. If you subscribe wildcard, you will get all the products, no matter if using options or futures layout. Of course, if you specify a certain product, say, an option, all you get is this product, in the options layout.

46. Let me know how to find the trading phase while receiving 'Subscribe Single Leg Inside Market' broadcast

While 'prcsStsValCod' essentially gives the product status (trading phases change on contract level only), 'cntrStsValCod' is more about transitions. The field is empty when doing an 'Inquire Single Leg Inside Market' during normal trading, but when stepping into trading, the 'N' for netting is sent in a 'Subscribe Single Leg Inside Market' broadcast. The lowercase characters, which correspond to the _EXP_ constants, correspond to the same stati (transitions) as do the uppercase letters, but on the day of expiry. A complete description on trading phases is found in the functional documentation, the Eurex Trading System User Guide may be best in this case.

47. I'm having problems determining the order quantity from order confirmations.

The field 'ordrExeQty' indicates the quantity of an order which has been matched/executed and thus been traded. In the context of 'Enter' or 'Modify Order', this field contains the quantity executed during the actual transaction. In an order inquiry response it contains the accumulated executed quantity of the order. If an order is partially matched this field in the 'Subscribe Execution Confirmation' or trade inquiry context contains the executed quantity of the partial execution. In the 'Subscribe Order Confirmation' and 'Subscribe Matching Event' context this field indicates the sum of all partially matched orders.

48. I have been looking at the 'Subscribe Single Leg Order Confirmation' response message and I think that I am misunderstanding the use of the 'ordrTrnTypId' for case 056 = Matched

The first entered order gets at first a Order Confirmation with 'ordrTrnTydCod = 050' (add). When this order matched an Execution Confirmation arrives. Example: Order with ordrQty 100 executed Qty 50: Order Confirmation with ordrRmngQty = 50 and ordrExeQty = 50 and ordrTrnTypCod = 050 Execution Confirmation with OrdrExeQty = 50. For each particular match you receive an Order Confirmation with OrdrTrnTypCod = 56 (Match) and one Execution Confirmation. Example: another exeQuantity 25: Order Confirmation with ordrRmngQty = 25 and ordrExeQty = 75 and ordrTrnTypCod = 056. Execution Confirmation with OrdrExeQty = 25.

49. Is it true that orderbook updates are sent each X seconds, instead of only when the orderbook depth has really changed?

Yes it is true: The orderbook updates every few seconds. The update interval depends on the load at each time. This means it cannot be changed.

50. My application has subscribed to the inside market broadcast. I can see a lot of fields, that are often filled with spaces. Why?

The Subscribe Single Leg Inside Market application request is used to subscribe to the public broadcast data stream for dissemination of single leg inside market information. The inside market broadcast stream publishes only values of updated fields, unchanged fields are initialized with spaces.

51. I cannot figure out how I can use wildcards in 'Subscribe Single Leg Orderbook Depth'. The broadcast structure does NOT contain contract data. How can I find out the option to which the received prices apply?

The appData->brcSubject pointer mirrors back your subscription subject (and should be cast to that type), with wildcards expanded. Take the contract data from here.

52. What am I going to receive in case of a held quote?

To get Hold Messages you have to subscribe to the 'DRIV_SUBSCRIBE_SINGLE_LEG_QUOTE_CONFIRMATION' with the Product you are interested in the 'prodld' and the constant 'MASS_QUOTE_HOLD_MSG' in field 'cntrExpYrDat'. The field 'cntrExpMthDat' must be fiiled with spaces. In the response you get (if the quotes of a product were set to held) the value 'H' inthe field 'extension.quoHldlnd'. The 'cntrExpYrDat' and 'cntrExpMthDat' do not contain defined values for these messages, because these messages are sent on a product base.

53. How would I subscribe to futures prices? Is Subscribe Ticker the right way to go?

With the subscribe ticker request you can only receive prices from external exchanges, i.e. Xetra 'XETR'. Eurex prices are not displayed. To receive Eurex prices you have to use the Subscribe Inside Market Request.

54. Please could you let me know if the fields, 'shtQty' and 'lngQty' could be used for trade confirmation.

'lngQty: This field indicates the movement in the long position that resulted from the posting of the transaction to the member's position at the Exchange'. shtQty : should (and will be) described accordingly. That means: you get the change (the delta).

Please see the following examples:

..no position: buy to open 3, result: lngQty: +3, shtQty: 0
..no postion: sell to open 3, result: lngQty: 0, shtQty: +3.
..long 5: buy 3, result: lngQty: +3, shtQty: 0
..long 5: sell to close 3, result: lngQty: -3, shtQty: 0
..long 5: sell to close 8, result: lngQty: -5, shtQty: +3. So in this case it would be necessary to SUBTRACT lngQty from shtQty.
..short 2: buy 3, result: lngQty: +1, shtQty: -2


Page 1 2
Print