how do i get the screening data in the CODEBK?

=@TR("SCREEN(U(IN(Equity(active,public))/UNV:Public/), IN(TR.InstrumentTypeCode,""ADR"",""BDR""), IN(TR.ExchangeMarketIdCode,""BVMF"",""XBSP""), CURN=USD)";"TR.CommonName;TR.InstrumentType;TR.ExchangeName;TR.PrimaryRICCode;TR.HeadquartersC"&"ountry";"curn=USD RH=In CH=Fd")

Answers

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @augusto_krappa

    Thank you for reaching out to us.

    You can use the LSEG Data Library for Python in Codebook to get the screening data.

    The SCREEN filter is in the universe parameter.

    The list of fields is in the fields parameter.

    The parameters in the formula is in the parameters parameter.

    The code is:

    import lseg.data as ld
    import pandas as pd

    ld.open_session()

    ld.get_data(
    universe="SCREEN(U(IN(Equity(active,public))), IN(TR.InstrumentTypeCode,""ADR"",""BDR""), IN(TR.ExchangeMarketIdCode,""BVMF"",""XBSP""), CURN=USD)",
    fields = ["TR.CommonName","TR.InstrumentType","TR.ExchangeName","TR.PrimaryRICCode","TR.HeadquartersCountry"],
    parameters = {"Curn":"USD"}
    )
  • @Jirapongse thank you. it worked.

    Now I have another problem. I added 'TR.AvgDailyValTraded20D' in the fields, but as it should, it returns the value from the depository receipts. I would like to get the ''TR.AvgDailyValTraded20D' from the 'PrimaryRICCode".
    So I tried to get data in a separated function, but some RICs are not accepted… Then I tried a loop, which is inefficient, but it also failed.


    <

    ld.open_session()
    df_bdrs = ld.get_data(

    universe="SCREEN(U(IN(Equity(active,public))), IN(TR.InstrumentTypeCode,""ADR"",""BDR""), IN(TR.ExchangeMarketIdCode,""BVMF"",""XBSP""), CURN=USD)",

    fields = ['TR.CommonName','TR.AvgDailyValTraded20D','TR.CompanyMarketCapitalization','TR.TRBCEconomicSector','TR.TRBCBusinessSector','TR.TRBCIndustry','TR.TRBCIndustryGroup','TR.InstrumentType','TR.PrimaryRICCode','TR.HeadquartersCountry'],

    parameters = {"Curn":"USD"}

    )
    df_bdrs

    import refinitiv.data as rd
    rd.open_session()
    for bdr in list_of_bdrs:
    try:
    df = rd.get_data(
    universe = bdr,
    fields = ['TR.AvgDailyValTraded20D'],
    parameters = {
    'Curn': 'USD'
    }
    )
    df_bdrs.loc[bdr,'Average Daily Value Traded - 20 Days']=df.iloc[0,1]

    except rd.exceptions.RDError as e:
    print(f"Refinitiv Data Error: {e}")
    raise # Re-raise the exception to propagate it if needed
    except Exception as e:
    print(f"Unexpected error: {e}")
    raise # Re-raise unexpected exceptions for debugging

    df

    AttributeError: No refinitiv.data attribute exceptions
    

    >

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @augusto_krappa

    Yes, it will return the TR.AvgDailyValTraded20D from the RICs in the Instrument column.

    If you would like to get the TR.AvgDailyValTraded20D from the PrimaryRICCode, you need to send another request for the RICs in the PrimaryRICCode column.

    Otherwise, you need to contact the helpdesk team via MyAccount to verify if there is any field that can provide the required values when requesting the depository receipts.