We are struggling with requesting Hong Kong level 2 data(sample ric<0700.HKd>) with RDMMsgTypes.MARKET_BY_ORDER message type.
Last week your team confirmed that the DACS ID: NJ2_02_RHB_US69740 is permission to HKG. After working with the SDK, we still can not get data by *.HKd ric with MARKET_BY_ORDER model. In general, we got two questions.
First, we need your team to check again that the DACS account does have the permission to subscribe *.HKd ric with MARKET_BY_ORDER model. Form our DACS control panel, it shows "HKEX - HONG KONG STOCK EXCHANGE L1 L2". Our main DACS account is CustAdmin_US69740, the client name is NJ2-Cell37-TRHP-US69740.
The second question may need your tech team to help us with the Robust Foundation API development. We have reviewed the develop guide documentation and the example code from the tutorial (https://developers.thomsonreuters.com/thomson-reuters-enterprise-platform/robust-foundation-api-rfa-0/learning?content=3130&type=learning_material_item). In our understanding that requesting MARKET_BY_ORDER model is nothing different with requesting the usual MARKETPRICE except changing OMMMsg.setMsgModelType method when register the .HKd ric (like 0700.HKd). We have several issues when testing different requesting method with level 1 ric and level 2 ric.
First, we found that the OMMMsg response we get from .HKd MARKET_BY_ORDER subscribe type is a final message which determined by its isFinal() method. Also, the payload of OMMMsg is empty and the OMMTypes is NO_DATA.
However, requesting .HKd ric with MARKETPRICE model is normal and it can get streaming data. If there is no problem with .HKd ric' permission to request MARKET_BY_ORDER model, than why we can not get stream data with MARKET_BY_ORDER model?
Last is the strangest, using level 1 ric (like 0700.HK) to request MARKET_BY_ORDER can get stream data but with meaningless data.
Please see our implementation code of rfa Client attachment below and give any suggestion that might help us. Another attachment is the MARKET_BY_ORDER response with 0700.HKd ric and 0700.HK ric log and MARKETPRICE response log with 0700.HKd ric.
Thanks for your time.
There are two categories of Level 2 data:
New Level 2 use the same RIC as Level 1 RIC, while Legacy level 2 use <Level 1 RIC> + <special suffix>, i.e. 0700.HKd.
And as mentioned, new Level 2 data contains nested data structures.
I would suggest checking the level 2 tutorial for how to decode the level 2 data.
You need to drop the small d suffix and use the base RIC when requesting RDM Level 2 data such as MarketByPrice and MarketByOrder - i.e. just use 0700.HK
The 0700.HKd means you want legacy Top of order book (L2) data - which is only available in MarketPrice format.
Also, try testing with a example application such as 'Consumer' example (RFA C++) or 'com.reuters.rfa.example.omm.cons' (RFA Java) - to help confirm if the issue lies with your code or your permissions.