Join the 80,000 other DTN customers who enjoy the fastest, most reliable data available. There is no better value than DTN!

(Move your cursor to this area to pause scrolling)




"Thanks for following up with me. You guys do a great job in tech support." - Comment from Phelps
"The service is great, I see a noticeable improvement in my volume profiles over [broker]'s data feed" - Comment from Larry
"This is an excellent value, the system is generous (allowing for 500 stocks) and stable (and really is tick-by-tick), and the support is fantastic." - Comment from Shirin via Email
"It’s so nice to be working with real professionals!" - Comment from Len
"I've been using IQFeed 4 in a multi-threaded situation for the last week or two on 2600 symbols or so with 100 simultaneous daily charts, and I have had 100% responsiveness." - Comment from Scott
"There is no doubt that IQFeed is the best data provider. I am very satisfied with your services. And IQFeed is the only one that I would recommend to my friends. Now, most of them are using your product in China." - Comment from Zhezhe
"IQ feed is brilliant. The support is mind-bending. What service!" - Comment from Public Forum Post
"Its working FABULOUSLY for me!! Holy cow...there has been so much I've been missing lately, and with this feed and Linnsoft software...I'm in the game now." - Comment from Chris R.
"I've never had DTN go out on me since switching. ******* would go down a couple times every month when I was using them." - Comment from Bryce in AL.
"I'm very glad I switched to IQFeed. It's working perfectly with no lag, even during fast market conditions." - Comment from Andy via Email
Home  Search  Register  Login  Recent Posts

Information on DTN's Industries:
DTN Oil & Gas | DTN Trading | DTN Agriculture | DTN Weather
Follow DTNMarkets on Twitter
DTN.IQ/IQFeed on Twitter
DTN News and Analysis on Twitter
»Forums Index »Archive (2017 and earlier) »IQFeed Developer Support »Performance of historical API v5.1
Author Topic: Performance of historical API v5.1 (4 messages, Page 1 of 1)

XoCe
-Interested User-
Posts: 9
Joined: Sep 19, 2013


Posted: Sep 1, 2014 07:09 AM          Msg. 1 of 4
Hi,

One of our clients has a use case when he requests several one-minute bars for a set of symbols. In this case we open a socket and send several requests, one after another:
- send a request for symbol A
- receive and process data for symbol A
- send a request for symbol B
- receive and process data for symbol B
etc.

When using API 4.9 we are able to get huge amount of symbol's data during one minute, we get a response from IQFeed immediately after the request (0-1-2 ms.).

When using API 5.1 we are not able to do this. When the request is sent, it takes about 300-700 ms. to get the first data message for the requested symbol. I.e.:
- send a request for symbol A
- waiting for a response from IQFeed (~500 ms)
- receive and process data for symbol A
- send a request for symbol B
- waiting for a response from IQFeed (~500 ms)
- receive and process data for symbol B
etc.

In this situation we are able to get data for only 2 symbols in a second, 120 symbols per minute... This is very slow...

1. Why does this happen? Is it possible to make it working faster, as it was before?
2. Are there any new limitations in new API 5.1?
3. How many simultaneous threads can request data from IQFeed at the same time? What is the limit? Which is the optimal number?

Note:
We use Java API, request type is "HIT".
We used "LookupClient.java" example from IQFeed SDK for testing.

Thank you.

DTN_Tim Walter
-DTN Guru-
Posts: 1238
Joined: Apr 25, 2006


Posted: Sep 2, 2014 03:52 AM          Msg. 2 of 4
Good morning XoCe,

While I would love to take credit for a 2 ms return on history, this is simply not possible for anyone. When you request data from us, we have to open a new socket connection. So the request to the server is sent and we verify the request and reply that the connection is accepted, this means that you are immediately out 2 times your ping at a minimum.

After that, your request is sent to the server, and the data is retrieved, that process is very quick, but it has to be counted, but then that data has to be sent back to you, so we have once again cost ourselves at minimum 2 times our ping.

So even the machine sitting down the street that might be lucky enough to have a 35 ms ping, would still incur a minimum time on a history request of around 150 ms. This has been how the product has always worked, but that said, we do allow for multiple sockets to connect to us at any given time, up to 15 concurrent connections.

So even if you are having a bad ping day, we'll say of 125, and you could process all the data coming in fast enough, there is nothing to stop you from pulling 30+ symbols a second (or 1800 per minute). But doing it with one socket, you are correct, if your customer had a ping of 100+ they are going to see exactly what you have mentioned above, but there is no way that I can think of that they would see anything different in 4.9 either.

Tim

XoCe
-Interested User-
Posts: 9
Joined: Sep 19, 2013


Posted: Sep 4, 2014 12:32 PM          Msg. 3 of 4
Hi Tim,

Thank you for your answer.

Yes, it looks like you are right. We have missed that API 4.9 does not send the confirmation of the protocol before data (S,CURRENT PROTOCOL), so the first data message was just skipped when working under API 4.9. And of course every next bar after the first one was received in 0-1 ms.

Response time in API 4.9 is approximately the same as in 5.1...

Thank you for your help.

DTN_Tim Walter
-DTN Guru-
Posts: 1238
Joined: Apr 25, 2006


Posted: Sep 4, 2014 06:16 PM          Msg. 4 of 4
Glad we were able to get it worked out. Let me know if we can help further though.
 

 

Time: Wed April 24, 2024 4:15 PM CFBB v1.2.0 11 ms.
© AderSoftware 2002-2003