how to get full order book (10 buy + 10 sell)

qiang.zhu
qiang.zhu Explorer

hi,

I'm using "rfanet8.0.1.E1.win" to receive market data from reuters.

have subscribed data for symbols like "DXM8", "GCG8", "HCEIQ7", etc. and received data like "BID/BIDSIZE/ASK/ASKSIZE/TRDPRC_1/TRDVOL_1/etc."

How can I get full order book? like 10 buy + 10 sell, price and size

whats the field should I looking for?

checked log, have NOT received any data like 'BID_1', 'ASK_1',... 'BID_10', 'ASK_10',

is this related to setting/permission of my account??

thanks

Sincerely.

Tagged:

Best Answer

  • umer.nalla
    umer.nalla LSEG
    Answer ✓

    Hi @qiang.zhu

    Details on the various FIDs such as NO_ORD and ACC_SIZE is covered in the RDMUsageGuideNET pdf file in the docs folder and/or the RDMFieldDictionary in the etc folder.

    e.g. RMDFieldDictionary describes ACC_SIZE as - In RWF market depth structure, cumulative size of all price points.

    Please see my article on Sorting Level 2 data for more information on ordering/ranking the entries. The code snippets are EMA C++ - but the techniques are applicable to RFA too.

    With regards content queries - i.e. what data is available / which RIC to use etc, please contact the Data Content helpdesk as mentioned in my previous post.

Answers

  • Hi @qiang.zhu

    To get full Order Book you need to make MarketByPrice domain request - rather than MarketPrice request.

    You should refer to RFA C++ Tutorial 8 - Level 2 RDM data - for an explanation. Although the code is C++, the technique is much the same.

    You can test this in RFA .NET by using the Consumer example that is in the Examples\Consumer folder.

    Change the Consumer.cfg file to request MarketByPrice and see the result

    # RFA Session to be used by the Consumer application
    \ConsumerClient_10\session = "Session1"
    # Service name to be used to request
    \ConsumerClient_10\service = "ELEKTRON_DD"
    # Comma separated RIC List to be used to request
    \ConsumerClient_10\itemList = "DXM8"
    # RDM message type
    \ConsumerClient_10\msgModelRequestType = "marketByPrice"
    # Switches between domain specific decoding (true) and generic decoding
    \ConsumerClient_10\msgModelDefaultDisplay = true

    You will see that the OrderBook is delivered in Map structure with each Map Entry representing an Order and using the same field names:

    Map Key   ORDER_PRC   ORDER_SIDE  NO_ORD  ACC_SIZE 
    97.540A 97.540 ASK 1 3
    90.000B 90.000 BID 1 1
    91.210B 91.210 BID 1 15
    94.100A 94.100 ASK 1 2
    95.545A 95.545 ASK 1 1
    ....
    and so on....

    So, the above is known as Level 2 Full Order Book - MarketByPrice data.

    For some of our data it is also possible to get just Top of Order Book - i.e. only Top 10 orders - by making a 'standard' MarketPrice request - for this type of request you do see fields like 'BID_1', 'ASK_1',... 'BID_10', 'ASK_10'. This type of data requires a different RIC code - you will need to speak to our Data Content team to find out which RIC code (if available) to request. Use the following link to contact the Content team -Contact Us.

  • hi

    thanks for the response,

    I tried subscribe data using 'ThomsonReuters.RFA.RDM.RDM.MESSAGE_MODEL_TYPES.MMT_MARKET_BY_PRICE',

    can get data in map container.

    here are more questions:

    what does 'NO_ORD', 'ACC_SIZE' mean?

    as I searched them in file "RDMFieldDictionary", and "rfanet8.0.1.E1.win\Docs\*.pdf", find no result.

    how can I know the order book level??

    e.g. regarding to "97.540A", maybe it's of ASK_1, or ASK_2/3/4.

    how can I know the level??

    regarding to 'only Top 10 orders', are they avail for all futures?? or just for some exchanges?

    as we want to start trading with FUTURE in global scope.

    thanks

    Sincerely.

  • hi

    thanks for the response,

    here is another issue.

    connected to reuters, service : EED_DELAYED , using QA account,

    subscribe data by both "MARKET_PRICE" and "MARKET_BY_PRICE"

    found that BID/ASK mismatch to order book, e.g.

    for RIC : DXU7

    time=[2017-09-01 16:17:55.684166], sym=[    DXU7], [Action=Update;Key=92.720A;time=[2017-09-01 16:17:56.119753], sym=[    DXU7], [                 ASK]=[92.755]
    time=[2017-09-01 16:17:56.119753], sym=[ DXU7], [ BID]=[92.750]
    time=[2017-09-01 16:17:56.416813], sym=[ DXU7], [Action=Update;Key=92.720A;

    ask price (in order book) is less than BID price.

  • hi

    I clicked 'Submit', but cannot submit anything...dont know reason.

    regarding to

    time=[2017-09-01 16:17:55.684166], sym=[ DXU7], [Action=Update;Key=92.720A;

    time=[2017-09-01 16:17:56.119753], sym=[ DXU7], [ ASK]=[92.755]

    time=[2017-09-01 16:17:56.119753], sym=[ DXU7], [ BID]=[92.750]

    time=[2017-09-01 16:17:56.416813], sym=[ DXU7], [Action=Update;Key=92.720A;

    ask price (in order book) is less than BID price.

    could you advise??