Problem 1. Maximizing sum of expected return and weighted CVaR Deviation
Mathematical Problem Statement
Problem dimension and solving time
Solution in MATLAB Environment
Problem 2. Maximizing sum of expected return and weighted Variance
Mathematical Problem Statement
Problem dimension and solving time
Solution in MATLAB Environment
Problem 3. Maximizing sum of expected return and weighted Mean Absolute Deviation
Mathematical Problem Statement
Problem dimension and solving time
Solution in MATLAB Environment
This case study investigates two investment strategies for a portfolio of hedge funds. The first strategy rebalances the portfolio by solving an optimization problem. The second strategy, called "20-best", every time period selects 20 hedge funds with the highest return (over available data) and give them equal weight. Rebalancing in both strategies is done on a monthly basis. Out-of-sample numerical experiments illustrate investment strategies performance in a simulated historical environment. We solve the portfolio optimization problem using three risk measures: CVaR, Variance, and MAD (code can handle any risk measure included in PSG). Also, we take into account the market-neutrality (i.e., beta-zero) constraint. Performance of strategies is compared with SP500 benchmark. The setup of this case study is described in Krokhmal et al [1].
The dataset contains monthly rates of returns for 302 hedge funds (66 monthly returns from December 1995 to May 2001, for funds with market capitalization of at least $5,000,000 as of December 1995). Also, monthly data for the benchmark portfolio (SP500) are included in the dataset.
The case study consecutively run 54 passes corresponding to 54 out-of-sample months. The first pass uses the first 12 months of historical returns as in-sample scenarios to generate scenarios (in-sample) for the optimization problem described in Formal Problem Statement. Each scenario is a vector of monthly returns for all funds considered in the optimization problem (all scenarios are assigned equal probabilities). Optimization gives new portfolio positions. To evaluate the out-of-sample performance of this reoptimized portfolio we multiply the new positions by the 13-th month return. I.e., we do paper-trading in the out-of sample 13-th month.
To implement the "20-best" strategy, 302 hedge funds rates of returns are calculated for the first 12 months. Then we include in the "20-best" portfolio the 20 hedge funds with the largest returns over 12 months . All 20 funds have equal monetary values (equally weighted portfolio with weights=1/20). Finally, we calculate new value of the benchmark SP500 for the13-th month.
During the second pass we repeat the described procedure including in the in-sample period the 13-th month and using the next, 14-th, month as out-of-sample. This procedure is continued until we hit the last month (May 2001) in the database.
The performance of the resulted portfolios is presented graphically and in form of tables. The tables present portfolios dynamics, and portfolio performance statistics including annual return, maximum drawdown and Sharpe ratio. The graph compares the portfolios out-of-sample performance.
Three risk measures are compared in this case study:
• | CVaR Deviation with confidence level equal to 0.2 taking into account all scenarios except for 20% of gains (see (CS.1)-(CS.4) in Formal Problem Statement) |
• | Mean Absolute Deviation (MAD) (see (CS.5)-(CS.8) in Formal Problem Statement); |
• | Variance (see (CS.9)-(CS.12) in Formal Problem Statement). |
The best total out-of-sample rate of return (205.01%) belongs to portfolio4 with Mean Absolute Deviation risk measure .
The best out of sample Sharpe ratio (3.83) belongs to portfolio6 with Variance risk measure
References
[1] Krokhmal, P., Uryasev, S., and G. Zrazhevsky. Risk Management for Hedge Fund Portfolios: A Comparative Analysis of Linear Portfolio Rebalancing Strategies. Journal of Alternative Investments, V.5, #1, 2002, 10-29.
Maximizing sum of expected return and weighted CVaR Deviation.
Maximize Linear + CVaR_dev
subject to:
Linearmulti = Const1 (budget constraint)
-Const2 ≤ Linearmulti ≤ Const2 (market-neutrality constraint)
Box constraints (lower bounds on positions)
where
CVaR_dev = CVaR Deviation
Linearmulti = Set of Linear Functions
Box constraints = constraints on individual decision variables
Mathematical Problem Statement
See (CS.1) - (CS.4):
Problem dimension and solving time
Example solution of one optimization problem with confidence level 0.2 in CVaR Deviation:
Number of Variables |
12 |
Number of Scenarios |
302 |
Objective Value |
0.0339 |
Solving Time (sec) |
<0.1 |
Solution in MATLAB Environment
Solved with riskrprog PSG subroutine (General (Text) Format of PSG in MATLAB):
Input Files to run CS:
Maximizing sum of expected return and weighted Variance.
Maximize Linear + Variance
subject to:
Linearmulti = Const1 (budget constraint)
-Const2 ≤ Linearmulti ≤ Const2 (market-neutrality constraint)
Box constraints (lower bounds on positions)
where
Linearmulti = Set of Linear Functions
Box constraints = constraints on individual decision variables
Mathematical Problem Statement
See (CS.5) - (CS.8):
Problem dimension and solving time
Example solution of one optimization problem:
Number of Variables |
12 |
Number of Scenarios |
302 |
Objective Value |
0.0407 |
Solving Time (sec) |
0.17 |
Solution in MATLAB Environment
Solved with riskprog PSG subroutine (General (Text) Format of PSG in MATLAB):
Input Files to run CS:
Maximizing sum of expected return and weighted Mean Absolute Deviation.
Maximize Linear + Meanbs_dev
subject to:
Linearmulti = Const1 (budget constraint)
-Const2 ≤ Linearmulti ≤ Const2 (market-neutrality constraint)
Box constraints (lower bounds on positions)
where
Meanbs_pen = Mean Absolute Deviation
Linearmulti = Set of Linear Functions
Box constraints = constraints on individual decision variables
Mathematical Problem Statement
See (CS.9) - (CS.12):
Problem dimension and solving time
Example solution of one optimization problem:
Number of Variables |
12 |
Number of Scenarios |
302 |
Objective Value |
0.0367 |
Solving Time (sec) |
<0.1 |
Solution in MATLAB Environment
Solved with riskprog PSG subroutine (General (Text) Format of PSG in MATLAB):
Input Files to run CS: