Rescale positives and negatives asset weights to 1

6 views (last 30 days)
Hello,
I'm studying on Risk Parity strategy. I optimise with the RP algorithm a set of asset (N) returns(NxT). The result is a N vector of positive weights summing to one. Now I want to modify the weights on the sign of momentum (i.e. an asset with positive momentum preserve a positive weight while weight of an asset with negative momentum became =-originalweight. So now I have a N vector of positive and negative. In order to preserve the properties of MPO I need to rescale the new weights to make them summing one. If sum of weights is positive there's no problem. But if the sum of weights is negative I can't making them summing 1 unless I change the signs of weights. I have a result in excel by standardize the weights vector and then use the solver, but I can't replicating it in Matlab.
Do you have some advice?
Thanks
Lorenzo
  3 Comments
Lorenzo Russo
Lorenzo Russo on 13 Mar 2015
I did a simple example. Speculate to get optimal RP weights for 3 asset class as [0.4 0.3 0.3]. Suppose that the first and the third has negative momentum. So i change the weights in [-0.4 0.3 -0.3]. Now I need to rescaling this weights in order to maintain their proportion and sign and to get them sum 1. In excel I standardize the vector obtaining [-0.70436 1.144586 -0,44023]. This weights sum 0 so that a portfolio with this would be market-neutral, but I need a 100% invested position. So with the excel solver I solve sum[-0.76436 1.144586 -0.44023]=1, changing the same value (i.e [-0.76436 1.144586 -0.44023]). With this approach I obtain [-0,37103 1,47792 -0,10689]. I would ask if is this approach correct and how to replicate it in matlab.
dpb
dpb on 13 Mar 2015
Edited: dpb on 14 Mar 2015
That's bizzaro, indeed. I've no idea how you must've done this, can you show what you actually did in Excel for comparison and is there some easily accessible reference to the methodology for an explanation of the rationale?
As for "...is this approach correct[?]", that'd all depend on far more than I understand of the process from the description here. There are an infinite number of possible solutions as what you've written is that
sum(a.*w)=1
for some combination of a and w which for three elements is simply
a1*w1 + a2*w2 + a3*w3 = 1
given a set of w. Looking at the above results it seems that approximately the result obtained earlier was that the normalization factor for w2 is roughly twice that of w1,w3 so that if introduce that as a constraint the above can be rewritten as
a1*w1 + 2*a1*w2 + a1*w3 = 1
from which one can write that
a1=1/(w1 + 2*w2 + w3)
Is that a satisfactory deterministic solution? I've no idea but afaict it should be as good as any other given the stated requirement.

Sign in to comment.

Answers (0)

Categories

Find more on Linear Programming and Mixed-Integer Linear Programming in Help Center and File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!