I’ve decided to write an application that will help me monitor my (relatively simple) portfolio. However, I don’t have a tool that will load the data from internet sources. Normally, I use Interactive Broker’s data service, but I also sometimes use Yahoo and MSN and Google. Mostly what I need is “last Price,” and “last Close.” Ideally I’d also want to get “close on a particular date,” but I can live without that for now, if need be. I am not a professional programmer, but I can write Java code. Anyone know of a Java tool that would let me do something this. I’m sure I’m not the very first person with this particular need, and I’d rather not have to figure out how to write my own if I don’t have to.
I’ve used that one that Mobius says, it’s pretty good. If you use Matlab, you can connect directly to yahoo/google/bloomberg/reuters through the datafeed toolbox. For IB, I believe there are a few options in Matlab but I’ve never tried them since I don’t have IB: http://www.mathworks.com/matlabcentral/fileexchange/29434-connecting-to-interactive-brokers-via-activex-api http://www.exchangeapi.com/
These are helpful posts, but I was really looking for a Java class I could use. I have ways of getting stuff into Excel, but I wanted to have something that could monitor a real or paper portfolio in real time. I currently do it in Excel, but want to make it more flexible… easier to add and take out things, so I figured I’d finally go and write it up in Java. I can do the programming and the analysis and even the GUI fine, but querying sources for data is a PITA.
CSK to the rescue. You can thank me later. http://code.google.com/p/yahoo-finance-managed/wiki/csvQuotesDownload http://hc.apache.org/
Getting the data is pretty easy. All of the tools mentioned above likely work fine. But it seems that you are using data from several data sources. In such a case you need to manage your data carefully. Which price to use from which source under which circumstance is just one of the simple issues. Therefore, I recommend that you decide for one source. Also, Yahoo/Google AFAIK is less close to real-time than IB. But if real-time is really a concern I’d look for a FIX connection to IB and a Java lib that handles the FIX protocol for you. Well, and since data management is such a PITA, I do this exactly once in any new technology environment to get a good understanding. Later on I prefer to use some offshore provider to ensure my database contains the right data. They charge a couple of 100 USD to do updates and minor enhancements or to add data from a new source.
In general, I like the IB data, because I trade on IB, and I’ve noticed quite a discrepancy between even delayed Yahoo and IB prices. However, Yahoo has dividend and split adjusted historical prices, which are useful in other contexts. I’ve kinda decided to write my own tool after all. The only built-to-go source I’ve seen is documented in German, which I can’t read well. I just figured that there would be something already made that has more bells and whistles than I would write myself. IB does hav an API, so I’ll probably write a wrapper that samples Yahoo or IB depending on what parameter I send it. But I’m still open to other suggestions for those who have them.
Wouldn’t it be better to outsource the IT part to an IT guy and focus on your core strengths (e.g. Finance / Analysis / Trading)? You run the risk of being a man for all seasons if you do everything - particularly if something doesn’t work as it should. There must be cheap labour out there (thinking India).
Good point, and if this were a commercial undertaking or even a major project or deliverable, I’d agree with you. But I’m just trying do develop a small (ok, probably medium) tool that suits the way I’ve evolved into monitoring things, and since I’m not a professional programmer, it’s good for me to give myself occasional programming projects to keep my skills fresh.
bchadwick Wrote: ------------------------------------------------------- > But I’m still open to other suggestions for those who have them. Sie sollten nur Deutsch zu lernen, duh.