[R-sig-finance] Long-short balanced portfolio optimization

Jeff Enos jeff at kanecap.com
Fri May 27 23:43:41 CEST 2005


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 at 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



More information about the R-sig-finance mailing list