question

Upvotes
Accepted
5 3 6 9

C# RFA MMT_MARKET_BY_ORDER Documentation or Tutorials

Hi Community,

I have been using C# RFA on MMT_MARKET_PRICE for long.

Recently I have started to do some work on MMT_MARKET_BY_ORDER.

Upon Process Event, I see that I received Map objects containing MapEntry. All MapEntry Actions are Add/Update/Delete, which is quite close to what I expect.

May I know if there is any documentations/tutorials on handling MMT_MARKET_BY_ORDER messages, so that I can build the orderbook based on the Map?

Thank you very much.


Cheers,

Juno

treprfarfa-apic#.netmarket-by-order
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Thank you for your participation in the forum.
Is the reply below satisfactory in answering your question?
If yes please click the 'Accept' text next to the reply.
This will guide all community members who have a similar question.
Otherwise please post again offering further insight into your question.
Thanks,
AHS

@Juno Chan

Hi,

Please be informed that a reply has been verified as correct in answering the question, and has been marked as such.

Thanks,

AHS

Upvote
Accepted
25.3k 87 12 25

HI @Juno Chan

The following RFA C++ tutorial should help Level 2 Refinitiv Data Model (don't have a .NET equivalent tutorial - the technique remains the same)

Whilst the following article is based on EMA C++, you will find the content quite relevant to your requirement How to Sort & Process Level 2 Orderbook Data using EMA C++ API | Refinitiv Developers

And the following may also help: Consuming Order Book Level 2 data with Refinitiv Websocket API for Pricing Streaming and Real-Time Services | Refinitiv Developers

You can also refer to the RFA.NET documentation in particular the RDM Usage Guide.


icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
5 3 6 9

Hi @umer.nalla,

Thanks for the directions, I will try walking thru them.

Btw, I realized that MBP/MBO data are categorized under level 2 data, when I subscribe for the data, I shall provide the Level 2 RIC (i.e. ends with 'd') instead of the Level 1 RIC, is that correct?

As I did a trial subscription to Level 1 RIC and I got map data returned. Not sure if it is appropriate.


Thank you very much.

Cheers,

Juno

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvote
25.3k 87 12 25

Hi @Juno Chan

For full market depth L2 data, you would use the same RIC code - but change the Domain as described in the above articles, tutorials and documents etc.

The legacy RIC codes such as ending with d - do not always provide the full depth order book - e.g. top 10, top 25 and/or in a Chain format - which is harder to process.

MMT_MARKET_BY_ORDER is a level 2 domain.


icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
5 3 6 9

Hi @umer.nalla

Thank you very much, I have been on a good track consuming the MBO map data to construct the MBO orderbook.

I got a few questions regarding some FIDs

For example, I am on Singapore Stock Exchange

https://refinitiv.fixspec.com/stack/specs/elektron/apac/singapore-singapore-exchange-securities-trading-ltd/4-0-4/2595-singapore-exchange-securities-trading-sgx-st-market-by-order-refinitiv-real-timel2-mbo

1. FID 11692 OR_UDT_RSN

From the spec it does not have a definition for the value of the field. I am not sure if this FID provides valuable information denoting whether the Update is on qty amendment, executions, or other reasons as well. If this is so, this would be very useful to know the detail of this FID.


2. FID 3886 ORDER_TONE

this FID does not exist in the spec, while I receive it for every MapEntry (Add/Update). Curious to know the meaning of the values too.

3. FID 6516 BOOK_STATE

I got this when I receive the summary data, or randomly thru out the day, I suddenly receive this field, while the value actually remains the same at 1 (Normal)


during auctions, I sometimes receive 2 (Locked), may I know if Locked refers to Best Bid Price equals Best Ask Price, and 3 (Crossed) refers to Best Bid Price > Best Ask Price?


Thank you very much!


Cheers,

Juno


1617291750164.png (15.7 KiB)
1617291985830.png (20.9 KiB)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Upvotes
25.3k 87 12 25

Hi @Juno Chan

Apologies for the late reply, we had public holidays here.

This forum is aimed at answering "how to" types of questions about using Refinitiv APIs and the moderators are not Content/Data specialists. The Refinitiv Real-time feeds carry over 80million RICs from 10,000+ source - and we have Content specialists covering specific content sets.

Therefore, for Content type questions please raise a Content Ticket with My.Refinitiv so that the right specialist can help you. I would recommend attaching a list of RICs + Domain you are interested in - so the query gets routed to the best team.

Also, I recommend not mentioning API - in case your ticket is incorrectly referred to API support (who are not content experts either).

I will also ask a couple of L2 experts if they can comment here(but they may not have Singapore specific knowledge), so please go ahead and raise the ticket as well.

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Asked Tim Smith and Bruce Hu - if they can comment.

Upvotes
117 0 0 2

Hi @Juno Chan, @umer.nalla,


There are plans for enhancing the venue documents on Data Model Discovery to cover the venue-specific enumerations and native/pass-through codes that we get from the source data feed later in the year. But at the moment, the best solution is to raise a Support Ticket like what Umer mentioned in his reply. Our Helpdesk will be able to help you with the possible values that you could receive from the fields OR_UDT_RSN and ORDER_TONE specifically for the SGX-ST MBO instruments.


You're right that the field BOOK_STATE is part of the summary message (Field Category = "Summary"), and the purpose of the field is to let the users know if there are any unexpected/abnormal orderbook conditions e.g., "Lock" - when best bid and best ask are equal, or "Crossed" - when the best bid is greater than the best ask. (Except for a yield based orderbook, in which the reverse is true. If you would like to know more about how the field BOOK_STATE works, you can refer to this page about orderbook sorting and ranking on DMD - https://refinitiv.fixspec.com/stack/repo/elektron/refinitiv-elektron-mar-2021/info/order-book-sorting-and-ranking)


FYI. Depending on the venue, level-2 data is available via OMM MBO/MBP and MP Limited Level-2 (LL2). The former provides the L2 data using domains - 7 for MBO and 8 for MBP, and the latter uses the same domain - 6 MARKET_PRICE as the L1 data but a different RIC structure. You can find the relevant RIC structure in the venue guide which is available for download on DMD via "Info > Attachment".



1617771286099.png (55.3 KiB)
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.