Lindo Systems

MODEL:
! GENPRT: Generic Markowitz portfolio;
 SETS:
  ASSET/1..3/: RATE, UB, X;
  COVMAT( ASSET, ASSET): V;
 ENDSETS
 DATA:
! The data;
!  Expected growth rate of each asset;
  RATE = 1.3   1.2  1.08;
!  Upper bound on investment in each;
  UB   = .75   .75   .75;
!  Covariance matrix;
  V    =   3     1   -.5
           1     2   -.4
         -.5   -.4     1;
!  Desired growth rate of portfolio;
  GROWTH = 1.12;
ENDDATA

! The model;
! Min the variance;
 [VAR] MIN = @SUM( COVMAT( I, J):
              V( I, J) * X( I) * X( J));
! Must be fully invested;
 [FULL] @SUM( ASSET: X) = 1;
! Upper bounds on each;
 @FOR( ASSET: @BND( 0, X, UB));
! Desired value or return after 1 period;
 [RET] @SUM( ASSET: RATE * X) >= GROWTH;
END