DESCRIPTION: See this page
1. Good combination of two stocks:
Gamble1 : GiHi=3.633 GiHoprob=0.438
prob(Return>2.0) = 0.438
Gamble2 : GiHi=3.231 GiHoprob=0.492
prob(Return>2.0) = 0.492
For a linear combination on these two gambles, there will be 9 equations:
(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
(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.
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.
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:
First, probability of linked gamble was adjusted.
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.