views:

1803

answers:

3

I would like to make a free open-source C++ application for both Linux and Windows which will create live stock market charts (i.e. they're refreshed frequently).

Please could you give me some pointers on these issues:

  • What should I use as the data source? Are there free services I can implement? I would like to use the same or similar information as companies like Google.
  • I'm not sure what GUI toolkit would be best to use, is there one which has charting built in, or would I need to use a specialized library for this?

Some things to note:

  • This is my first attempt at both cross-platform C++ development, and a GUI application for Linux.
  • I'm based in the UK, so I'd like to use data sources that provide information for the London stock exchange (LON) as well as NASDAQ, etc.
+12  A: 
Mark
Note: You probably are not allowed to resell stock data without a separate license. The data are owned by the exchanges, even though Google, YHOO, etc. make them available via APIs.
runako
Correct. Yahoo! includes a note about "non-commercial use only"
Mark
Thanks for the note, my project will be free and open-source.
nbolton
Re: "Google is your friend." - of course, but I'd rather ask a human than a robot any day. A recommendation from someone like yourself who has experience with such data sources (assuming you do) is likely to give me a more useful answer.
nbolton
From the Google Finance API : "Note that this API interacts only with users' portfolio data; the Finance Portfolio Data API doesn't provide access to stock quotes or other real-world financial data hosted by Google Finance."
Mark Nold
+5  A: 

Assuming the rules in the UK are the same as in the US, you basically have 3-tiered choices.

You can hack together a lame feed from things like Google or Yahoo but you absolutely are not getting every tick, if that is what you are after.

A step up from the obvious internet sources are some of the online brokers. Their data is more reliable and timely but obviously you need an account and they have to offer some kind of API. Check into something like InteractiveBrokers.com. They are mostly java centric but offer a Window's based C++ DLL as well. Several other brokers offer similar APIs but IB is excellent in that it covers a multitude of exchanges including, I believe, London. They also make it relatively easy to transfer currencies if that is a concern.

Lastly you have to go to commercial brokers. You can find them easily enough with a search but be prepared to pay a couple of hundred dollars per month minimum.

I think Mark's suggestion of QT is a good way to go for a GUI. Java tends to be adequate for putting up a grid of running quotes but tends to fail in the charting area, IMO.

Duck
+4  A: 

You said you wanted "live" market charts. If you mean real-time, you will never get that for free. All the data you see on google etc is delayed, usually at least 15 minutes, and they don't get every tick.

John Dibling
Cool, I didn't know that. Thanks for the tip. I think 15 minutes is acceptable for my solution.
nbolton