ek.get_timeseries CLOSE for Mutual Funds

I am trying to pull closing values for ARTQX.O but get a CLOSE value of NaN , can you please advise why and if a different syntax needed using get_timeseries.

I'm raising this on behalf of a client.


ek.get_timeseries(["MSFT.O"],fields="CLOSE",start_date=get_date_from_today(start_date),end_date=get_date_from_today(end_date),corax="adjusted")


Best Answer

  • Wan Po.Lee
    Answer ✓

    @James.Perkins, I found an old Python program I wrote that can extract the NAV history of a fund using RIC directly. You can give it a try.

    ek.get_data('ARTQX.O',['TR.FundNAV.Date', 'TR.FundNAV'], {'SDate':'20120-01-01', 'EDate':'2019-05-26', 'Curn':'Native'})

    Your way to specify the date range for latest data should also work. I found using the TR.FundNAV has a more timely updates of the latest price as I now see the 14.95 as the latest price but the TR.NETASSETVAL seems stays at the previous one: 14.40.

Answers

  • I believe this is not a technical question related to the Eikon API but some content question about mutual funds.

    Generally mutual funds do not report “close” price, as “close” price should mean the price after the trading session ends for the day in an exchange. So close price is for instruments trading in an exchange like stocks or ETFs, not mutual funds.

    The sample fund you showed is not an ETFs nor exchange listed based on Lipper database, so it does not has close price. It does have NAV price reported daily. Please notes, mutual funds’ NAV price usually reports on the night-time of the same day or the next day and typically lag behind “close” price reported for the stocks in the same market.

  • Thanks. Appreciated the response. After further review I think the issue here is that for Mutual Funds most of the reference data (including historical NAVs) are actually stored on an associated Lipper RIC Code (every Fund has a real-time RIC ; i.e. in this case ARTQX.O which would line up with an exchange ticker), as well as an associated Lipper RIC (i.e. LP40063921) .


    You can retrieve the Lipper RIC code by using the field TR.LipperRICCode , then access the field TR.NETASSETVAL historically.

    ek.get_data('ARTQX.O',["TR.LipperRICCode"])


    ek.get_data('LP40063921',['TR.NETASSETVAL(SDate=0,EDate=-4,Frq=D).date',

    'TR.NETASSETVAL(SDate=0,EDate=-4,Frq=D)'])


    If there is a better solution for pulling historical NAVs for Mutual Funds please share ; ideally would like to not have to convert the ticket --> RIC --> Lipper RIC since it's an extra step.