question

Upvotes
Accepted
20 8 5 10

Eikon TimeSeries API

I would like to change the instrument in the Usage Example Time series API for .NET from EUR= to AAPL.O

But I get an empty result set. Why?

The same if I use a fund, e.g. LP40114117.

        public void Launch()
        {
            Console.WriteLine("[3] Time series subscription example");
            Console.WriteLine("");
            
            subscription = timeSeries.SetupDataSubscription("AAPL.O") 
                .WithView("BID")//BID
                .WithAllFields()
                .WithInterval(CommonInterval.Daily)  
                .From(DateTime.Today)   
                .OnDataReceived(DataReceivedCallback)
                .OnDataUpdated(DataUpdatedCallback)
                .CreateAndStart();
        }


        private void DataReceivedCallback(DataChunk chunk)
        {
            foreach (IBarData bar in chunk.Records.ToBarRecords())
            {
                if (bar.Open.HasValue && bar.High.HasValue && bar.Low.HasValue && bar.Close.HasValue && bar.Timestamp.HasValue)
                {
                    Console.WriteLine(
                        "{0}: EUR= OHLC {1} {2} {3} {4}",
                        bar.Timestamp.Value.ToLongTimeString(),
                        bar.Open.Value.ToString("##.0000"),
                        bar.High.Value.ToString("##.0000"),
                        bar.Low.Value.ToString("##.0000"),
                        bar.Close.Value.ToString("##.0000")
                    );
                };
            }
        }


eikoneikon-data-apieikon-com-api
icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

1 Answer

Upvote
Accepted
39.2k 75 11 27

Hi @tommy,

There's a couple of things here.
1. When setting up the subscription, the date value passed to the From method is expected to be in the past. From/To sequence here is expected to be in chronological order rather than reverse chronological. Change .From(DateTime.Today) to say .From(DateTime.Today.AddDays(-10)).

2. After you make the above change you will see that the chunk returned into DataReceivedCallback procedure contains timeseries records. However the application will not display these records. This is because the BID view for equities and funds is not summarized into Open/High/Low/Close bar. Only close price is recorded for stock quotes, hence bar.Open.HasValue condition will resolve to "false". You can get full open/high/low/close bars for stock trades (as opposed to stock quotes), if you change the value passed to WithView method from "BID" to "TRDPRC_1" or remove this method altogether and let the API pick up the default view for the RIC. If you need to retrieve timeseries from BID view for stocks you need to change the handling of the result returned into DataReceivedCallback bearing in mind that only close value is available.

I hope this helps.

Alex Putkov

icon clock
10 |1500

Up to 2 attachments (including images) can be used with a maximum of 5.0 MiB each and 10.0 MiB total.

Click below to post an Idea Post Idea