Upgrade from Eikon -> Workspace. Learn about programming differences.

For a deeper look into our Eikon Data API, look into:

Overview |  Quickstart |  Documentation |  Downloads |  Tutorials |  Articles

question

Upvotes
Accepted
13 6 4 12

Python API get_timeseries use multiple RICs

Tried to call get_timeseries to get historical tick data over multiple RICs, and saw the error - Shape of passed values is (4, 106), indices imply (4, 16). However, it works when I used only one single RIC.


try:
symbolList = list()
list.append("AMXL.MX")
list.append("CMXCPO.MX")
ret = ek.get_timeseries(symbolList, start_date="2018-09-06T20:00:00", end_date="2018-09-06T20:10:00",interval="tick")

print(ret)
except Exception as err:
print(err)
eikoneikon-data-apipythonrefinitiv-dataplatform-eikonworkspaceworkspace-data-api
icon clock
10 |1500

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

Hello @leiy

Thank you for your participation in the forum. Is the reply below satisfactory in resolving your query?

If so please can you click the 'Accept' text next to the appropriate reply. This will guide all community members who have a similar question.

Thanks,

AHS

Hello @leiy,

Please be informed that a reply has been verified as correct in answering the question, and has been marked as such.

Thanks,

-AHS

Upvotes
Accepted
4.3k 2 4 5

I suggest to request raw data then extract each serie from result as below:

try:
symbolList = ["AMXL.MX", "CMXCPO.MX"]
ret = ek.get_timeseries(symbolList, start_date="2018-09-06T20:00:00", end_date="2018-09-06T20:10:00", interval="tick", raw_output=True)
for data in ret['timeseriesData']:
df = pd.DataFrame(data['dataPoints'], columns=[f['name'] for f in data['fields']]).set_index('TIMESTAMP', drop=True)
print("Serie[{}]".format(data["ric"]))
print(df)
except Exception as err:
print(err)
icon clock
10 |1500

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

Upvotes
39.4k 77 11 27

Eikon Python library cannot combine tick data for multiple instruments into a single dataframe because the dataframe is indexed on the timestamp and the timestamps for tick data for multiple instruments don't match. I suppose we should handle this use case in the library: before submitting the request for data check if more than one instrument is passed and whether interval="tick" and raise an exception right away saying "Tick data can only be retrieved for a single instrument". I will raise this to the development team.
If you tell me what your end goal is, I may suggest a workaround.

icon clock
10 |1500

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

Ok. I am trying to collect the tick data of an small time interval for multiple RICs. In this case, we can request the data for one RIC at a time. However, I am looking for more than 200 RICs here. I am thusly looking for a possible way to request data for multiple RICs all together, or any other more efficient way.

I see two options here. One is obvious: iterate over your list of RICs in a loop. The other is to use send_json_request method. The advantage is that you can retrieve timeseries for multiple RICs in a single request. The disadvantage is that the data is delivered as JSON and you need to write code to parse it into whatever format is useable for your purposes. If you'd like to explore this option I suggest you take a look at the method's signature in Eikon Data APIs for Python Reference Guide available from the Documentation tab on Eikon Data APIs page on this portal.

Then I suggest you use Fiddler to see the HTTP request sent when you execute get_timeseries method for multiple RICs, which will help you figure out the values of the arguments you need to pass to send_json_request method.

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

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