Elektron SDK - C/C++

API Family: Elektron

ETA Quick Start

Last update May 2018
Compilers Tutorial demonstration: Visual Studio 2017, gcc 4.4.7 (RedHat)

Refer to the ETA Compiler Guides for a complete list
Prerequisites Setup your build environment as outlined in the ESDK Build System.

Access to an existing TREP or Elektron platform to retrieve content

 

Introduction

The goal of this Getting Started tutorial is to provide the developer the steps required to execute an Elektron Transport API (ETA) sample application within their environment.  The ETA API is a sub-component of the ESDK (Elektron SDK) package that includes a number of examples available to test specific functionality.  For our purposes, the goal is to walk through the procedure to specify the connection details to access your market data environment to connect and retrieve market data content.

The tutorial will cover both Linux and Windows environments.

Select the consumer sample

Once you've completed the pre-requisite steps to build the necessary project files for your environment, as outlined within the ESDK Build System guide, navigate to the VAConsumer consumer sample.  This sample demonstrates the retrieval of market data from Elektron.

Note: your compiler directory may differ than the selection below. 

Windows

Linux

Running the consumer

To successfully run this example, the following is required:

  • Server connection details
  • Service providing market data

You will need to reach out to your market data team to get this required information. 

The Refinitiv Enterprise Platform (TREP) or the Refinitiv Elektron platform are services that will demonstrate the retrieval of market data. The VAConsumer example is functionally very rich, providing many features of an ETA consumer. The sample does not utilize any configuration file but rather uses the command line to specify configuration. For our purposes, we simply need to specify our market data server, and the data we wish to consume. Within the project readme file, contains the details to run the example.  The project readme is located under the Applications directory for both Windows and Linux, i.e.

We will be using only the minimum parameters to pull out the necessary data, i.e.

> VAConsumer -tcp <server>:<port> <service> mp:<RIC>

The server and service are values you will need to acquire from your market data team.  Once determined, we specify the Reuters Instrument Code (RIC) called: AAPL.O.  For example, this test is using a server called elektron on port 14002 using the service called: ELEKTRON_AD.

> VAConsumer -tcp elekron:14002 ELEKTRON_AD mp:AAPL.O

Running on either Windows or Linux, the output includes some initial information and some details related to the service we are connected followed by our market data output. The first update is our initial image containing all fields containing the latest up-to-date values. Following this image, we will begin to see updates reflecting changes in the market.

> VAConsumer.exe -tcp elektron:14002 ELEKTRON_AD mp:AAPL.O
Connections:
        elektron:14002 ELEKTRON_AD
                MarketPriceItems: AAPL.O
                MarketByOrderItems:
                MarketByPriceItems:
                YieldCurveItems:
                MarketPriceItems (Private Stream):
                MarketByOrderItems (Private Stream):
                MarketByPriceItems (Private Stream):
                YieldCurveItems (Private Stream):

Unable to load field dictionary.  Will attempt to download from provider.
        Error Text: Can't open file: 'RDMFieldDictionary'.

Unable to load enum type dictionary.  Will attempt to download from provider.
        Error Text: Can't open file: 'enumtype.def'.

Adding connection to elektron:14002...

Connection up! Channel fd=500


Received Login Response
        State: Open/Ok/None - text: "Login accepted by host cil-ads2."


Received Source Directory Response:     State: Open/Ok/None - text: ""

Received serviceName: DDN_SSL

Received serviceName: ELEKTRON_AD

        Service State: Up

Received serviceName: DDN_RDF

Received serviceName: EZD_RSSL

Received serviceName: EZD_SSL


Received Dictionary Response: RWFFld
Field Dictionary complete.

Received Dictionary Response: RWFEnum
Enumerated Types Dictionary complete.

(Channel 500):
AAPL.O
DOMAIN: RSSL_DMT_MARKET_PRICE
State: Open/Ok/None - text: "All is well"
        PROD_PERM           74
        RDNDISPLAY          66
        DSPLY_NAME          APPLE INC
        RDN_EXCHID             (0)
        TRDPRC_1            189.47
        TRDPRC_2            189.47
        TRDPRC_3            189.47
        TRDPRC_4            189.465000
        TRDPRC_5            189.465000
        NETCHNG_1           1.32
        HIGH_1              189.65
        LOW_1               187.65
        PRCTCK_1            (1)
        CURRENCY            USD(840)
        TRADE_DATE          25 MAY 2018
        TRDTIM_1            17:09:00:000:000:000
        OPEN_PRC            188.23
        HST_CLOSE           188.15
        BID                 189.47
        BID_1               189.47
        BID_2               189.47
        ASK                 189.48
        ASK_1               189.48
        ASK_2               189.48
        NEWS                YYYY
        NEWS_TIME           16:56:19:000:000:000
        BIDSIZE             3
        ASKSIZE             4
        ACVOL_1             10070113
        EARNINGS            10.8539
        YIELD               1.5520

        ...

        QUOTIM_MS           61780668
        QUOTIM              17:09:40:000:000:000
        ORDRECV_MS          17:09:40:667:000:000
        ORDREC2_MS          <blank data>

(Channel 500):
AAPL.O
DOMAIN: RSSL_DMT_MARKET_PRICE
UPDATE TYPE: 1
        BID                 189.47
        ASK                 189.48
        BIDSIZE             4
        ASKSIZE             4
        BIDFINMMID          <blank data>
        ASKFINMMID          <blank data>
        BIDXID              DEX(13)
        ASKXID              BAT(217)
        BID_COND_N          R
        ASK_COND_N          R
        BID_MMID1           DEX
        ASK_MMID1           BAT
        GV1_TEXT            A
        LIMIT_INDQ          BOE(25)
        SEQNUM_QT           12173593
        PRC_QL_CD              (0)
        PRC_QL3                (0)
        QTE_ORIGIN
        GV1_FLAG
        NBBO_IND            6  (5)
        QUOTIM_MS           61780668
        QUOTIM              17:09:40:000:000:000
        ORDRECV_MS          17:09:40:668:000:000
        ORDREC2_MS          <blank data>

 

Once you have successfully completed the steps above, you can further your learning by following the series of ETA tutorials.