Platform Independent Realtime/Tick API Data Feed?

Aea

Newbie
Messages
3
Likes
0
I'm looking to get my hands on an API (hopefully one that's platform agnostic) that allows me to retrieve real time (or as close to it) equity prices and hopefully Level II data.

I want to monitor about 500 equities for research purposes, IB would let me do this, but it means five separate accounts just to watch 500 equities, which to me is a bit more then I want to do, and I'm not too sure of how the exchange fees would work out (they're per account right?)

Does anybody have any suggestions? The API should be platform agnostic, e.g. no COM shenanigans. Or in lieu of that a good COM one with decent prices that doesn't mind me monitoring such a large number of stocks at one time.
 
Maybe DTN IQFeed. It's not really platform agnostic cause there is some Windows executable that must run. Your app connects to that executable.

However it does run under Wine on Linux. I have it running on Ubuntu 9.04 64 bit. It has been completely stable.

There is some COM nonsense, but you can avoid all that by using the so called "TCP API" which is really just a bunch of message formats to talk to the IQFeed DLL thing. These messages are just strings with comma separated fields. It's actually very easy to code to, though it is no doubt not the most efficient way of going about this sort of thing.

I use it with Java on Linux.

You get 500 symbols in the base package, and can add in 500 increments for an extra $40 per month. API is $300 per year.

I have had it running streaming 500 high volume stocks. On a Q9550 with my app, the machine is > 80% idle in fast period after market open.

I have not tried the Level II and I doubt that you will be able to use more than a few concurrent symbols. If you want Level II for a lot of symbols, you will probably need to look at NxCore which is much more expensive.

Overall impression after a couple of weeks: not bad at all - it does the job.
 
dcraig1,

Do you mind if I pick your brain a little bit?

How much bandwidth do you end up using for Level I data? How is the reliability? Is there any stutter with the COM or is it rock solid?

I'm considering just buying another box to run Windows on and have it stream the data off to another machine.
 
dcraig1,

Do you mind if I pick your brain a little bit?

How much bandwidth do you end up using for Level I data? How is the reliability? Is there any stutter with the COM or is it rock solid?

I'm considering just buying another box to run Windows on and have it stream the data off to another machine.

1, I'm not using COM at all, just open a TCP connection make requests, read and parse strings. (you can use the COM based API -OR- the TCP API). Pretty easy. 100% reliable so far. Normally I'd be a bit hesitant to use Wine for something like this, but in this case I've seen no problems at all. I've seen a couple of cases of stutter, but I think they are due to some garbage collection issues in my Java code.

If you really want to use COM stuff, then the easiest and cheapest thing to do would be to install Windows in a VM using VMWare, or VirtualBox etc etc.

2. Bandwidth is not bad. Can't give you exact figure. I have near 20Mb/Sec ADSL 2+, which is rather overkill. However we are afflicted with download limits imposed by ISPs here, so I will be looking into this a bit further and installing some proper traffic accounting. My guess is something like 100 MByte/Hr for 500 high volume stocks, but that may be well off. DTN do some sort of compression on the streaming data.
 
Last edited:
I am trying to figure out if NxCore is better than CQG data feed... Could you tell? Have you tried to compare NxCore to feed like CQG or TT ?

I thought NxCore like 2 step ahead but just yesterday I found out that NxCore provide 25ms granularity which is not brilliant. Much better than any retail feed but not brilliant.

What would you say? :smart:
 
Dcraig could that approach be used with a forex API? Ive got Marketcetera but a bit confused on how to stream it quotes.
 
Maybe DTN IQFeed. It's not really platform agnostic cause there is some Windows executable that must run. Your app connects to that executable.

However it does run under Wine on Linux. I have it running on Ubuntu 9.04 64 bit. It has been completely stable.

There is some COM nonsense, but you can avoid all that by using the so called "TCP API" which is really just a bunch of message formats to talk to the IQFeed DLL thing. These messages are just strings with comma separated fields. It's actually very easy to code to, though it is no doubt not the most efficient way of going about this sort of thing.

Sounds very interesting, thanks for the tip dcraig1. I downloaded iqfeed_client_4_7_2_0.exe and successfully installed it with Wine, and now it seems that I can run iqconnect.exe (on MacOSX and Debian Linux) and it pops up a login GUI. I don't have a login yet, I'm just doing a bit more research before I pony up the hard earned readies... I guess I should start by signing up for a trial. A couple of questions for you:

1. Can you automate iqconnect.exe so that it logs in when you run it? Ideally I would like to set it up as an init.d-managed daemon running as 'nobody' or something like that, ie no user interaction and no GUI (possibly using xvbf if it needs X11).

2. Is there any reason to pay $300/year for developer status (on top of the monthly fee for data)? It seems from what you said above that the protocol is trivial, so I just need to get my hands on a some example messages (and there are various libraries on github and sourceforge that show examples). The whole 'developer' thing seems oriented towards Windows people using the IQ DLL to write charting apps to sell...

Thanks
 
Last edited:
I used Bloomberg before for equities and fixed income (spot, bond price, yield curves, security identifier so on so forth), API exposed to .NET or C++, not sure about JAVA. But .NET can run on just about any platform on mono. Their API is socket based API. Bloomberg Desktop API which comes with Bloomberg terminal costs about US2k a month, execellent support I must say. But to signon, they'd request you divulge use of the API (They are bit edgy about data distribution), so if you're running a software business and not too keen on divulging your business/product strategy... you might want to consider other vendor.
Recently stumbled across http://www.xignite.com/Products/ --- they are web service based, but seems to be very pricy.
btw, even morningstar is entering as provider of real time market data recently (but I wasn't too impressed with their support with fund data). err... if I remember correctly one sales guy did mention they have long tick history, not sure if it's true or not (You need tick data but do you need historical ticks for say backtesting?)
Reuters is another option. Basically, I like bbrg the best but they are damn curious about what you do with data - I'm not too keen on "Getting to know you" at all. These sales person, why is it so hard for them to understand "I am not interested to Mingle", "I'm not interested you get to know me" or tell you what our strategy is. Just stupid - if you want it, just give them the standard bull**** they'd like to hear.
 
Last edited:
Top