question

Upvotes
Accepted
19 1 1 4

Analyze the data using advanced algorithms.

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()
pythonrefinitiv-dataplatform-eikon#technologyrfa-apipython apicodebookresearchcompany-research
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.

1 Answer

· Write an Answer
Upvote
Accepted
17.9k 82 39 63

Hi @vitali

Looking at your request to get historical data, I changed it from 'get_history' to 'get_data' as the arguments you are passing are relevant to the 'get_data()' function call. In addition, I changed the 'TRADE_DATE' as this is not applicable and replaced it with TR.PriceClose.date:

1710271652889.png

Now, as for the specifics of the fields, this forum is only focused the APIs, not content. I would suggest you open a content ticket and they will bring in a content specialist to help with questions related to bankruptcy announcement date, OTC Closing price, delisted OTC rics etc.


1710271652889.png (81.6 KiB)
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.

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.