David has contributed to 113 posts out of 21251 total posts
(0.53%) in 7,459 days (0.02 posts per day).
20 Most recent posts:
Look at the code that implements the data transfer from the socket - I don't use or work in net - so see what forms of transfer are available, normally one provides a string or a data array to get/read the data once the DataAvail event happens. The idea here is not to do any creation of objects or anything getting the data. Just do it once at initialization - then no additional overhead then. String manipulation can be very slow in particular.
Also look at the code that handles the event - make sure you are not taking too much time there, especially on display or other I/O - I suspect that net is slow by nature.
GL!
David
IQXP Software http://www.iqxp.com
LiveWire Update Service PO Box 1417 Fairfield, IA 52556 641-472-8393 http://www.livewire-cablesoft.com/
FWIW:
I use a 'dataavailable' event for tcp/ip. It is very important that you minimize the time servicing the data, and depending on how your tcp connection is done you do not want to call 'process messages' or equivalent in the event process. Also if you use strings, that can take a lot of CPU time - I use a fixed array of char that is only created once for each socket so there is no mem alloc or destruction going on. I only get the length of the data and then process the array. Made a big difference, very big.
David
IQXP Software http://www.iqxp.com
LiveWire Update Service PO Box 1417 Fairfield, IA 52556 641-472-8393 http://www.livewire-cablesoft.com/
PG:
FWIW:
One thing that may give you some more information is to test the connection to your interface so that essentially there is no processing after each packet comes in - basically set a switch so that once quotes are coming in nothing is done with them and the socket is ready for the next data. Check out the CPU loading under this 'no loading' to see if better behaved. I suspect it may be very informative.
I found that the processing time in servicing the stream by my program affects the CPU loading of IQConnect (and obviously my program). I also discovered that the 'message pump' should not be called within the event processing called from the OnDataAvail event notification.
David
IQXP Software http://www.iqxp.com
LiveWire Update Service PO Box 1417 Fairfield, IA 52556 641-472-8393 http://www.livewire-cablesoft.com/
FWIW:
I have been using Google's Chrome and have no issues like you mention. I find it faster than most browsers loading sites and not encumbered with hangups like you mention - it now seems to do well with most web sites and has some nice built in features without resorting to third party plugins.
David
IQXP Software http://www.iqxp.com
LiveWire Update Service PO Box 1417 Fairfield, IA 52556 641-472-8393 http://www.livewire-cablesoft.com/
Quote: It is working in a sense that I am making money in my trades.
Great! That's what really counts.
May this new year bring you continued success.
David
IQXP Software http://www.iqxp.com
LiveWire Update Service PO Box 1417 Fairfield, IA 52556 641-472-8393 http://www.livewire-cablesoft.com/
Quote: I am closing this thread and starting a new one with a new laundry set of errors.
FWIW: I'd suggest that you take a look at the 3rd party products out there - some free - and see if they qualify for your trading ideas / needs. Most of them have spent years refining their program and interface with DTN - and, they also work on 64 bit platforms.
I suspect that some will even add new features to their program to accommodate your ideas - sometimes for free (it may have been on their to-do list) or for a small fee depending on the nature of the addition.
Good luck in your trials and tribulations.
David
IQXP Software http://www.iqxp.com
LiveWire Update Service PO Box 1417 Fairfield, IA 52556 641-472-8393 http://www.livewire-cablesoft.com/
I use a set of components (Internet Component Suite) by François Piette now distributed from http://www.overbyte.be/frame_index.html - I do not know what comes with Delphi 7 but it's tcp/ip client components are probably fine.
I have used ICS for years with little to no issues. Windows is an event driven system - these work in that paradigm in that you do not have to worry about creating a separate thread to service the dynamic data coming in. Just set up event handlers for the respective socket responses: login ops, quotes, history, etc. Simple and can handle high internal bandwidth. Make sure that your processing code in the handlers is fast, especially if displays get involved.
My system can handle 1800 symbols that are very active with no issues on what now would be considered a slow computer. The DTN client has become very efficient and stable over the years and now they have taken it up a notch higher.
Good luck and have fun on your sojourn!
David
IQXP Software http://www.iqxp.com
LiveWire Update Service PO Box 1417 Fairfield, IA 52556 641-472-8393 http://www.livewire-cablesoft.com/
There are no examples that I know of - I'd suggest that you consider using the tcp/ip interfaece instead of COM. Clean and works well. It is more in line with how the DTN client is set up to operate too for all communications.
Delphi is a powerful and productive environment. Until I recently started doing some Android projects I did not realize how good it really was.
Good luck!
David
IQXP Software http://www.iqxp.com
LiveWire Update Service PO Box 1417 Fairfield, IA 52556 641-472-8393 http://www.livewire-cablesoft.com/
Looks good here!
Thanks!
All is well that ends well
David
IQXP Software http://www.iqxp.com
LiveWire Update Service PO Box 1417 Fairfield, IA 52556 641-472-8393 http://www.livewire-cablesoft.com/
Starting yesterday I was not getting back any information on many symbols - today it has continued and after looking 'inside' I see that I am getting 'not found' on the symbols. I tried the DTN test programs and got the same results.
This is a serious issue!
Thanks and GL!
David
PS: I'm tyring to do a new version release tonight and this is not helping!
IQXP Software http://www.iqxp.com
LiveWire Update Service PO Box 1417 Fairfield, IA 52556 641-472-8393 http://www.livewire-cablesoft.com/
Quote: The S,CUST message is going to represent what the servers are configured as for the most current version of IQFeed.
Thanks for your explanation - however your recent email announcement that "IQFeed 4.4.0.3 is now live! " seems to state that it is the most current version for the servers and should be reflected as such in the CUST message.
The 'new version' notification feature not working is another matter. I think it is a great idea when implemented and enabled. I assume it will be a pop-up message that IQConnect shows. I was going to have a pop-up show when the CUST and STAT message did not agree - I've stubbed out this code for my new release.
Thanks,
David
IQXP Software http://www.iqxp.com
LiveWire Update Service PO Box 1417 Fairfield, IA 52556 641-472-8393 http://www.livewire-cablesoft.com/
FWIW:
When I start my IQXP program with the new DTN client version 4.4.0.3 I get conflicting messages. Here are two snippets:
In the CUST response I see: 2:29:17 PM S,CUST,real_time,66.112.148.221,5002,Lmc59smtxYr,4.3.0.3,0,INDEX...
And in the STATS response I see: 2:29:17 PM S,STATS,66.112.148.221,5002,1800,0,1,1,0,0,May 16 3:29PM,May 16 3:29PM,Connected,4.4.0.3,...
Thanks!
David
IQXP Software http://www.iqxp.com
LiveWire Update Service PO Box 1417 Fairfield, IA 52556 641-472-8393 http://www.livewire-cablesoft.com/
FWIW:
I have installed the SP3 on three machines, two that have installed and run the new IQFeed client 4.4.0.3. I found no issues. One machine was recently purchased the other several years old with a long list of Win updates.
On a new install like this I always do a full reboot of the system (power-down, not just a restart) before doing the download and install from M$. I also do a 'CHKDSK' on it to make sure that the hard drive structure is OK. To do so go to properties on the boot drive (right mouse click on the drive in Windows Explorer) and select Tools tab then under Error-checking click on "Check Now". The next time the system is started it does its checking and repairing if necessary.
On Vista I finally had to replace the computer with one that has WinXP - too many issues kept coming up - I did like the new interface and many of its new features, I did 'want' it to run OK. However I could not even get it to install the first service pack for Vista - this on a 2 week old computer from Dell - so I gave up and went back to WinXP.
GL!
David
IQXP Software http://www.iqxp.com
LiveWire Update Service PO Box 1417 Fairfield, IA 52556 641-472-8393 http://www.livewire-cablesoft.com/
FWIW:
I have made EST the standard in the IQXP Program for charts regardless of local time. The feed data is all in EST so why get into changes. This lets me do direct comparisons of charts for the same time period and not have offsets or need to have the user enter his local time. Holidays can also be an issue when some foreign exchanges are open when the US is closed.
The thing I'd like to see added in the fundamental data is the market start and stop times for each symbol instead of my having to keep an internal table. In addition to this, the extended trading hours can add confusion too. I have made my charts (minute bar) larger so that they include pre and post market hours. On many issues this shows the thinness of trading, and on some days catches a post market boom that continues. This market is a traders dream - hopefully not a nightmare.
David
IQXP Software http://www.iqxp.com
LiveWire Update Service PO Box 1417 Fairfield, IA 52556 641-472-8393 http://www.livewire-cablesoft.com/
Quote: If not, then how can I go about computing the average trade size for a symbol?
FYI: The data feed includes the total trades for a day on a symbol. This information is sent with each quote change. Just divide the total volume by the number of trades and you get the average volume per trade at that point in the day.
David
IQXP Software http://www.iqxp.com
LiveWire Update Service PO Box 1417 Fairfield, IA 52556 641-472-8393 http://www.livewire-cablesoft.com/
Quote: ...simply reconnecting a few time should get you to a different server farm.
I'd like to see a function in the interface to IQConnect that lets you request 'go on to next server' so that one can get another server immediately and not have to futz around with connection / disconnection until a different one comes up. This stays with your load balancing and lets us check quickly to see if it is a server issue. I am astounded sometimes in how many times I have to re-connect to get a different server.
Also, I have a big difference here in both latency and hops between the two server farms - 156 gives me 13 hops and an average latency of 43 m-sec, 148 gives me 19 hops and 62 m-sec. I have lower errors associated with the fastest system.
Thanks!
David
IQXP Software http://www.iqxp.com
LiveWire Update Service PO Box 1417 Fairfield, IA 52556 641-472-8393 http://www.livewire-cablesoft.com/
As a part of the quote stream on a symbol I'd like to see afield added that would be a news alert flag. This would save searching and parsing the news headlines for symbols in news.
One of the issues in the news headlines is that the same story is sent out several times in the day under different story ID's so it looks like new news.
One attribute of the news alert is to have a time marker on it so that if it is sent continually it would not trigger any further alerts. New news, new alert. News earlier in the day should have a day alert for news on the symbol, additional news then additional alerts. Having an alert lets the user then check further without having the the application take time to keep all local (ie. go retrieve news / news headlines )
I have several customers that actually subscribe to other services because news alerts are very important to them - they are not satisfied with the news that is on the feed, and I think that having a news alert broadcast as a part of the quote stream would be a giant step in filling in a hole and also will bring in subscribers for this feature. Make it a special service add-on.
Thanks!
David
IQXP Software http://www.iqxp.com
LiveWire Update Service PO Box 1417 Fairfield, IA 52556 641-472-8393 http://www.livewire-cablesoft.com/
Using new 4.3.0.3 Minor problem - in the login CUST response the IQConnect version is incorrect - I did not notice this in previous version, but then again was not looking at this field. Here is a snippet of the response: 12:31:59 PM S,CUST,real_time,66.112.148.226,5002,E5qRYBf3XzWBix,4.3.0.1,0,INDEX...
The STATS return does contain the correct version.
David
IQXP Software http://www.iqxp.com
LiveWire Update Service PO Box 1417 Fairfield, IA 52556 641-472-8393 http://www.livewire-cablesoft.com/
Fundamental data: The long term debt shows the same value as the current assets. I have found this on all symbols, even after a forced refresh and a restart. The outstanding shares value is also bogus. Some fields like % Institution Invest. are OK and compare to similar data on yahoo or similar. I don't have time to check all and do comparison with other on-line services. I'd suggest someone at DTN should do a field by field check for data integrity and accuracy.
FYI: Server is: 66.112.148.226
Thanks!
David
IQXP Software http://www.iqxp.com
LiveWire Update Service PO Box 1417 Fairfield, IA 52556 641-472-8393 http://www.livewire-cablesoft.com/ Edited by David on Jul 16, 2007 at 02:16 PM
Vista Operation
Had at least one customer use the latest IQConnect on Vista along with my program and no issues came up. This was a new machine with fresh install of the 4.2.0.7 client.
FWIW: One thing that sometimes got my system going after an new version update of the IQFeed client was to do the full IQ-Client install a second time. and re-boot afterwards.
GL!
David
IQXP Software http://www.iqxp.com
LiveWire Update Service PO Box 1417 Fairfield, IA 52556 641-472-8393 http://www.livewire-cablesoft.com/
|