C++ API to connect to Refinitiv Real Time Optimized
Hello,
I would like to know what API's are available for a C++ application to connect to Refinitiv Real Time Optimized to fetch data from cloud? I came across RTSDK for C/C++ and EMA, could you please let me know if these are the correct API's I am looking at or are there any other ways to fetch data from cloud from a C++ application.
Is there any available API which works similar to RFA to connect to Refinitiv Real Time Optimized?
Your help is much appreciated.
Thank You.
Best Answer
-
Hello @hdiniz ,
RTSDK is the recommended way to access Refinitiv Real Time Optimized using C/C++.
RTSDK Enterprise Message API(EMA) is a higher level API, message tier API that is high performance and is the preferred approach for the majority of the use cases.
RTSDK Enterprise Transport API (ETA) is a lower level, transport level API. EMA is built on top of ETA, with ETA requiring significantly more coding effort but also allowing the greatest flexibility on the implementation.
Please also find article Choosing a Refinitiv Real-time Streaming API with detailed suggestions on selecting streaming API that is most attuned with your organization's requirements.
0
Answers
-
Hello @hdiniz
While my colleague has provided clear information about the C++ API for RTO, you can find more RTSDK C++ detail from the following resources:
- RTSDK C++ Quick Start Page
- Introduction to the refinitivapis/realtimesdk_c Docker Image: If you want a quick test and run for the RTSDK C++
We have a ready-to-use EC2 AMI on AWS that contains all SDK for the RTO (including the RTSDK C++) too, you can find more detail on this How to Setup Refinitiv's Amazon EC2 Machine Image for Refinitiv Real-Time - Optimized article.
0 -
@zoya faberov @wasin.w Thank you for the information provided, this is exactly what I was looking for.
0 -
@zoya faberov @wasin.w are there any C++ EMA sample programs to subscribe to a particular currency by specifying RIC? e.g. EUR= to get feeds for EUR.
Is the currency list configurable? If so could you please specify the config field and name of configuration file.
0 -
Hello @hdiniz
There are two examples for the RTO connection, the EMA Cons113, and Cons450 examples. You can find more detail about how to run the Cons113 example from the "Cons113 (RTO test)" section of the RTSDK C++ Quick Start page. Please note that you can add the "-itemName" parameter to specify the RIC you want to subscribe to.
# Windows example
Cons113 -username <Machine-ID> -password <RTO Password> -clientId <App-Key> -itemName EUR=Or
Cons450 -username <Machine-ID> -password <RTO Password> -clientId <App-Key> -itemName EUR=
Note: Cons450 is the recommended example.
I also recommend you check the RTSDK C++ tutorials page that contains a step-by-step guide for using the EMA C++ to connect and consume data from Refinitiv Real-Time.
0 -
Hi @hdiniz
Please refer to the source code of the above examples - e.g.
consumer.registerClient( ReqMsg().serviceName( "ELEKTRON_DD" ).name( itemName )
where itemName is defaulted to "IBM.N" and can be overridden on the command line.
I also recommend you work through the basic Tutorials which should increase your understanding of how to use EMA. Tutorials | Refinitiv Developers
Unfortunately, I don't understand the question 'Also could you please let me know what is the data format of market feeds with RTO? ' please explain in more detail what you mean.
I should also add that if you wish to request multiple instruments; you can either call registerClient repeatedly with a unique RIC code each time OR use a Batch request as demonstrated in the example 370_MP_Batch - for example below it requests IBM.N and TRI.N
UInt64 handle = consumer.registerClient( ReqMsg().serviceName( "ELEKTRON_DD" )
.payload( ElementList().addArray( ENAME_BATCH_ITEM_LIST,
OmmArray()
.addAscii( "TRI.N" ).addAscii( "IBM.N" ).complete() ).complete() ),
client );0 -
@umer.nalla what I meant by data format is the format in which market data is sent from Refinitiv to the subscribing application. e.g. encrypted xml, json etc.
As per my understanding logging can be enabled which would log all incoming feeds into a file, what format of the log file would it be?
0 -
Hello @hdiniz
The RTO supports two data formats:
- WebSocket: JSON string messages
- RSSL: Refinitiv proprietary TCP connection, the data is encoded in binary format. This is the same data format as the RFA OMM interface (RSSL connection).
The Cons113 and Cons450 examples use the RSSL data format. The API just logs data to a file (or STDOUT) in XML format. You can find more detail in the XML trace section of the Enterprise Message API (EMA) - Configuration Overview article.
0 -
AppClient client;
// create OMM consumer
OmmConsumer consumer(
OmmConsumerConfig()
.host( "ADS:14002" )
.username( "user1" )
);
what should be the IP/username for my config,
0 -
0
-
Hi @skumar
I can see your question was answered in your other post - Refinitiv Real-Time -- Optimized - Forum | Refinitiv Developer Community .
Whilst you can specify an RTO endpoint and port in the source code, we recommend you use Service Discovery as demonstrated in examples 113 and 450.
I suspect the code above is from a simpler example such as 100 - which is not coded to support RTO connections.
0
Categories
- All Categories
- 3 Polls
- 6 AHS
- 36 Alpha
- 166 App Studio
- 6 Block Chain
- 4 Bot Platform
- 18 Connected Risk APIs
- 47 Data Fusion
- 34 Data Model Discovery
- 684 Datastream
- 1.4K DSS
- 615 Eikon COM
- 5.2K Eikon Data APIs
- 10 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- 3 Trading API
- 2.9K Elektron
- 1.4K EMA
- 249 ETA
- 554 WebSocket API
- 37 FX Venues
- 14 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 23 Messenger Bot
- 3 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 60 Open Calais
- 275 Open PermID
- 44 Entity Search
- 2 Org ID
- 1 PAM
- PAM - Logging
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 22 RDMS
- 1.9K Refinitiv Data Platform
- 643 Refinitiv Data Platform Libraries
- 4 LSEG Due Diligence
- LSEG Due Diligence Portal API
- 4 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.2K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 12 World-Check Customer Risk Screener
- 1K World-Check One
- 46 World-Check One Zero Footprint
- 45 Side by Side Integration API
- 2 Test Space
- 3 Thomson One Smart
- 10 TR Knowledge Graph
- 151 Transactions
- 143 REDI API
- 1.8K TREP APIs
- 4 CAT
- 26 DACS Station
- 121 Open DACS
- 1.1K RFA
- 104 UPA
- 192 TREP Infrastructure
- 228 TRKD
- 915 TRTH
- 5 Velocity Analytics
- 9 Wealth Management Web Services
- 90 Workspace SDK
- 11 Element Framework
- 5 Grid
- 18 World-Check Data File
- 1 Yield Book Analytics
- 46 中文论坛