Thread Subject: Norm Constrained Portfolio Optimization

Subject: Norm Constrained Portfolio Optimization

From: Jeremiah Green

Date: 7 Jan, 2009 02:28:01

Message: 1 of 7

For portfolio optimization, my conceptual problem is to select weights (w) to minimize the following: min -1*(XRet*w)/(w'*C*w) subject to the constraint that abs(w)<=c, where c is some constant. I have been doing other constrained versions with the fmincon function. Can anyone tell me how I might solve this problem? Thanks

Subject: Norm Constrained Portfolio Optimization

From: Phil Goddard

Date: 7 Jan, 2009 03:44:02

Message: 2 of 7

"Jeremiah Green" <jeremiah.green@gmail.com> wrote in message <gk13vh$7i8$1@fred.mathworks.com>...
> For portfolio optimization, my conceptual problem is to select weights (w) to minimize the following: min -1*(XRet*w)/(w'*C*w) subject to the constraint that abs(w)<=c, where c is some constant. I have been doing other constrained versions with the fmincon function. Can anyone tell me how I might solve this problem? Thanks

You should be able to use fmincon for this too.
The cost function is specified as before, typically as a function handle, and the non-linear constraint is specified, also as a function handle, as the 9th input argument.
There's an example of what the non-linear constraint function needs to look like in the doc for fmincon:

function [c,ceq] = mycon(x)
c = ... % Compute nonlinear inequalities at x.
ceq = ... % Compute nonlinear equalities at x.

Phil.

Subject: Norm Constrained Portfolio Optimization

From: Roger Stafford

Date: 7 Jan, 2009 03:56:02

Message: 3 of 7

"Jeremiah Green" <jeremiah.green@gmail.com> wrote in message <gk13vh$7i8$1@fred.mathworks.com>...
> For portfolio optimization, my conceptual problem is to select weights (w) to minimize the following: min -1*(XRet*w)/(w'*C*w) subject to the constraint that abs(w)<=c, where c is some constant. I have been doing other constrained versions with the fmincon function. Can anyone tell me how I might solve this problem? Thanks
-------------
  A few questions. You entitled your thread "Norm Constrained Portfolio Optimization" but gave the constraint as "abs(w)<=c". This latter is not the usual L2-norm (square root of sum of squares) but the L-infinity norm, which is the maximum absolute value. Which do you actually wish to use?

  Also what are the sizes of the arrays, XRet, C, and w - how many rows and how many columns for each?

  Final disturbing point. As it stands, it does not look like a well-defined problem, for the following reason. For any particular w lying within the given constraint, as we change w along a line moving towards the zero point (w = 0), the function you defined must either approach plus infinity or minus infinity, because w is second order in the denominator and only first order in the numerator. Passing through the zero vector along this line to the other side will reverse its sign. Either way, the overall minimum would have to be minus infinity. This means that 'fmincon' (as well as any other kind of optimizer function) would continue to crowd closer and closer to w = 0 without ever finding a true minimum (because there is no finite minimum.)

Roger Stafford

Subject: Norm Constrained Portfolio Optimization

From: Bruno Luong

Date: 7 Jan, 2009 07:30:10

Message: 4 of 7

"Roger Stafford" <ellieandrogerxyzzy@mindspring.com.invalid> wrote in message <gk194i$alf$1@fred.mathworks.com>...
>
> This means that 'fmincon' (as well as any other kind of optimizer function) would continue to crowd closer and closer to w = 0 without ever finding a true minimum (because there is no finite minimum.)
>

Roger is absolutely right, the function has -infinity as minimum. The problem is not well defined.

Bruno

Subject: Norm Constrained Portfolio Optimization

From: Jeremiah Green

Date: 7 Jan, 2009 17:50:18

Message: 5 of 7

Thanks for the responses. I guess I had never noticed the non-linear constraint abilities of fmincon, so thank you for that response, and I am going to try that. Also, I should have included the constraint that sum(w)=1. This forces the sum(w) away from zero where there is an infinity solution. On a related side, I am trying to consider a formulation of the problem in a way that I can force the weights to sum to zero, but the weights cannot all be zero (I suppose add another constraint)...Thanks again...

Subject: Norm Constrained Portfolio Optimization

From: Jeremiah Green

Date: 7 Jan, 2009 17:55:02

Message: 6 of 7

I also forgot to mention the norm question. The answer is, I am not sure which type of norm I want to impose. There is an article that suggests different norms, but I haven't figured out the most logical solution...

Subject: Norm Constrained Portfolio Optimization

From: Matt

Date: 7 Jan, 2009 18:54:02

Message: 7 of 7

"Jeremiah Green" <jeremiah.green@gmail.com> wrote in message <gk2q9m$6pu$1@fred.mathworks.com>...
> I also forgot to mention the norm question. The answer is, I am not sure which type of norm I want to impose. There is an article that suggests different norms, but I haven't figured out the most logical solution...

Is the matrix C positive definite? If so you can impose the C-induced norm constraint,

x'*C*w=1

in which case your objective function reduces simply to the linear function -Xret*w.

Pretty easy to solve, I would guess, possibly even analytically.







Tags for this Thread

Everyone's Tags:

Add a New Tag:

Separated by commas
Ex.: root locus, bode

What are tags?

A tag is like a keyword or category label associated with each thread. Tags make it easier for you to find threads of interest.

Anyone can tag a thread. Tags are public and visible to everyone.

Tag Activity for This Thread
Tag Applied By Date/Time
nonlinear const... Phil Goddard 6 Jan, 2009 22:45:08
nlincon Phil Goddard 6 Jan, 2009 22:45:08
constrained opt... Jeremiah Green 6 Jan, 2009 21:31:42
rssFeed for this Thread

Public Submission Policy

NOTICE: Any content you submit to MATLAB Central, including personal information, is not subject to the protections which may be afforded information collected under other sections of The MathWorks, Inc. Web site. You are entirely responsible for all content that you upload, post, e-mail, transmit or otherwise make available via MATLAB Central. The MathWorks does not control the content posted by visitors to MATLAB Central and, does not guarantee the accuracy, integrity, or quality of such content. Under no circumstances will The MathWorks be liable in any way for any content not authored by The MathWorks, or any loss or damage of any kind incurred as a result of the use of any content posted, e-mailed, transmitted or otherwise made available via MATLAB Central. Read the complete Disclaimer prior to use.

Contact us at files@mathworks.com