When retrieving economic indicators' data from Eikon API (using Python 2.7 in my case), requests take 1-2 seconds to get a response.. On the markets, this is a huge time lag which penalizes me in my purposes. Is there any way to improve Eikon API response time ??
To give you an accurate and comprehensive advice it would be very helpful to know what your objective and end to end workflow are with regard to market data retrieval. E.g. on a daily or weekly basis I monitor X number of economic releases that come out today and I would like to be notified of the released figure as quickly as possible after the release. Or I retrieve X number of economic indicators as a snapshot in a batch request every day at a set time and I'm concerned that with sequential data retrieval it takes one to two thousand seconds to retrieve 1 thousand RICs. It would also be very helpful to understand what your benchmark for the retrieval time is. I.e. when you say that the retrieval time of 1-2 seconds is too slow, what do you compare it to?
As a general comment I'd say that if you're counting milliseconds then any market data terminal product with data delivery over the Internet would be the wrong product for you. I would suggest you consider an Enterprise solution such as Elektron datafeed on a dedicated circuit. However if for whatever reason you're limited in your product choice to market data terminal, then I should try to explain the data retrieval mechanism and what you should expect in terms of data retrieval times. When you retrieve snapshot market data using Eikon Python API the data is retrieved via HTTP from Thomson Reuters datacenter. When you use Eikon COM or .NET APIs you retrieve the data via a proprietary protocol. For a snapshot request it is still a round trip to the market data infrastructure, which in the case of Eikon Hosted account (with data delivery over the Internet) is located at Thomson Reuters data center. We don't do benchmarking of snapshot data retrieval times via Eikon COM or .NET APIs vs. Eikon Python API. I expect them to be in the same order of magnitude (unless you have market data infrastructure on premises, in which case Eikon COM or .NET APIs will retrieve data faster). You may be able to shed off milliseconds by switching to .NET API, but there's no guarantee. If rather than retrieving data as a snapshot you subscribe to live datastream using Eikon COM or .NET APIs, then at the time the economic indicator update is released you receive push notification from market data infrastructure at TR data center. In this case your data retrieval is not a round trip. For the first use case I described at the top of this message, subscribing to live updates is what I would recommend.
@alexandros.pantalis eikon data api was not designed to be fast or handle real-time data in a streaming fashion. If that is speed that you are after, but you are limited to using desktop, you can either use the .NET Real-time API or AdfinX Real-time (COM).
@Zhenya Kovalyov Thanks for your answer!
I am now trying to use the .NET Real-time API and have two questions:
1. If I understand correctly, the trick is to use my python 2.7 code through visual studio in order to improve my data retrieval time?
2. Where can I find the modus operandi of the examples you provide in the downloads for .NET Real-time API? Let's be more precise through a concrete case: where can I find the code I should write in visual studio in order to get the smartestimate of GBEMP=ECI (for example)? Note that my python code already retrieves this data through Eikon, so if I use it (my python code) through visual studio, will I benefit from .NET Real-time API increased speed without having to write any new code in visual studio ?
Thanks a lot for your time
1. Not exactly, what I meant is we do not currently have anything suitable for python developers to handle subscriptions to real-time instruments, and I do not see a sustainable solution for your requirements. Streaming support will come out at some point this year.While mixing python with either .net or com apis, there will be minor performance gains, however the complexity of your code will drastically increase. I also do not think that running your python code inside visual studio will change anything.
In other words, if you need your code to get data faster than 1-2 secs, you will need to write a new application in C# with the use of Thomson Reuters Eikon .NET real-time API.
2. This tutorial shows how to use the real-time data api.
Great thanks for your answer !
One last question: even when streaming support for python developpers comes out this year, there is no way this will be faster than using C with .NET right ? And, subsequently, is C with .NET the fastest way of retrieving Eikon data or is there something even faster (every millisecond counts as you know ;) ) ?
@Alex Putkov. Thank you very much for this clear and comprehensive answer!
My activity is news-based trading: I make trading decisions based on selected economic indicators (around 10/month) when their actual value is released. This means that the faster I get their actual value, the faster my position is opened on the market and, thus, the more optimized my position is. As a benchmark I use the market reaction, which is instantaneous at news release, meaning that a 1-2 second lag, when compared to the market reaction, is hurting my performance.
In this light, push notifications are the most ideal way of retrieving data for me, so I am extremely glad you mention them as a potential solution (as I didn't find a way to get push notifications through Eikon yet)! How can I subscribe to a live data stream using Eikon COM or .NET APIs ?