How to extract data for Bonds ISINs using Python
Im trying to retrieve historical prices for bonds on refinitiv eikon for around 500 bonds, however the code Im trying its not working:
"...
dataframes = {}
for isin in isin_numbers:
try:
# Fetch the issue date
df_issue_date, err = ek.get_data(isin, ['TR.FiIssueDate'])
issue_date = df_issue_date['Issue Date'][0].strftime('%Y%m%d')
df, e = ek.get_data(isin, ['TR.ASKPRICE(SDate=' + issue_date + ', EDate=20230531,Frq=D).date','TR.BIDPRICE(SDate=' + issue_date + ', EDate=20230531, Frq=D)','TR.ASKPRICE(SDate=' + issue_date + ', EDate=20230531, Frq=D)'])
dataframes[isin] = df
except:
print(f"No data available for ISIN: {isin}")
# Concatenate all dataframes into a single dataframe
df_all = pd.concat(dataframes.values())
I would highly appreciate your help.
Thanks a lot
0
Best Answer
-
Thank you for reaching out to us.
You can try this one:
dataframes = {}
isin_numbers = ["US91282CHC82","DE000BU2Z007","JP1103701P43"]
edate = "2023-05-31"
df_issue_dates, err = ek.get_data(isin_numbers, ['TR.FiIssueDate'])
for index, row in df_issue_dates.iterrows():
try:
isin = row["Instrument"];
issue_date = row["Issue Date"]
print(isin, issue_date)
if not pd.isnull(issue_date):
df, err = ek.get_data(isin,
['TR.ASKPRICE.date',
'TR.BIDPRICE',
'TR.ASKPRICE'],
{"SDate":issue_date, "EDate":edate, "Frq":"D"})
display(df)
dataframes[isin] = df
else:
print(f"{isin} has no issue date.")
except:
print(f"No data available for ISIN: {isin}")
df_all = pd.concat(dataframes.values())0
Answers
-
Thank you so much for your help. However, it is still not working and just showing the following:
US91282CHC82 2023-05-15
No data available for ISIN: US91282CHC82
DE000BU2Z007 2023-01-13
No data available for ISIN: DE000BU2Z007
JP1103701P43 2023-04-05
I don't know if I'm doing something else wrong0 -
I can run the code properly.
Please try to remove the try ... except block to verify what the problem is.
You can also enable logging in the API by using the following code.
import eikon as ek
ek.set_log_level(1)0
Categories
- All Categories
- 6 AHS
- 37 Alpha
- 161 App Studio
- 4 Block Chain
- 4 Bot Platform
- 16 Connected Risk APIs
- 47 Data Fusion
- 30 Data Model Discovery
- 608 Datastream
- 1.3K DSS
- 577 Eikon COM
- 4.9K Eikon Data APIs
- 7 Electronic Trading
- Generic FIX
- 7 Local Bank Node API
- Trading API
- 2.7K Elektron
- 1.3K EMA
- 236 ETA
- 519 WebSocket API
- 33 FX Venues
- 10 FX Market Data
- 1 FX Post Trade
- 1 FX Trading - Matching
- 12 FX Trading – RFQ Maker
- 5 Intelligent Tagging
- 2 Legal One
- 20 Messenger Bot
- 2 Messenger Side by Side
- 9 ONESOURCE
- 7 Indirect Tax
- 59 Open Calais
- 264 Open PermID
- 39 Entity Search
- 2 Org ID
- PAM
- PAM - Logging
- 8.4K Private Comments
- 6 Product Insight
- Project Tracking
- ProView
- ProView Internal
- 20 RDMS
- 1.4K Refinitiv Data Platform
- 367 Refinitiv Data Platform Libraries
- 3 Refinitiv Due Diligence
- LSEG Due Diligence Portal API
- 3 Refinitiv Due Dilligence Centre
- Rose's Space
- 1.1K Screening
- 18 Qual-ID API
- 13 Screening Deployed
- 23 Screening Online
- 10 World-Check Customer Risk Screener
- 990 World-Check One
- 44 World-Check One Zero Footprint
- 45 Side by Side Integration API
- Test Space
- 3 Thomson One Smart
- 1.2K TR Internal
- Global Hackathon 2015
- 2 Specialists Who Code
- 10 TR Knowledge Graph
- 150 Transactions
- 142 REDI API
- 1.7K TREP APIs
- 4 CAT
- 21 DACS Station
- 117 Open DACS
- 1.1K RFA
- 103 UPA
- 172 TREP Infrastructure
- 224 TRKD
- 886 TRTH
- 5 Velocity Analytics
- 5 Wealth Management Web Services
- 59 Workspace SDK
- 9 Element Framework
- 5 Grid
- 13 World-Check Data File
- Yield Book Analytics
- 46 中文论坛