Long-short balanced portfolio optimization
Thanks for all the responses to my question -- I've summarized suggestions below. 1. Thanks to Brendan McMahon and Patrick Burns for pointing me toward POP at www.burns-stat.com. 2. Hannu Kahra suggests looking at Bernd Scherer's book "Portfolio Construction and Risk Budgeting" which frames the issue from a benchmark-relative optimization/tracking error perspective. 3. Roger Bos suggests editing portfolio.optim, replacing the first element of b0 with 0 to reflect the equality constraint sum(weights) == 0 before passing along to solve.QP; I assume he means in the risky lending/borrowing case. This is an attractive solution, but I haven't been able to prove to myself yet that it's correct. 4. Robert McGehee provides a different approach altogether: "My solution to adding net exposure constraints (such as sum(weights) == 0) was to add a security called "cash" with an alpha of the risk-free rate (or 0) and no covariance with my other securities. I then would put an upper and lower bound on the cash holdings, which works out the same as an upper and lower bound on net exposure, since being net long is the same as selling cash for stock and being net short is the same as buying cash for stock. That is, if we don't allow cash to change, then we can't be net long or short." Is this solution achievable by merely adding two additional inequality constraints (and the additional asset) to the standard quadratic program in portfolio.optim? Again, thanks for these responses and any further insight and clarification. Jeff
On 5/27/05, Jeff Enos <jeff@kanecap.com> wrote:
R-sig-finance, I have a vector of expected returns and a covariance matrix and would like to perform mean-variance portfolio optimization with the constraint that the portfolio be long-short balanced, that is, sum(weights) == 0. It doesn't look like portfolio.optim in the tseries package supports this constraint -- has anyone already solved this problem somewhere I've missed? Thanks, Jeff