Optimization problem - Sequential Approximation - f(x(i)) = x(i) * E[r(i)|rp(x)<=VaR] - find the x such that all f(x) are equal
1 view (last 30 days)
Show older comments
Dear all, I am trying to solve the following optimization/sequential approximation problem concerning an ERC portfolio.
I have n assets in portfolio. r(i) is a random variable which identify the asset's i return and rp( x ) is the portfolio's return, function of assets' returns ( x '* r ). x is the vector of portfolio weights.
Now, I have a Risk Contribution function which is:
RiskContribution(i) = x(i)* MarginalContribution(i)
= x(i) * E[r(i)|rp(x)<=VaR(rp(x))]
What I am looking for is the x * portfolio allocation such that the vector of Risk contributions RC = [RC(1) RC(2) … RC(n)] have all the same elements (RC(1)=RC(2)=…=RC(n)).
Does anybody have an idea of how to solve this problem?
I think that is impossible to solve it as a minimization problem because once I change the portfolio's weights, also portfolio returns rp(x) and VaR Value-at-Risk change.
PS: naturally, I need x(i)>0 for every i since short selling is not allowed in my problem [..and at least a minimum weight should be allocated to every asset]. An additional constraint could be the sum(x(i))= 1 but it is not compulsory (I can normalize weights in a second moment).
Thanks to everybody.
5 Comments
Answers (1)
Matt J
on 14 Jan 2014
Glad you got it working, Andrea. I'll just add as an Answer that LSQNONLIN might be better for an objective of the form
error=sum((RC(i)/ES - 1/n)^2)
and for constraints consisting only of upper and lower bounds. LSQNONLIN is more customized for least squares minimization than FMINCON.
0 Comments
See Also
Categories
Find more on Portfolio Optimization and Asset Allocation 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!