Given an equity RIC, e.g. 8411.T, 0001.HK, how should my logic determine the RIC name for the respective market by price information?
Is there a table of exchanges which indicates adding "D" as prefix or adding "d" as suffix to the main RIC to get the level 2 RIC?
But that would be a static table.
Should I refer one of the FIDs from prefix "0#" to get the name of the level 2 RIC? Like "LONGLINK2" for 0#8411.T? But seems like the FID that carries the level 2 RIC name are not consistent across other exchanges.
If you want the full market by price order book, just change the Domain in the Req from MarketPrice to MarketByPrice.
The exact Enum you will have to use may vary slightly depending on which API you are using e.g.
if you are using EMA Java it would be something like:
EmaFactory.createReqMsg().domainType(EmaRdm.MMT_MARKET_BY_PRICE) .serviceName("DIRECT_FEED").name("AAO.V"), appClient, 0)
for EMA C++ it would be something like:
consumer.registerClient( ReqMsg().domainType( MMT_MARKET_BY_PRICE ).serviceName( "DIRECT_FEED" ).name( "AAO.V" ), client );
Please refer to EMA Consumer example 140 which is included with both EMA Java and C++ - which request MarketByOrder rather than MarketbyPrice - but the principle is the same.
You may also find the intro part of the following article useful.
You should also reference the RDMUsageGuide.pdf which is provided with both of the above SDKs - for details on the definition and structure of the MarketByPrice domain.
Having said all of the above, if you are only interested in top of order book and / or data in a standard MarketPrice instrument, then I recommend you contact the Content Helpdesk at My.Refinitiv who should be able to advise on the exact RICs you require.