get_data() throws an exception when specifying certain dates

The scripting API method call: get_date() provides the ability to retrieve historical data using a date range as an optional parameter specification. The following request will return valid rows of data.

df,err = tr.get_data('.SPX', ['TR.PriceClose'], parameters={'SDate':'1970-01-01','EDate':'1970-01-04'})

When going back further in time, it appears for the above requested instrument, the data is available only until Jan 1, 1970. This can be further observed when requesting for the same data years earlier.

image

The above request doesn't have any historical data for the date range specified. Although it returns one row with a NaN as the value, I'm assuming this implies no data. However, I would expect such a result to occur if I continue to go back in time. Instead, if I continue to go back in years, I can reach a point where my specified date results in an exception being thrown.

image

I would expect no data to be returned, or something similar to the above request. Not an exception.

Best Answer

  • OK, I reproduce the issue and confirm that the back-end reject request referring to data before 1950. I'm going to escalate the issue.

    You can retrieve Close with the get_timeseries function (values are available since 1928):

    image

    Take care to the limit of maximum of 3000 rows, and adjust the date range so as not to reach it (otherwise, result is aligned with end_date):

    image

Answers

  • On my side, the same code is working well :

    >>> df,err = ek.get_data('.SPX', ['TR.PriceClose'], parameters={'SDate':'1970-01-01','EDate':'1970-01-04'})
    >>> df
    Instrument Price Close
    0 .SPX 92.06
    1 .SPX 93.00
    >>> ek.__version__
    '0.1.9'

    Could you check the version of the scripting API you're using ?

  • Hi @pierre.faurel,

    Yes, the above request will return valid rows of data. I did indicate this in my question: "The following request will return valid rows of data".