question

Upvotes
Accepted
27 2 4 9

MarketPriceStepByStepExample with multiple RICS

Hi

I am following the MarketPriceStepByStepExample from the blow link,

https://github.com/Refinitiv-API-Samples/Example.EMA.Java.ValueAddObjectsForEMA/tree/c102e99e24467c9a5929fa2548f1b9367c3e6173/src/com/thomsonreuters/platformservices/elektron/objects/examples/marketprice

I want to know, is there any way to pass multiple RICS in one instance of MarketPrice object, for example, I want ASK, BID and Mid prices for RICS - EURAB6E1Y=,EURAB6E2Y=,EURAB6E3Y=,EURAB6E4Y=,EURAB6E5Y=,EURAB6E6Y= by creating one instance of MarketPrice object. Right now, I am able to get values by passing one RIC only, using the code, here i am passing only "EURAB6E15Y="

MarketPrice theMarketPrice;

theMarketPrice = new MarketPrice.Builder()

.withOmmConsumer(ommConsumer)

.withName("EURAB6E15Y=")

.withServiceName(SERVICE_NAME)

.withSynchronousMode(AUTO_DISPATCH)

.build();

print(theMarketPrice.getField("DSPLY_NAME"));

print(theMarketPrice.getField("BID")); // BID

print(theMarketPrice.getField("ASK"));

print(theMarketPrice.getField("CTBTR_1"));

print(theMarketPrice.getField("VALUE_TS1"));

print(theMarketPrice.getField("MID_PRICE"));


I am using another program for getting the live market price and there I can pass multiple RICS like in the following code. Similar to following code, if i can pass multiple RICS in MarketPrice object also in the above code?

while ((line = reader.readLine()) != null) {

String[] values = line.split(",");

for (String str : values) {

//System.out.println(str);

arrayI.add(EmaFactory.createOmmArrayEntry().ascii(str));

}

}

reader.close();

//Combine both Batch and View and add them to ElementList

ElementList batchView = EmaFactory.createElementList();

batchView.add(EmaFactory.createElementEntry().array(EmaRdm.ENAME_BATCH_ITEM_LIST, arrayI));

batchView.add(EmaFactory.createElementEntry().uintValue(EmaRdm.ENAME_VIEW_TYPE, 1));

batchView.add(EmaFactory.createElementEntry().array(EmaRdm.ENAME_VIEW_DATA, array));

System.out.println("registerClient");

logger.info("registerClient");

//consumer.registerClient(EmaFactory.createReqMsg().serviceName("ELEKTRON_DD").name("JPY="), appClient); //GB046842561=

consumer.registerClient(EmaFactory.createReqMsg().serviceName("ELEKTRON_DD").payload(batchView), appClient);

Thanks

Dhruv



elektronrefinitiv-realtimeelektron-sdkrrtema-apielektron-message-api
icon clock
10 |1500

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

1 Answer

Upvote
Accepted
11.5k 16 7 10

Hello @dhruv.arora

I have checked the Example.EMA.Java.ValueAddObjectsForEMA demo project, the MarketPrice class supports one item subscription only (you can refer to this article).

You can check the EMA Java example370__MarketPrice__Batch which demonstrates how to use the API Batch feature.


The Batch feature lets consumer sends multiple items via a single item request message to ADS. After the consumer sends an optimized batch request to the ADS, the ADS responds by sending the items as if they were opened individually so the items can be managed individually.



ahs-batch.png (33.7 KiB)
icon clock
10 |1500

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

Click below to post an Idea Post Idea