New posts are disabled while we improve the user experience.

You can browse the site, or for urgent issues, raise a query at MyAccount.

question

Upvotes
Accepted
124 2 2 0

[Level 2-MBP] How to identify market order in market-by-price update

Hi,

We are subscribing the level 2 market-by-price data for SGX & CME and would like to know if the data includes information on market order. How can we identify the price point for market order and what value is expected in the field "ORDER_PRC"?

Besides, as "ORDER_TONE" is sent as 'RMTES_STRING', what is the possible value and its meaning for SGX & CME market?

Thanks in advance.

treprfarfa-apimarket-by-price
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
Accepted
9.6k 10 7 7

Hello @kc.lam

This forum is aimed at software developers using Refinitiv APIs. The moderators on this forum do not have the required deep expertise in all the content sets available through our products to answer your questions.

For data content query like these one, the best and speediest way to receive the answers is to open a content-related enquiry via MyRefinitiv. They will either have the answers for you right away, or will reach out to the content experts who can provide the answer you're looking for.

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.

Hi @Pimchaya.Wongrukun, thanks for the quick response, we will follow up the 'ORDER_TONE' enquiry via MyRefinitiv.
However, for the market order handling, I think it is common in most venues and should exists a general approach for developers to handle it. Do you know how it is representing in the MBP domain? Thanks.

Hello @kc.lam

Sorry. I do not know.

Upvotes
32.2k 41 11 20

Hello @kc.lam,

Did you have a chance to look at RDM (Reuters Domain Model) guide, in your RFA SDK installation, in docs folder, or RFA Online Developer Guides?

Section MarketByPrice domian -> Response Message Payload:

Do not believe you will be able to identify a specific order in MbP Update. Market by Price order book is keyed by price.

You can obtain a price point, side, and market maker Id- of the market maker who is offering the price.

If you are looking for orderIds I think the suitable domain model would be MarketByOrder, then the order book would be keayed by OrderId.


20200323-mbp.gif (57.2 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.

Hi @zoya.farberov

Thanks for your reply. To be precise, I don't need to identify a specific market order, instead, I would like to know the 'aggregated shares of market order' exists in the venue. This information is useful to calculate some pricing data when the market is in auction period and that's why I would like to check if this is available in the MbP domain.

Upvotes
25.4k 90 13 26

Hi @kc.lam

You may also find this article useful How to Sort & Process Level 2.....

and perhaps some bits of this one too Orderbook using Websocket API

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.

@umer.nalla Hi, I read the article you menthoned above, here I have two extra question:

First, Is there any flag for the first RefreshMsg just like the Complete flag for the last RefreshMsg ? As I see, application should clear the whole cached orderbook if receiving the first RefreshMsg, as it can't apply the RefreshMsg on the maybe outdated local cache which cause by network problem, like connection loss.

Second, I read that it is theoretically possible to receive an UpdateMsg interspersed with the multi-part RefreshMsgs, so is there possible that the update message for certain row arrives before refresh message for that row ? For example, the update message indicates delete the row, while later the subsequent refresh message add the row, which may cause the wrong processing result.

Expecting your reply, thanks!

Hi @iscas.wang

please see Level2 orderbook processing problem - Forum | Refinitiv Developer Community

Upvote
124 2 2 0

Thanks everyone for the reply. To share my finding, in my subscription, the aggregated market order price point has "ORDER_PRC"="blank" & "ORDER_TN"="2".

As suggested by @Pimchaya.Wongrukun, if the string field "ORDER_TONE" is sent instead of the enumeration field, we have to contact MyRefinitiv for the list of possible values


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.

Hi @kc.lam

Thanks for taking the time to share your findings - much appreciated!

Upvotes
1 0 0 1

So what does this fields eventually mean?
ORDER_TONE
I get it with values "0" or "1" for CME instrument MarketByPrice domain.
Example:
[{"ID":8,"Type":"Refresh","Domain":"MarketByPrice","Key":{"Service":"ELEKTRON_DD","Name":"ESU3"},"State":{"Stream":"Open","Data":"Ok"},"Qos":{"Timeliness":"Realtime","Rate":"JitConflated"},"PermData":"AwEBUFjA","SeqNumber":52736,"Map":{"KeyType":"Buffer","Summary":{"Fields":{"PROD_PERM":5058,"DSPLY_NAME":"EMINI S&P SEP3","CURRENCY":"USD","ACTIV_DATE":"2023-01-04","LOT_SIZE_A":50,"RECORDTYPE":114,"CROSS_SC":"1E+00","SEQNUM":13873727,"RDN_EXCHD2":"IOM","PROV_SYMB":"ESU3","PR_RNK_RUL":"NOR","OR_RNK_RUL":"PTS ","MNEMONIC":"ES","PERIOD_CDE":"17","TRD_TYPE":"17","TIMACT_MS":45464608,"CONTEXT_ID":2123,"PROD_GRP":"ES","DDS_DSO_ID":8381,"SPS_SP_RIC":".[SPSCMF02L2","BOOK_STATE":"N","HALT_REASN":"0","MKT_OR_RUL":" ","TRD_STATUS":"N ","HALT_RSN":" ","HALT_DATE":null,"HALT_TIME":null,"INST_PHASE":"T ","STAT_IND":"G ","OR_PRC_BAS":"PRC","TIMACT_NS":"12:37:44.608057343","HALT_TM_NS":null}},"CountHint":20,"Entries":[{"Action":"Add","Key":"MTI6MzkyMDI1LzE=","Fields":{"ORDER_TONE":"0","NO_ORD":1,"ACC_SIZE":1,"LV_TIM_NS":"12:36:31.514046091","LV_TIM_MS":45391514,"LV_DATE":"2023-01-04","ORDER_PRC":3920.25,"ORDER_SIDE":"BID"}},{"Action":"Add","Key":"MTQ6MzkyNi8y","Fields":{"ORDER_PRC":3926,"ORDER_SIDE":"ASK","NO_ORD":2,"ORDER_TONE":"1","ACC_SIZE":11,"LV_TIM_MS":45398971,"LV_DATE":"2023-01-04","LV_TIM_NS":"12:36:38.971777679"}},{"Action":"Add","Key":"MTM6MzkyNTUvMg==","Fields":{"ORDER_PRC":3925.5,"ORDER_SIDE":"ASK","NO_ORD":1,"ORDER_TONE":"1","ACC_SIZE":1,"LV_TIM_MS":45400804,"LV_DATE":"2023-01-04","LV_TIM_NS":"12:36:40.804006663"}},{"Action":"Add","Key":"MTI6MzkyMDc1LzE=","Fields":{"ORDER_PRC":3920.75,"ORDER_SIDE":"BID","NO_ORD":2,"ORDER_TONE":"0","ACC_SIZE":21,"LV_TIM_MS":45401448,"LV_DATE":"2023-01-04","LV_TIM_NS":"12:36:41.448462705"}},{"Action":"Add","Key":"MTQ6MzkyMC8x","Fields":{"ORDER_TONE":"0","NO_ORD":1,"ACC_SIZE":1,"LV_TIM_NS":"12:36:39.785276567","LV_TIM_MS":45399785,"LV_DATE":"2023-01-04","ORDER_PRC":3920,"ORDER_SIDE":"BID"}},{"Action":"Add","Key":"MTQ6MzkyNy8y","Fields":{"ORDER_PRC":3927,"ORDER_SIDE":"ASK","NO_ORD":1,"ORDER_TONE":"1","ACC_SIZE":1,"LV_TIM_MS":45286888,"LV_DATE":"2023-01-04","LV_TIM_NS":"12:34:46.888470231"}},{"Action":"Add","Key":"MTM6MzkyMTUvMQ==","Fields":{"ORDER_TONE":"0","NO_ORD":1,"ACC_SIZE":1,"LV_TIM_NS":"12:36:30.316791425","LV_TIM_MS":45390316,"LV_DATE":"2023-01-04","ORDER_PRC":3921.5,"ORDER_SIDE":"BID"}},{"Action":"Add","Key":"MTI6MzkyNTc1LzI=","Fields":{"ORDER_TONE":"1","NO_ORD":1,"ACC_SIZE":1,"LV_TIM_NS":"12:36:38.971462979","LV_TIM_MS":45398971,"LV_DATE":"2023-01-04","ORDER_PRC":3925.75,"ORDER_SIDE":"ASK"}},{"Action":"Add","Key":"MTI6MzkxOTc1LzE=","Fields":{"ORDER_TONE":"0","NO_ORD":1,"ACC_SIZE":1,"LV_TIM_NS":"12:37:23.081695749","LV_TIM_MS":45443081,"LV_DATE":"2023-01-04","ORDER_PRC":3919.75,"ORDER_SIDE":"BID"}}}]}}]

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.