In the process of learning about portfolio optimization, I've built myself a few simple optimizers. Anybody really optimizing their portfolio would probably use a more robust open source or commercial optimizer, but for me there was something about learning exactly what the optimizer does and building them from the ground up certainly gave me some understanding of what they do.
This applet includes all sorts of odd bits. It's not meant as anything other than a tool to play with all the code I wrote, which includes Black-Litterman, constrained optimization with the usual quadratic utility function, entropy based optimization using both a uniform distribution and the Idzorek market data as a prior, and mean-variance with an entropy based diversification constraint. The latest additions to the applet is rank based optimization and a new simulated annealing algorithm that provides the capability for cardinality constraints such as (w = 0 or w > 5%). The source code is in sourceforge. It will run as either an application or an applet from the same files which is handy.
In the process of deciphering the various Black-Litterman related papers I have found that several of the authors use different approaches to the problem. In response I created a website just for information on the Black-Litterman model. My paper on what I found is now done and posted to the website. Java source code to go along with the paper is all checked into sourceforge. I have some long term plans to wrap it up a bit nicer, but I usually get distracted by the math and this is my hobby after all!
This applet lets you play with the methodology, and has some primitive editing capability so you can enter your own data. I plan on cleaning this up a bit more. Right now you can drag/drop market data from open office and I will try excel next. It doesn't work going back out to open office, but I think it will work into excel. I just need to do some testing on another machine.
The Black-Litterman optimization picks use data from the Idzorek paper for the market returns and correlations, the other market data is from Harvey Campbell's website. I wrote my own little Active Set optimizer, though the first stage was written by somebody else.I think It's pretty nice, two stage with a simplex first stage and an active set second stage. The about box of the applet/application gives credit where credit is due. I definitely understand a lot more about optimization than when I started!
There is also an interior points optimizer choice which works on minimizing variance or a given return, or else maximizing quadratic utility for a given risk aversion. This took me a long time to get worked out, and I am happy it is done. It uses logarithmic barriers and the mehrotra corrector/predictor algorithm. I expect to extend this optimization code into a robust/conic optimizer at some point in the not too distant future.