Insonsistent data retrieval with eikon get_data

Hello,
I need to collect historical data for multiple companies. While I wrote the code to do this and experimented with it, I realized that data which is returned differs sometimes, even though I am using the exact call. This is more than inconvenient because I can not rely upon the data which is collected. Has anyone experienced similar things or can someone tell me what I am doing wrong. In the attaced files, you can see my log data and how the outcome for collecting daily total returns varies for different trials.retrieve_returns_trials.zip A code snippet for five Rics is:
import logging
import eikon as ek
import pandas as pd
import time
logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)
ek.set_app_key("your_key")
rics = ['CCL.N', 'NXGA.PK^E19', 'AFAQ.OQ^L22', 'GRLS.MC', 'GLXZ.PK']
for trial in range(5):
start = True
for ric in rics:
df, e = ek.get_data(
instruments=ric,
fields = [
'TR.TotalReturn1D',
'TR.TotalReturn1D.date'
] ,
parameters={"SDate": "2002-01-01", "EDate": "2024-09-15", "Frq": "D", "CH": "Fd"}
)
if not("Instrument") in df.columns:
logging.info("It seems like no data has been collected.")
logging.info(f"--------------------------------\n {df.head()} ----------------------------------\n")
if df.isna().sum().sum() > 0:
logging.info(f"Deleting NAs for ric {ric}")
df = df[df.isna().sum(axis = 1) == 0]
if start:
df_full = df.copy()
start = False
else:
df_full = pd.concat((df_full, df.copy()))
time.sleep(0.25)
df_full.to_csv(f"retrieve_returns_trial_{trial+1}.csv", index = False)
Best Answer
-
@ralf.kellner Thanks for your question. So please try this code it works for me.
rics = ['CCL.N', 'NXGA.PK^E19', 'AFAQ.OQ^L22', 'GRLS.MC', 'GLXZ.PK']
for ric in rics:
df, e = ek.get_data(rics,fields = ['TR.TotalReturn1D.date','TR.TotalReturn1D'],
parameters={"SDate": "2002-01-01", "EDate": "2024-09-15", "Frq": "D"}
)
dfIf you have a much larger RIC list - you can just chunk it and present for chunk in chunks etc I hope this can help.
0
Answers
-
Many thanks @jason.ramchandani01 this seems to help and creates consistent data retrieval. Just out of curiosity, do you know why using the "CH" parameter instroduces the inconsistent behavior? As I understand it from here, I thought it "just" makes sure that field names are used as row headers.
0 -
@ralf.kellner Apols for delay - missed this - so the CH:Fd parameter is something that applies to the excel functions - it is not part of the Python API parameters. In Python data frames are returned in various formats depending on multi-index or not etc. You can of course flatten, transpose etc to get the right shape for your dataframe. It could be the case that for a single field, multi-ric request you are given instruments as column headers -but all this is easily managed in the flexible python environment. I hope this can help.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
- 685 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
- 252 ETA
- 556 WebSocket API
- 38 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
- 652 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
- 27 DACS Station
- 121 Open DACS
- 1.1K RFA
- 104 UPA
- 193 TREP Infrastructure
- 228 TRKD
- 917 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 中文论坛