Você está na página 1de 18

THOMSON REUTERS EIKON DESKTOP DATA

APIS DOCUMENTATION
EIKON DESKTOP DATA API
REFERENCE
Laurent Lefevre/F & R

API OVERVIEW
Thomson Reuters Eikon Data APIs enables developers to write custom applications using Thomson
Reuters Eikon APIs. Custom applications are applications running in a separate process than Thomson
Reuters Eikon Desktop and Thomson Reuters Eikon Excel.

What

Eikon Desktop Data APIs enables customers to build custom application using
Thomson Reuters Eikon APIs

Eikon APIs

AdfinX Real-Time
AdfinX Analytics
DEX2
Rsearch

Supported
languages

VBA
C++
.Net languages (C#, VB.Net)

Supported
deployment modes

Customer Managed
TR Managed
TR Hosted

Installation

It is part of the core package and does not requires any add-on to be used

Constraints

It requires Thomson Reuters Eikon Desktop to be running and user to signs-in Eikon
Desktop.
Data through custom applications is subject to the same limitations and entitlements as
through Thomson Reuters Eikon Desktop.

Access to real-time data


Financial functions
Access to fundamental data
Search for RIC name based on criteria.

DISCLAIMER
Thomson Reuters Eikon services as well as the information contained in the Thomson Reuters Eikon services are
subject to license restrictions set up in the Thomson Reuters Business Principles, Reuters Business Principles or
any other relevant agreement. You hereby acknowledge and agree that you will comply with such restrictions and
will be liable in case of non-compliance vis--vis Thomson Reuters and/or any third party providers.
Please read the following documents for more information:
https://customers.reuters.com/a/adminsupport/nondisplayusagepolicies.aspx
http://thomsonreuters.com/3ptyterms/

Document version: 3.0


Date of issue: 9 February 2013

THOMSON REUTERS EIKON APIS

Eikon Desktop Data API

TABLE OF CONTENT
EIKon desktop DATA API ............................................................................................. 1
API OVERVIEW .............................................................................................................. 1
Disclaimer ...................................................................................................................... 1
TABLE OF CONTENT .................................................................................................... 2
How does it work? ........................................................................................................ 3
Eikon Desktop Data API library ................................................................................... 3
Quick Start ..................................................................................................................... 7
Appendix A - Status workflows ..................................................................................16
Appendix B Migration from EIKON 2.0SR2 to EIKON 3.0 ......................................17
Appendix C Migrating custom application from 3000XTRA to Thomson Reuters EIKON
.......................................................................................................................................18

Document version: 3.0


Date of issue: 9 February 2013
2

THOMSON REUTERS EIKON APIS

Eikon Desktop Data API

HOW DOES IT WORK?


Eikon Desktop Data API only works when connected to Thomson Reuters Platform through Thomson Reuters
Eikon Desktop.

Custom applications have to instantiate and initialize Eikon Desktop Data API before using Thomson Reuters Eikon
APIs. During the initialization, Eikon Desktop Data API ensures Thomson Reuters Eikon Desktop is running on the
same machine and is connected to the Platform. If Thomson Reuters Eikon Desktop is not launched when Eikon
Desktop Data API initializes, it launches Thomson Reuters Eikon Desktop.
Eikon Desktop Data API is initialized successfully when it is connected to Thomson Reuters Eikon Desktop and
Thomson Reuters Eikon Desktop is connected to the Platform (the user processed the sign in).
Custom applications can track the Eikon Desktop Data API connection state via a status events and a status
property.
Thomson Reuters Eikon APIs can only be used when Eikon Desktop Data API initializes successfully.
If Thomson Reuters Eikon Desktop is closed, the custom application would not be able to consume data from the
Thomson Reuters Platform.
Data through custom applications is subject to the same limitations and entitlements as through Thomson Reuters
Eikon Desktop: If a user can subscribe to a maximum of 2500 instruments for Thomson Reuters Hosted and
Managed deliveries, this limit is applicable to the user profile not to the retrieval process.
For example: If the user gets 2000 instruments through custom applications, the user is limited to 500 through
Thomson Reuters Eikon Desktop and Thomson Reuters Eikon Excel

EIKON DESKTOP DATA API LIBRARY


METHOD
Initialize
EEikonDataAPIInitializeResult Initialize();

This method initializes EikonDesktopDataAPI library. It returns the status of the connection via an enumerated
value.
During the initialization, EikonDesktopDataAPI library checks if Thomson Reuters Eikon Desktop is running and
connected to the Platform. If it is not running, EikonDesktopDataAPI library launches Thomson Reuters Eikon. The
initialization is successful only when Thomson Reuters Eikon Desktop library is launched, a user signs in and the
connection to the Platform is established successfully.
The initialize method is asynchronous (non-blocking) and returns a result before the connection is initialized.

EEikonDataAPIInitializeResult

Succeed: The initialization is done or on going.

Error_Reinitialize: The initialization was already done. This error occurs when you try to reinitialize the library after a disconnection. This workflow is not supported for now.

InitializeFail: The initialization failed.

Document version: 3.0


Date of issue: 9 February 2013
3

THOMSON REUTERS EIKON APIS

Eikon Desktop Data API

Specific to C++
The COM function call returns:

S_OK: the initialization is ongoing

S_FALSE: the initialization is complete. Check the connection status to see if the connection is
established.

E_FAIL: initialization fails

Instantiate other APIs


To instantiate other APIs there are two generic methods and several specialized methods .Generic methods can
only be used to instantiate Thomson Reuters Eikon Desktop Data APIs. Here are the C++ prototypes:
CreateInstanceFromClassID(REFCLSID classID, IUnknown** instance)
CreateInstanceFromProgID(BSTR progID, IUnknown** instance)

Parameters:
classID: the COM object class ID to be created.
progID: the COM object prog ID to be created.
Return value:
S_OK: the COM object has been successfully instantiated
E_FAIL: the instantiation failed.
Thomson Reuters recommends using the specialized methods. All methods return a specific instance of a
Thomson Reuters Eikon Data API.
RSearch API:
CreateRSearchMgr

Dex2 API:
CreateDex2Mgr
CreateMetaDataMgr

AdfinX Real-Time API:


CreateAdxRtList
CreateAdxRtContribute
CreateAdxRtHistory
CreateAdxRtChain
CreateAdxRtSourceList

AdfinX Analytics API:


CreateAdxBondModule
CreateAdxOptionModule
CreateAdxConvBondModule
CreateAdxForexModule
CreateAdxExoticModule
CreateAdxSwapModule
CreateAdxModule
CreateAdxDateModule

Document version: 3.0


Date of issue: 9 February 2013
4

THOMSON REUTERS EIKON APIS

Eikon Desktop Data API

CreateAdxUtilityModule
CreateAdxYieldCurveModule
CreateAdxCreditModule
CreateAdxEquityModule
CreateAdxAsian
CreateAdxInit
CreateAdxAsset
CreateAdxBarrierCapFloor
CreateAdxAlgorithm
CreateAdxBasket
CreateAdxBond
CreateAdxCalcMethod
CreateAdxLibor
CreateAdxMapLibor
CreateAdxCurrency
CreateAdxCalendar
CreateAdxCapFloor
CreateAdxCashFlow
CreateAdxChooser
CreateAdxConvBond
CreateAdxCorrelation
CreateAdxCrossCurrency
CreateAdxDefault;
CreateAdxDigitalCapFloor
CreateAdxDividendModel
CreateAdxFixedLeg
CreateAdxFloatLeg
CreateAdxForex
CreateAdxFra
CreateAdxFrn
CreateAdxFuture
CreateAdxFxModel
CreateAdxIdxStyle
CreateAdxIlb
CreateAdxModelBuilder
CreateAdxOpBinary
CreateAdxOpLookBack
CreateAdxOption
CreateAdxParse
CreateAdxRainbow
CreateAdxRateModel
CreateAdxRepo
CreateAdxRiskModel
CreateAdxStyle
CreateAdxStyleTable
CreateAdxSwap
CreateAdxTermStructure
CreateAdxVolatilityModel

Document version: 3.0


Date of issue: 9 February 2013
5

THOMSON REUTERS EIKON APIS

Eikon Desktop Data API

CreateAdxAssetSwap
CreateAdxTimeSeries
CreateAdxFrq
CreateAdxCDOTranche
CreateAdxNToDefaultCDS

PROPERTY
Status
The status property returns an EEikonStatus enumeration indicating the Thomson Reuters Platform connection
state.

EVENT
OnStatusChanged(EEikonStatus)
The OnStatusChanged event notifies the application when connection status changed. The EEikonStatus
enumeration is passed as an argument.

ENUM
EEikonStatus
This enumeration indicates the status of the connection to Thomson Reuters Platform
Connected: EikonDesktopDataAPI library is connected to the Thomson Reuters Platform. Thomson Reuters Eikon
APIs can be used.

Disconnected: This value indicates either EikonDesktopDataAPI library is not initialized yet or
EikonDesktopDataAPI library has been disconnected.
The disconnection can be due to:
o

Thomson Reuters Eikon shuts down - when the user closes the application.

An ESO (Exclusive Sign-On) when the user signs in on another device.

Note: when this event occurs, Thomson Reuters Eikon APIs cannot be used anymore and the custom
application must be stopped and restarted.

Offline: the application has lost the connection to the Platform because of a network or Platform issue.
Once the connection is restored the connection state switches back to connected status.

Local Mode: This status is specific to Customer Managed user accounts. The Local Mode status indicates
that the connection to the Platform is lost but the connection to the local RMDS is still available and AdfinX
real-time and AdfinX Analytics can still be used.

Document version: 3.0


Date of issue: 9 February 2013
6

THOMSON REUTERS EIKON APIS

Eikon Desktop Data API

QUICK START
Here are some basic code samples in C++, C# and VBA.

QUICK START IN C++


//HEADER
static _ATL_FUNC_INFO _OnStatusChangedInfo = {CC_STDCALL, VT_EMPTY, 1, {VT_UINT}};
//StatusListtener listen to Eikon Desktop Data API event
class EikonStatusListener
: public IDispEventSimpleImpl<0, EikonStatusListener, &__uuidof(_IEikonDesktopDataAPIEvents)>
{
public:
EikonStatusListener(HWND);
~EikonStatusListener(void);
BEGIN_SINK_MAP(EikonStatusListener)
SINK_ENTRY_INFO(0, __uuidof(_IEikonDesktopDataAPIEvents), 1, OnStatusChanged,
&_OnStatusChangedInfo)
END_SINK_MAP()
//OnStatusChanged event callback.
HRESULT __stdcall OnStatusChanged(EEikonStatus eStatus);
private:
HWND m_hwnd;
};
// Class to manage Eikon Desktop Data API
class EikonDesktopDataAPIWrapper
{
public:
EikonDesktopDataAPIWrapper(HWND);
~EikonDesktopDataAPIWrapper(void);
// Wrapper Methods
bool CreateInstance();
bool Initialize();
bool DestoryInstance();
bool ListenToEvents();
bool CancelToListen();
void InitAll();
void UninitAll();
private:
CComPtr<IEikonDesktopDataAPI> m_spDDA;

Document version: 3.0


Date of issue: 9 February 2013
7

THOMSON REUTERS EIKON APIS

Eikon Desktop Data API

CComPtr<IUnknown> m_spUnkDDA;
EikonStatusListener* m_listener;
HWND m_hwnd;
};

//Source
bool EikonDesktopDataAPIWrapper::CreateInstance()
{
::CoInitialize(NULL);
HRESULT hr = E_FAIL;
if (m_spDDA.p == NULL)
{
//Instantiate Eikon Desktop Data API
hr = m_spDDA.CoCreateInstance( __uuidof(EikonDesktopDataAPI) );
}
return (hr == S_OK);
}
bool EikonDesktopDataAPIWrapper::Initialize()
{
HRESULT hr = E_FAIL;
if (m_spDDA.p != NULL)
{
//Initialize Eikon Desktop Data API
hr = m_spDDA->Initialize();
}
return (hr == S_OK);
}
bool EikonDesktopDataAPIWrapper::DestoryInstance()
{
HRESULT hr = E_FAIL;
if (m_spDDA.p != NULL)
{
m_spDDA.Release();
hr = S_OK;
}
::CoUninitialize();
return (hr == S_OK);
}
bool EikonDesktopDataAPIWrapper::ListenToEvents()

Document version: 3.0


Date of issue: 9 February 2013
8

THOMSON REUTERS EIKON APIS

Eikon Desktop Data API

{
HRESULT hr = E_FAIL;
if (m_spDDA.p != NULL)
{
if (m_spUnkDDA.p == NULL)
{
hr = m_spDDA.QueryInterface(&m_spUnkDDA);
}
if (m_listener == NULL)
{
m_listener = new EikonStatusListener(m_hwnd);
}
if (m_spUnkDDA.p != NULL && m_listener != NULL)
{
// Listen to Eikon Desktop Data API event
hr = m_listener->DispEventAdvise(m_spUnkDDA,
&__uuidof(_IEikonDesktopDataAPIEvents));
}
}
return (hr == S_OK);
}
bool EikonDesktopDataAPIWrapper::CancelToListen()
{
HRESULT hr = E_FAIL;
if (m_spUnkDDA.p != NULL && m_listener != NULL)
{
hr = m_listener->DispEventUnadvise(m_spUnkDDA);
m_spUnkDDA.Release();
delete m_listener;
m_listener = NULL;
}
return (hr == S_OK);
}
void EikonDesktopDataAPIWrapper::InitAll()
{
CreateInstance();
ListenToEvents();
Initialize();
}

void EikonDesktopDataAPIWrapper::UninitAll()

Document version: 3.0


Date of issue: 9 February 2013
9

THOMSON REUTERS EIKON APIS

Eikon Desktop Data API

{
CancelToListen();
DestoryInstance();
}

Document version: 3.0


Date of issue: 9 February 2013
10

THOMSON REUTERS EIKON APIS

Eikon Desktop Data API

QUICK START IN C#
Prerequisites
Before starting, check the references in your C# project. Ensure the Thomson Reuters Eikon APIs Interop files are
added and point to the correct path. If the yellow question mark icon appears next to the Interop files, remove the
reference and add it again.

To add Interop file, right click on References folder, select Add Reference, click Browse tab and navigate in
Thomson Reuters Eikon Program folder, check for files starting with Interop.

Document version: 3.0


Date of issue: 9 February 2013
11

THOMSON REUTERS EIKON APIS

Eikon Desktop Data API

Note: By default, Thomson Reuters Eikon is either installed in folder <ProgramFiles>\Thomson


Reuters\TRD 6\Program or in the user profile <LOCALAPPDATA>\Thomson Reuters\TRD
6\Program.
Here is the list of interop files that can be added:
Interop file name

Related Eikon API

Interop.EikonDesktopDataAPI.dll

Eikon Desktop Desktop Data API

Interop.AdfinXAnalyticsFunctions.dll

Adfin Analytics function based interface

Interop.AdfinXAnalyticsObjects.dll

Adfin Analytics object based interface

Interop.Dex2.dll

DEX2

Interop.RSearch.dll

RSearch

Interop.RTX.dll

AdfinX Real-Time

Document version: 3.0


Date of issue: 9 February 2013
12

THOMSON REUTERS EIKON APIS

Eikon Desktop Data API

Sample
private EikonDesktopDataAPI m_eikonDDA;
private void Init()
{
m_eikonDDA = new EikonDesktopDataAPI();
m_eikonDDA.OnStatusChanged += new
_IEikonDesktopDataAPIEvents_OnStatusChangedEventHandler(m_eikonDDA_OnStatusChanged);
m_eikonDDA.Initialize();
}
private void Term()
{
if (m_eikonDDA != null)
{
m_eikonDDA.OnStatusChanged -= new
_IEikonDesktopDataAPIEvents_OnStatusChangedEventHandler(m_eikonDDA_OnStatusChanged);
Marshal.ReleaseComObject(m_eikonDDA);
m_eikonDDA = null;
}
}
private void m_eikonDDA_OnStatusChanged(EEikonStatus status)
{
switch (status)
{
case EEikonStatus.Connected:
case EEikonStatus.LocalMode:
case EEikonStatus.Disconnected:
case EEikonStatus.Offline:
break;
}
}

Document version: 3.0


Date of issue: 9 February 2013
13

THOMSON REUTERS EIKON APIS

Eikon Desktop Data API

QUICK START IN VBA


Prerequisites
Before starting, check the references in your VBA project. Ensure the Thomson Reuters Eikon APIs point to the
Thomson Reuters Eikon Program folder
Note: By default, Thomson Reuters Eikon is by default either installed in folder <ProgramFiles>\Thomson
Reuters\TRD 6\Program or in the user profile <LOCALAPPDATA>\Thomson Reuters\TRD
6\Program.
If references to Thomson Reuters Eikon APIs have not been added yet, in the VBA interface, go in menu Tools
and select References

Click Browse , navigate in Thomson Reuters Eikon Program folder, and select the appropriate library.
Library file name

Related Eikon API

EikonDesktopDataAPI.dll

Eikon Desktop Data API

Adxfo.dll

Adfin Analytics function based interface

Adxoo.dll

Adfin Analytics object based interface

Dex2.dll

DEX2

RSearch.dll

RSearch

RTX.dll

AdfinX Real-Time

Document version: 3.0


Date of issue: 9 February 2013
14

THOMSON REUTERS EIKON APIS

Eikon Desktop Data API

Sample
Public WithEvents EikonDDA As EikonDesktopDataAPI
Private Sub Document_Open()
InitEikonDesktopDataAPI
End Sub
Private Sub InitEikonDesktopDataAPI()
Set EikonDDA = New EikonDesktopDataAPI
Dim EikonInitResult As EikonDesktopDataAPILib.EEikonDesktopDataAPIInitializeResult
EikonInitResult = EikonDDA.Initialize
If EikonInitResult = Error_InitializeFail Then
'Handle fail case here
ElseIf EikonInitResult = Error_Reinitialize Then
'Handle reinitialize case here
End If
End Sub
Private Sub EikonDDA_OnStatusChanged(ByVal EStatus As EikonDesktopDataAPILib.EEikonStatus)
'ToDo: Write your code to manage status change here
Select Case EStatus
Case EEikonStatus.Connected
'Handle Connected status here
Case EEikonStatus.Disconnected
'Handle Disconnected status here
Case EEikonStatus.LocalMode
'Handle LocalMode status here
Case EEikonStatus.Offline
'Handle Offline status here
Case Else
'Handle Else here
End Select
End Sub

Document version: 3.0


Date of issue: 9 February 2013
15

THOMSON REUTERS EIKON APIS

Eikon Desktop Data API

APPENDIX A - STATUS WORKFLOWS


Status transition diagrams
Disconnected

Connected

Switch between connected and local mode

Local Mode

Offline

EikonDesktopData
API is connected to
the Platform
through Thomson
Reuters Eikon
Desktop

Terminal state

The application is
disconnected
because of a
network failure or a
Platform issue.

Connection to the
Platform cant be
established

EikonDesktopDesk
topDataAPI is
connected to the
Platform through
Thomson Reuters
Eikon Desktop

Disconnected

Thomson Reuters
Eikon Desktop shuts
down

EikonDesktopDesk
topDataAPI is
connected to the
Platform through
Thomson Reuters
Eikon Desktop

Local mode to Disconnected

Connected to Offline

Connected to disconnected

Initial state

Thomson Reuters
Eikon Desktop shuts
down

The connection to
the Platform has
been lost while the
application was
running

Document version: 3.0


Date of issue: 9 February 2013
16

THOMSON REUTERS EIKON APIS

Eikon Desktop Data API

APPENDIX B MIGRATION FROM EIKON 2.0SR2 TO EIKON 3.0


The naming of EikonDesktopSDK, released in Thomson Reuters Eikon 2.0SR2, has generated confusion with the
Application SDK. Thus it has been decided to rename it as Eikon Desktop Data API.
To ensure, there will be no further ambiguity, the dll name and the component name have been renamed as well.
Those who started using this API will have to modify their project and source code to use the new naming. The API
behaviour is unchanged.
To migrate from EikonDesktopSDK to EikonDesktopDataAPI customers have to:

Update the reference or libraries of their project: remove EikonDesktopSDK.dll reference and add
EikonDesktopDataAPI.dll reference

Modify the source code:

In C#
Replace

With

EikonDesktopSDK

EikonDesktopDataAPI

_IEikonDesktopSDKEvents_OnStatusChangedEventHandler

_IEikonDesktopDataAPIEvents_OnStatusChangedEventHandler

EEikonSDKInitializeResult

EEikonDataAPIInitializeResult

In Visual Basic or VBA


Replace

With

EikonDesktopSDK

EikonDesktopDataAPI

EikonDesktopSDKLib.EEikonSDKInitializeResult

EikonDesktopDataAPILib.EEikonDesktopDataAPIInitializeResult

EikonDesktopSDKLib.EEikonStatus

EikonDesktopDataAPILib.EEikonStatus

In C++
Replace

With

_IEikonDesktopSDKEvents

EikonDesktopDataAPI

IEikonDesktopSDK

_IEikonDesktopDataAPIEvents_OnStatusChangedEventHandler

Document version: 3.0


Date of issue: 9 February 2013
17

THOMSON REUTERS EIKON APIS

Eikon Desktop Data API

APPENDIX C MIGRATING CUSTOM APPLICATION FROM 3000XTRA TO


THOMSON REUTERS EIKON
It is hard to provide a detailed description on how to migrate custom application written with 3000Xtra to Thomson
Reuters Eikon but here are some guidelines.

First, Adfin-X Analytics and AdfinX-Real-time API use the same interface as in 3000Xtra and only the instantiation
of the object has to be changed: while in 3000Xtra you were instantiating these objects directly you will have to
modify the code and use the createXXX methods of the EikonDesktopDataAPI object.
If the custom application was using DEX then the code will have to be reviewed as the interface to request
fundamental data has been enhanced. If DEX was used to request time series data from the DBU, DEX2 is no
more managing time series request. A time series API will be delivered in the future.

Second, the custom application will have to use the EikonDesktopDataAPI. A quick migration path consists in
initializing the EikonDesktopDataAPI at start-up and block the application initialization until EikonDesktopDataAPI
initializes successfully. If EikonDesktopDataAPI initialization fails or if it is disconnected while the application is
running, the application should display an error message and shutdown (the application needs to be restarted to reinitialize the connection to Thomson Reuters Eikon Desktop). The Eikon APIs instantiation has to use the
createXXX methods of the EikonDesktopDataAPI object instead of the standard COM instantiation.

Document version: 3.0


Date of issue: 9 February 2013
18

Você também pode gostar