How do we use Eikon API or RDP to pull the ICE TTF forward curve for any given settlement date pleas

For example, it seemed like RDP is the easier option as it works if we use rd.get_history('0#.FTSE'), but if it is rd.get_history('0#TFMBM:') then I get error "No data to return"...


Asking on behalf of client, thanks.

Best Answer

  • Jirapongse
    Answer ✓

    @candice.ting

    It looks like the rd.get_history method is unable to expand this chain RIC (0#TFMBM:). We need to find a way to expand this RIC. If the client uses a desktop session, the client can use ek.get_data method to expand this chain RIC.

    import refinitive.data.icon as ek
    ek.set_app_key('<app key>')
    df, err = ek.get_data(['0#TFMBM:'], ['DSPLY_NAME']);

    The output is:

    1657162123516.png

    Then, I removed '/' from RICs and sent the list to the rd.get_history method.

    instrument_list = df["Instrument"]
    instrument_list = map( lambda x: x if x[0]!='/' else x[1:], instrument_list)
    instrument_list = list(instrument_list)
    rd.get_history(universe=instrument_list)

    The output is:

    1657162311748.png


Answers

  • Hi Jirapongse,

    Thank you for your answer. Can you also help incorporate the function to include start/end date parameters so user can specify the date range himself?


    Thank you again,

    Candice

  • Hi Jirapongse,

    Thank you for your answer. Can you also help incorporate the function to include start/end date parameters so user can specify the date range himself?


    Thank you again,

    Candice

  • @candice.ting

    The client can run help(rd.get_history) to see the available parameters of this method.

    Parameters
    ----------
    universe: str | list
    instruments to request.
    fields: str | list, optional
    fields to request.
    interval: str, optional
    The consolidation interval. Supported intervals are:
    tick, tas, taq, minute, 1min, 5min, 10min, 30min, 60min, hourly, 1h, daily,
    1d, 1D, 7D, 7d, weekly, 1W, monthly, 1M, quarterly, 3M, 6M, yearly, 1Y
    start: str or date or datetime or timedelta, optional
    The start date and timestamp of the query in ISO8601 with UTC only
    end: str or date or datetime or timedelta, optional
    The end date and timestamp of the query in ISO8601 with UTC only
    adjustments : str, optional
    The adjustment
    count : int, optional
    The maximum number of data returned. Values range: 1 - 10000
    use_field_names_in_headers : bool, optional
    Return field name in headers instead of title

    Returns
    -------
    pandas.DataFrame

    Examples
    --------
    >>> get_history(universe="GOOG.O")
    >>> get_history(universe="GOOG.O", fields="tr.Revenue", interval="1Y")
    >>> get_history(
    ... universe="GOOG.O",
    ... fields=["BID", "ASK", "tr.Revenue"],
    ... interval="1Y",
    ... start="2015-01-01",
    ... end="2020-10-01",
    ... )

    To specify the date range, the client can use the start and end parameters. For example:

    rd.get_history(universe=instrument_list, start="2022-06-01", end="2022-06-30")

    The output is:

    1657247654974.png