Getting latest data for continuous futures contracts

Using the lseg.data library, I would like to download the latest traded price TRDPRC_1 and settle price if available. I have access to historical data using ld.get_history() but mostly empty data sets using ld.get_data(). Can you confirm python script that should work for Cc1 and Sc1 and/or a way to see if our subscription gives access to this data? Thank you.

Answers

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @kevin_witt

    Thank you for reaching out to us.

    I can retrieve the data properly with the following code.

    ld.get_data(
        universe = ['Cc1','Sc1'],
        fields = ['TRDPRC_1','PRIMACT_1'])
    
    image.png

    To verfiy what the problem is, you can enable the debug log in the library by using the following code before opening a session.

    config = ld.get_config()
    config.set_param("logs.transports.file.enabled", True)
    config.set_param("logs.transports.file.name", "lseg-data-lib.log")
    config.set_param("logs.level", "debug")

    Then, please share the lseg-data-lib.log file.

  • kevin_witt
    kevin_witt Newcomer

    Still have an issue. How can I send log files to you directly?

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @kevin_witt

    You can share the log on this discussion.

    Please check that the log doesn't have any credentials.

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @kevin_witt

    I found the access denied messages.

    [OMMSTREAMING_PRICING_0.0] process message {"ID": 5, "Type": "Status", "Key": {"Service": "ELEKTRON_DD", "Name": "Cc1"}, "State": {"Stream": "Closed", "Data": "Suspect", "Code": "NotEntitled", "Text": "Access Denied: User req to PE(91)"}}

    [OMMSTREAMING_PRICING_0.0] on_ws_message [{"ID": 6, "Type": "Status", "Key": {"Service": "ELEKTRON_DD", "Name": "Sc1"}, "State": {"Stream": "Closed", "Data": "Suspect", "Code": "NotEntitled", "Text": "Access Denied: User req to PE(91)"}}]

    You don't have permission to access real-time data of those RICs.

    You may try the delayed RICs instead.

    ld.get_data(
    universe = ['/Cc1','/Sc1'],
    fields = ['TRDPRC_1','PRIMACT_1'])
  • kevin_witt
    kevin_witt Newcomer

    Thank you, this works for the most part. Can you tell me the RIC to get a delayed quote for ".SPX"?

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    Typically, a delayed RIC is prefixed with a slash character.

  • kevin_witt
    kevin_witt Newcomer

    is there a way to confirm if getting data for this RIC is a coding issue or something my office needs to pay extra for?

  • Hello @kevin_witt

    The "Code": "NotEntitled", "Text": "Access Denied: User req to PE(91)"} log messages indicates that it is a permission issue.

    The permission issue cannot be fixed via the code.

    I strongly suggest you contact your LSEG representative or Account Manager to verify your account permission with the Real-Time RIC.