Greeting everyone! I am currently engaged in the development of algorithms tailored for advanced data analysis and require your expert guidance on a couple of technical challenges I am encountering.
Firstly, I am seeking a method to accurately extract the closing price on the day following the Bankruptcy Announcement, specifically when the TR.MnAHasBankruptcy indicator switches to "true." This data point is critical for my analysis, and I need to ensure its precision and reliability.
Secondly, I am interested in obtaining the closing price for OTC securities on their initial trading day post-delisting. The ability to capture this information accurately is vital for my project's success.
Furthermore, I have faced difficulties in retrieving closing prices for OTC market RICs utilizing the Refinitiv Search API. My objective is to establish a robust method for accessing the closing price data for delisted OTC RICs, thereby enabling the algorithms I aim to develop.
Could you please provide guidance or suggest methodologies to settle such issues? Any insights or recommendations you could offer would be immensely valuable. Thank you!
import refinitiv.data as rd
import pandas as pd
rd.open_session()
results = rd.discovery.search(
view=rd.discovery.Views.EQUITY_QUOTES,
top=500,
filter="(IssuerOAPermID eq '5048094456' and RCSAssetCategoryLeaf eq 'Ordinary Share')",
select="RIC, DTSubjectName, RCSAssetCategoryLeaf, ExchangeName, ExchangeCountry"
)
df = results
substrings = ['.OQ', '.N', '.A', '.PK', '.PQ']
def is_valid_ric(ric):
for ending in substrings:
if ending in ric:
pos = ric.find(ending)
if len(ric) == pos + len(ending) or (len(ric) > pos + len(ending) and ric[pos + len(ending)] == '^'):
return True
return False
filtered_df = df[df['RIC'].apply(is_valid_ric)]
rics = filtered_df['RIC'].tolist()
START_DATE = "2020-04-30"
END_DATE = "2024-12-31"
df_history = rd.get_history(
universe=rics,
fields=[
"TR.MnAHasBankruptcy",
"TR.PPBankruptcyFilingDate",
"TR.PPHasFiledForBankruptcy",
"TR.IsDelistedQuote",
"TR.PriceClose",
"TR.MnAAnnDate",
"TRADE_DATE",
"TR.MNASynopsis",
"TR.MnAStatus",
"TR.MnADateUnconditional",
"TR.RetireDate"
],
parameters={
'SDate': START_DATE,
'EDate': END_DATE,
'Frq': 'D'
}
)
print(df_history)
df_history.to_csv("./Merged_Delisting-Case.csv")
rd.close_session()