Basis pricing for Physical commodities

Asher
Asher Newcomer

I want to get FX broken dates calculator to hedge basis price contracts for commodities e.g. Cotton. Sample code as below:
df = ld.get_history('JCI-CTN-ANHUI','TRDPRC_1',start='01-Jan-2025',end='26-Jun-2025') #This is spot price for China Anhui cotton.
df2 = ld.get_history('CCFc1','TRDPRC_1',start='01-Jan-2025',end='26-Jun-2025') #This is the future price for China cotton.
df3 = ld.get_history('CNY=','BID',start='01-Jan-2025',end='26-Jun-2025') #This is the currency exchange RIC for USD/CNY.
df4 = (df['TRDPRC_1']/df3['BID'])-(df2['TRDPRC_1']/df3['BID']) #This is to calculate the basis price then converted to USD.
print(df4)

However, I want to change df3 to FX Forward outright for a broken date in this case the expiry date of the contract e.g. CCFc1.

API Playground

I managed to create the code below, however I am not sure how I can incorporate the end date as the expiry date. The code I use to get expiry date is ld.get_data('CCFc1','EXPIR_DATE'). Also I am not sure how I can get the raw data values from the below code to be used in the initial code replacing df3 or the CNY= spot rate value.

request_definition = ld.delivery.endpoint_request.Definition(
url="https://api.refinitiv.com/data/quantitative-analytics/v1/financial-contracts",
method=ld.delivery.endpoint_request.RequestMethod.POST,
body_parameters={
"fields": [
"InstrumentTag",
"ValuationDate",
"InstrumentDescription",
"FxOutrightCcy1Ccy2"
],
"universe": [
{
"instrumentDefinition": {
"instrumentTag": "00102700008910C",
"fxCrossType": "FxForward",
"fxCrossCode": "USDCNY",
"legs": [
{
"endDate": "2025-07-14T00:00:00Z"
}
]
},
"pricingParameters": {
"valuationDate": "2025-06-27T00:00:00Z",
"priceSide": "Mid"
},
"instrumentType": "FxCross"
}
],
"outputs": [
"Data",
]
}
)
response = request_definition.get_data()
response.data.raw"

Answers

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @Asher

    Thank you for reaching out to us.

    Regarding the financial-contracts, you can refer to the IPA Financial Contracts: FX Cross Contracts document and the examples on GitHub.

    This forum is dedicated to software developers using LSEG APIs. The moderators on this forum do not have deep expertise in every bit of content available through LSEG products, which is required to answer content questions such as this one.

    The best resource for content questions is the Helpdesk support team, which can be reached by submitting queries through LSEG Support. The support team will either have the required content expertise ready available or can reach out to relevant content experts to get the answer for you.

    You need to ask for the Excel formula, such as =RDP.Data, that can be used to retrieve the required data.

    Then, we can help you converting that formula to Python code.

  • Asher
    Asher Newcomer

    The help desk told me to post that question here to get it answered so I don't know what you want me to do?

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    This forum is for API technical questions. Both code can return data properly.

    image.png image.png

    You can refer to the IPA Financial Contracts: FX Cross Contracts document regarding how to use this API or contact the Instrument Pricing Analytics - Delivery Platform team directly via LSEG Support to verify the request message.

  • Asher
    Asher Newcomer

    @Jirapongse my question is how can I use the forward calculation to calculate the basis for buying physical today against the commodity futures expiration date?

    ie buy Chinese cotton today, deliver it according to the expiration date of the futures contract, you need to hedge the fx risk, and so you need to use the fx fwd calc and then you can calculate your basis? How do I do that?

  • Jirapongse
    Jirapongse ✭✭✭✭✭

    @Asher

    I have submitted this question on your behalf to the Instrument Pricing Analytics - Delivery Platform team.

    The case number is 14945360. The support team can verify this request message.

  • Asher
    Asher Newcomer

    Thanks