How to properly use Python to extract data from LSEG workspace

Options

Government bonds, for example RIC = 'GB10YT=RR', which is the 10 Year Government Bonds of the UK. I am trying to grab its daily data. At first, I am using fields=['TR.OpenPrice.date','TR.OpenPrice','TR.HighPrice','TR.LowPrice','TR.ClosePrice'] in my code. But The close price showed nothing.

59dd586b92ca49f2129b6d4c158c385.png

Then, I changed the fields to ['CF_DATE', 'OPEN_PRC', 'CF_HIGH', 'CF_LOW', 'CF_CLOSE']. This time the result gives me the proper close price. However, The 'CF' can only gives me the data of the latest day, which is shown below

eafcbc4237c0cfe749586e33f455a16.png


Similarly, I also encountered issues with the FX CROSS RATE for currencies. For example, RIC = 'USDEUR=R'. In Python, I used the corresponding fields=['TR.OPENPRICE.DATE', 'TR.OPENPRICE', 'TR.HIGHPRICE', 'TR.LOWPRICE', 'TR.CLOSEPRICE'], but I was unable to retrieve any data. Then I tried fields=['CF_DATE', 'OPEN_PRC', 'CF_HIGH', 'CF_LOW', 'CF_LAST'], which allowed me to retrieve data for the latest day, but I couldn't retrieve any data for previous days.

I wonder if there is an appropriate way to grab those data.

Answers

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @Chengh7

    Thank you for reaching out to us.

    Please try the get_history method.

    response = ld.get_history(
        universe = ["GB10YT=RR"],
        fields = ['BID','HIGH_1','LOW_1','OPEN_PRC'],
        interval='1D',
        start='2025-03-18',
        end='2025-06-18')
    
    response
    
  • Chengh7
    Chengh7 Newcomer

    Thank you very much for your help.

    Similarly, I also encountered issues with the FX CROSS RATE for currencies. For example, RIC = 'USDEUR=R'. In Python, I used the corresponding fields=['TR.OPENPRICE.DATE', 'TR.OPENPRICE', 'TR.HIGHPRICE', 'TR.LOWPRICE', 'TR.CLOSEPRICE'], but I was unable to retrieve any data. Then I tried fields=['CF_DATE', 'OPEN_PRC', 'CF_HIGH', 'CF_LOW', 'CF_LAST'], which allowed me to retrieve data for the latest day, but I couldn't retrieve any data for previous days.

    This time I tried the method you told me, but it did not work.

    1750323683296.png
  • Jirapongse
    Jirapongse ✭✭✭✭✭

    It supports different fields. You can ignore the fields parameter to retrieve all available fields for the subscribed RIC.

    response = ld.get_history(
        universe = ["USDEUR=R"],
        interval='1D',
        start='2025-03-18',
        end='2025-06-18')
    
    response.columns
    
  • Chengh7
    Chengh7 Newcomer
    edited June 23

    Thank you for your reply. I have tried your code, and it did print out some results. However, it did not show the result that I wanted.

    1750664130885.png

    I want to have the Open, High, Low, and Close price, which are the transaction prices, but the columns printed seemed that it only had ask and bid. Is there any other way (like Item Code) that can help me get the trade price?

    Moreover, after I get those fields for different RICs, sometimes there are plenties of fields for only one RIC, how do I get the definition list of those fields instead of checking those fields one by one on the workspace?

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @Chengh7

    As far as I know, the TRDPRC_1 field is not available in USDEUR=. This is similar to other currencies, such as JPY=, and EUR=.

    Please contact the helpdesk team directly via the LSEG Support to confirm this.