Portfolio Problem

Algorithm:

1. Good combination of two stocks:

Gamble1 : GiHi=3.633 GiHoprob=0.438

GiMe=1.090 GiMeprob=0.155

GiLo=0.592 GiLoprob=0.407

prob(Return>2.0) = 0.438

Gamble2 : GiHi=3.231 GiHoprob=0.492

GiMe=1.179 GiMeprob=0.139

GiLo=0.670 GiLoprob=0.370

prob(Return>2.0) = 0.492

For a linear combination on these two gambles, there will be 9 equations:

x(Gamble1)+(1-x)(Gamble2)

(1) 3.633x+(1-x)3.231 > 2.0 (Must be)

(2) 3.633x+(1-x)1.179 > 2.0

(3) 3.633x+(1-x)0.670 > 2.0

(4) 1.090x+(1-x)3.231 > 2.0

(5) 1.090x+(1-x)1.179 > 2.0 (Never satisfy)

(6) 1.090x+(1-x)0.670 > 2.0 (Never satisfy)

(7) 0.592x+(1-x)3.231 > 2.0

(8) 0.592x+(1-x)1.179 > 2.0 (Never satisfy)

(9) 0.592x+(1-x)0.670 > 2.0 (Never satisfy)

As we can see there are four equations which could be satisfied on some x. Solve them and get the following constraints:

(2) x > 0.334555 (3) x > 0.448869 (4) x < 0.574965 (7) x < 0.466465

After sorting:

(2) x > 0.334555 (3) x > 0.448869 (7) x < 0.466465 (4) x < 0.574965

Test the midpoint of (0,0.334555),(0.334555,0.448869)...

and find out that when x = 0.457667, the overall probability of satisfied equation was maximized. That is, when x = 0.457667:

Return > 2.0 if (HI,HI),(HI,ME),(HI,LO),(ME,HI),(LO,HI)

prob(Return>2.0) = 0.7145

To generalize this method, there will be n-1 variables x1, x2, ..., xn-1 if  n gambles are combined. Those inequalities could be solved by a linear programming problem. Note I do not want too many gambles combine together since this will decrease the prob(Return>2.0). An example is consider 10 stocks, each have GiHi=2.0001 and GiHiprob=0.9 and GiMeprob=0. If we put all money on one of them, prob(Return>2.0)=0.9. If we divided money evenly among them, then Return will be less than 2.0 if one of the gambles got LO. Thus prob(Return>2.0)=(0.9)10=0.34868, which is an awful result.

Remark:

If gambles have small initial prob(Return>2.0), combine some of them might get good result. But with high initially prob(Return>2.0), putting all eggs in one basket seems to work better.

Experiment:

If initial prob(Return>2.0) is about 50%, then it is good to combine 2 of them.

If initial prob(Return>2.0) is about 33%, then it is good to combine 3 of them.

That is, if initial prob(Return>2.0) is about 1/n, it is probably good to combine n of them.

Therefore, my algorithm is comparing the best single, double, triple,... combinations by properly select the gambles and try to maximize the prob(Return>2.0).

2. Guess the favorable/unfavorable gambles:

Then three (favorable, normal, unfavorable) expected value vector were pre-computed by adding all probabilities with same attributes. For example, the expected vector for [HI ME LO] for attribute 3 might be

[6.45  4.22  1.33] if 3 is favorable.

[4.15  4.22  3.63] if 3 is normal.

[2.50  4.22  5.28] if 3 is unfavorable.

Then if the simulation results is [5 4 3], the probability of attribute 3 were favorable, normal or unfavorable were computed by the following formula:

Here [dhi dme dlo] = [5 4 3] - [HI ME LO] described above.

Then compare results between 16 attributes, the two with highest p(x is favorable) and two with highest p(x is unfavorable) were reported.

¡@

Chien-I Liao