sruff
-Interested User-
Posts: 5
Joined: May 12, 2005
|
Posted: May 12, 2005 12:06 PM
Msg. 1 of 2
This morning using the software I'm developing I subscribed to almost 600 symbol on the nasdaq. However it appears that at some point within the first hour, and perhaps from the beginning I started receiving ticks for only a small subset of the subscribed symbols. Is it possible for the server to just stop sending ticks for a subset of symbols? Do I need to detect this on my side and resubscribe?
I'm very pleased DTN is providing this service and making the SDK publicly available. However, I'm really struggling to get data reliably. I've had problems with corrupted data, never getting !ENDMSG!, total loss of ticks, and now partial loss of ticks. I'm a professional software developer working full time. This is my own project that I'm working on on the side. I'm finding that I'm spending more time working on data issues than my trading strategy.
I realize I could have bugs in my code. However, I would like to know what data correction/error detection steps the DTN developers believe the client developer must implement to maintain a reliable feed with uncorrupted data, and minimal loss of ticks using the CURRENT SDK.
Thanks Scott Ruff
sruff
|
dhakme
-DTN Evangelist-
Posts: 150
Joined: Sep 17, 2004
|
Posted: May 22, 2005 09:13 AM
Msg. 2 of 2
Scott, You haven't had a response to your question for some time so I thought I'd try to help you out even though I didn't write the code that dealt with watching symbols. The first thing you should check is the IQConnect status window. It will indicate the actual number of symbols being watched. We played around with the way watch requests were issued to get it to work well. To watch 1300 symbols we issue 650 watch requests sequentially without any pauses between requests. We then wait for up to 20 seconds for the watch confirmations and then we send the remaining 650 watch requests. This works well for us but you have to make sure your bandwidth and PC are up to it. If either is too slow then you will be unsuccessful with many of your watch requests or will get a lot of corrupt data. You should open the IQConnect status window and watch as the number of symbols being watched goes up as you do this. (This method works fine for internet connections of 1500kbps and faster. I haven't tested on slower connections). As a guess, you will probably need a 2.4GHz machine to handle your 600 symbols and some application processing. Even after you manage to watch all the symbols you still risk getting a large number of corrupt packets if there is a bottleneck anywhere (bandwidth, cpu, etc). The IQConnect application doesn't handle buffering very well at all and will corrupt any symbol data that it can't keep up with. I recommend that you set up a separate thread to read the data from IQConnect as fast as possible and to buffer that data for your applications use. If you get a lot of corruption for specific symbols it's usually due to IQConnect and you can usually fix the problem by unwatching and rewatching that symbol. IQ has been promising new client software for over 12months now that was meant to fix many of these bugs but I wouldn't hold my breath. It was due in Q1 but they never mentioned which year so your guess is as good as mine.
|