squirlhntr has contributed to 62 posts out of 21251 total posts
(0.29%) in 7,241 days (0.01 posts per day).
20 Most recent posts:
Any plans on releasing a 64 bit version?
Ok. Thanks.
I have another similar question regarding History data over TCP/IP.
If I request History data over TCP/IP, then close the port to IQFeed prematurely, is any bandwidth saved or has IQFeed already downloaded all the data before it begins to stream it over the local port?
Excellent. Thanks!
I have a question regarding how IQFeed handles concurrent requests for data. Basically, is it possible to make several requests to the History interface and will IQFeed, given multiple requests, attempt to download all of them concurrently?
There are 2 options I am thinking of:
Option 1:
1. Start IQFeed 2. Start up x threads. 3. For each thread,: a. connect to IQFeed's TCP/IP history port b. request data
Option 2:
1. Start IQFeed 2. Start up x threads 3. For each thread: a. Use IHistoryLookup2 (or IHistoryLookup1) to request data
Will either of these work? I mean, I know I can do #1 but I haven't been able to tell if it's concurrent yet as I haven't stressed it enough yet (and last I worked with IQFeed was months ago).
Any advice?
Of course now it looks like I have to start IQFeed via another program that is 32bit and connect via sockets from a 64bit app if I want 64 bit... grrrrrrr....
I came up with a working version using DllImport; this is actually pretty close to how I used to do it in Python via ctypes. This console app is as simple as it gets (no callbacks, etc).
Since I am using DllImport I removed all the references I had made.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Runtime.InteropServices;
namespace IQTest { class Program { [DllImport("IQ32.dll")] private static extern int RegisterClientApp(int hClient, string sProductName, string sProductKey, string sProductVersion); [STAThread] static void Main(string[] args) { Program i = new Program(); i.InitIQFeed(); }
private void InitIQFeed() { string iqName = "IQ_TEST"; string iqVersion = "0.1"; string iqKey = "0.1"; RegisterClientApp(10, iqName, iqVersion, iqKey); } } }
Does anyone have an extremely simple example for how to start up IQFeed via C# in Studio (.NET 3.0), preferably a console app?
The reason I ask is that, while I have used IQFeed extensively via Python, I am completely unfamiliar with C#, Visual Studio, or COM. I'm currently trying to learn all 3 today and banging my head against the whole situation as I am so unfamiliar with the 3 that I'm having trouble focusing on the exact path to debugging my issue.
Any help would be appreciated. Until then I'm going to rip apart the DTN example (which, to frustrate things more, is blowing up in 2008/Vista).
I feel like an idiot because my professional programming experience tells me I am missing something extremely basic.
FYI I have references to AxInterop.IQFEEDYLib, IQ_APILib, System.Windows.Forms, and IQFEEDYLib. Code is as follows, with the error occuring at this.IQFeed = new AxIQFEEDYLib.AxIQFeedY();
using System; using System.Collections.Generic; using System.Linq; using System.Text;
namespace IQTest { class Program { private AxIQFEEDYLib.AxIQFeedY IQFeed; [STAThread] static void Main(string[] args) { Program i = new Program(); i.InitIQFeed(); }
private void InitIQFeed() { this.IQFeed = new AxIQFEEDYLib.AxIQFeedY(); string iqName = "IQ_TEST"; string iqVersion = "0.1"; string iqKey = "0.1";
this.IQFeed.RegisterClientApp(ref iqName, ref iqKey, ref iqVersion); } } }
Steve,
FYI I had no luck getting the standard SOCKS (Permeo, Aventail, etc) clients to work.
However I found a free (for personal use) "mini" SOCKS program published by Permeo (originally written by NEC) that does the trick called "SocksCap". The only thing is it doesn't work automatically, you have to launch your program from SocksCap.
Small price to pay though for a functioning client.
Thanks Steve.
Yeah I don't understand SOCKS either which is why I got so confused as to how it went from working to not. I do understand that it's not supported, which is fine; I do write software for a living after all
I will investigate further and see if I can find a workaround. If it is an MFC class there must be a way to hook into it in some way and override what it is doing; the odd thing is that connecting goes fine, and the IQ ports show up, but they are not in a "listening" status.
Back to work.
p.s. current version is use is 2.3.1, not 2.1
My question is whether you have had any luck getting 4.0+ to work with SOCKS software.
I currently use 2.1 in a SOCKS environment and it works fine but have had no luck getting the newer versions to work properly.
I've tried all the SOCKS software: Aventail, Hummingbird, Permeo, etc. No luck
Disabling the old clients will hurt.
Yeah don't use sleep(). And don't wait for things to process; make your process asyncronous.
Use an event-driven organization and pass events between threads. If you're using C++ you might want to take a look at the free and excellent wxwidgets library.
personally i write in python and twisted is superb for these sorts of things.
Quote: skunk is correct, historical open interest for futures is available in IQFeed v4.1.0.0, which is currently in BETA. That info is in the release notes, and will be updated in the online documentation when the release goes LIVE. Thanks!
Natalie
--- Original message by DTN_Natalie_H on Dec 22, 2005 09:41 AM swwwweeeeeeeettttt
Thanks for the quick response.
1) Is there any way to retrieve the historical open interest for a future contract?
2) What data is in the "volume" field on a history request for a futures contract?
Thanks!
Quote: Can anyone comment on how long it takes to turn a history request intraday?
If I call the history server, I am getting ET's of up to 8 seconds for 10 days of minute bars on ES(eMini S&P)...
I have been poking around on my code to speed things up but nothing seems to improve the turnaround time...
If I request the last 10 days of minute data (in single minutes)...it takes up to 8 seconds to report back the entire block, at which point I launch the next request in the que...
Somthing must be wrong...
It should not take 8 seconds to get 10 days worth of 1 minute bar data.
Scott Edited by swhitney on Dec 17, 2005 at 07:42 PM
I buffer the incramental callbacks until i see an ENDMSG then kick it to the que cruncher and the entire block is sent as a text chunk...to the listners.. Edited by swhitney on Dec 17, 2005 at 07:44 PM --- Original message by swhitney on Dec 17, 2005 07:40 PM what do you mean "turn a history request"?
the S&P emini is traded "24/7", yes? thats alot of data. unless i'm missing something, i'm not surprised it would take 8 seconds to retrieve 10*24*60 ticks. i mean 8 seconds is a tad long, but its not that far off what i'd expect, especially since you're timing it from when you're done processing the data, stored as text, which is much larger than the compressed data iqfeed receives.
time it from when the request goes out until the ENDMSG, using sockets. that'll tell you if its the network/iqfeed or not.
that's too bad. storing it would be pretty cheap. but then again you probably couldn't charge for it, either
Me too!
What do you think? A great deal of the recent gold rally was due to activity overnight in the Japanese exchanges, and likewise a great deal of copper activity has been occuring in Singapore.
Any chance of getting datafeeds from these exchanges?
|