Empty response when searching for derivative by underlying

Hi,


I'm building a tool that requires me to search for information on derivatives. Here i'm trying to find some futures contracts. To find these contracts I have information on the underlying of the contract. I tried using the content search like so :

df1 = rd.content.search.Definition(
view=rd.discovery.Views.SEARCH_ALL,
select="DocumentTitle,RIC,UnderlyingQuoteRIC,DerivedCategory,AssetState",
filter=f"UnderlyingCUSIP eq '02079K305' and DerivedCategory eq 'FUTURE'",
).get_data()
df1.data.df

(cusip : 02079K305 is just the cusip for an equity i'm testing on)

and :

response = rd.content.search.Definition(
view=rd.content.search.Views.SEARCH_ALL,
filter = "SearchAllCategoryv2 eq 'Futures' and ((UnderlyingQuoteRIC eq 'APPL.O'))",
select = "AssetState,RIC,BusinessEntity,PI,SearchAllCategoryv3,SearchAllCategoryv2,SearchAllCategory,DTSubjectName,ExchangeName,ExpiryDate,UnderlyingIssuerName,UnderlyingQuoteRIC,RCSCurrencyLeaf,RCSExchangeCountryLeaf,UnderlyingRCSAssetCategoryLeaf",
top = 1000).get_data()
response.data.df

For both of these queries, I don't get any results.

Any idea of what I might be missing ?




Thank you.

Best Answer

  • Jirapongse
    Answer ✓

    @adam.leroux

    Thank you for reaching out to us.

    You may use the EQUITY_QUOTES view.

    df1 = rd.content.search.Definition(
            view=rd.discovery.Views.EQUITY_QUOTES,
            select="BusinessEntity,DocumentTitle,RIC,UnderlyingQuoteRIC,DerivedCategory,AssetState,CUSIP,SearchAllCategoryv2", 
            filter=f"DerivedCategory eq 'FUTURE' and UnderlyingQuoteRIC eq 'AAPL.O'",
            top=10
    ).get_data()
    df1.data.df

    I ran this query to check the values in UnderlyingCUSIP.

    df1 = rd.content.search.Definition(
            view=rd.discovery.Views.SEARCH_ALL,
            select="BusinessEntity,DocumentTitle,RIC,UnderlyingQuoteRIC,DerivedCategory,AssetState,CUSIP,SearchAllCategoryv2", 
            filter=f"UnderlyingCUSIP ne null",
            top=10
    ).get_data()
    df1.data.df

    The output is empty which indicates that the values of UnderlyingCUSIP in SEARCH_ALL are all null. To verify the query or content, please contact the helpdesk team direclty via MyAccount.

    You use the metadata endpoint to list all fields in the EQUITY_QUOTES.

    response = search.metadata.Definition(
        view = search.Views.EQUITY_QUOTES # Required parameter
    ).get_data()

    response.data.df



Answers

  • Thanks for the answer.

    So I understand that the SEARCH_ALL field doesn't allow me to search in every field. In other words, it is mandatory to specify the correct field instead of just looking at all fields with SEARCH ALL ?

  • @adam.leroux

    You can also use the metadata endpoint with the SEARCH_ALL view to list all available fields.

    response = search.metadata.Definition(
        view = search.Views.SEARCH_ALL # Required parameter
    ).get_data()


    response.data.df

    I found that the "UnderlyingCUSIP" field is available in the SEARCH_ALL veiw and it is searchable.

    1721188698740.png

    However, from my checking, the values of this field may be not populated in this view. You can contact the helpdesk team direclty via MyAccount to confirm the content.