How is it possible to create the "norm factor" and "residual amount usd" column in bond calculator cash flow section using Eikon API or codebook? If so, is it possible to have these columns for multiple bond ISINs?
Hi @asli.sahin,
For such information, I would advise using the IPA service. You can reach it in Python in CodeBook if needed. For more information on it, please see:
Bond Contracts: Documentation | Devportal (lseg.com)Cash Flow Definitions: Documentation | Devportal (lseg.com)A example showcasing IPA at play can be found on CodeBook under:
__Examples__/03. Quantitative Analytics/03.03. Bonds/Bond_Pricing.ipynb
Hi Thanks,
With the IPA financial contracts page I checked bonds: https://developers.lseg.com/en/api-catalog/refinitiv-data-platform/refinitiv-data-platform-apis/documentation/manuals-and-guides/ipa-financial-contracts/ipa-financial-contracts---bond-contracts
But find it hard to understand where to find these two columns : Norm. Factor and Residual Amount USD.
Below excel, it is possible to bring the data with the underlined formula.
Thanks.
@asli.sahin
It should be this code.
response = bond.Definition( instrument_code = 'US1536637036', fields = [ "CashFlowDatesArray", "CashFlowResidualAmountsInDealCcyArray" ]).get_data()response.data
Thank you. With your example, it bring the below.
Am I missing something here? Thank you.
It returns the raw json response so you need to reformat it. For example:
response = bond.Definition( instrument_code = 'US1536637036', fields = [ "CashFlowDatesArray", "CashFlowResidualAmountsInDealCcyArray" ]).get_data()dict = {response.data.raw["headers"][0]["name"]: response.data.raw["data"][0][0], response.data.raw["headers"][1]["name"]: response.data.raw["data"][0][1]}df = pd.DataFrame(dict)df
The output is:
If this was for a group of bonds. How can we adjust the code please?
I tried a few variations but it didn't work. Many thanks.
Also, if I would like to add the below in excel, how would the code be?
It is similar to the rd.get_data method.
rd.get_data(["153663703="],["TR.REDAMT"])
Or,
rd.get_data(["153663703="],["TR.REDAMT"], {"SDate":"","EDate":""})
You can use the Data Item Browser tool to check for fields and parameters.