My initial result of the Monte-Carlo came out nonsensical. I think that's because the quantity (R * r) / (s^2) does not make sense when r (average return) is negative. I need to figure out how to penalize it correctly, so that the average calculated metric over many trials makes sense.
Okay, I think I am breaking new ground in computational finance.
Let
CK be the continuous Kelly,
R be the return over a given period,
s be the standard deviation of returns,
r be the average return.
First, I realized that my proposed performance metric:
Performance Metric = CK * R = (R * r) / (s^2)
should actually be this:
Performance Metric = CK * R
CK = R / (s^2)
Performance Metric = CK * R = [R / (s^2)] * R = (R^2) / (s^2)
Notice that (R^2) / (s^2) reduces to Sharpe squared:
(R^2) / (s^2) = (R / s)^2 = Sharpe^2
Next, I set up the Monte-Carlo simulation to maximize Log(Sharpe^2) with respect to the original problem as stated in the beginning of this thread. Here are the top 10 results which maximize Log(Sharpe^2):
Code:
R16 R14 Red
6 5 11
6 4 11
6 5 10
6 4 12
6 5 12
6 4 10
6 4 13
6 5 9
6 5 13
6 4 9
Notice that the best combo, {R16: 6, R14: 5, Red:11} is pretty close to what we collectively calculated as the best in a sense of maximizing the compounded rate of return, which is {R16: 8, R14: 5, Red:11}.
My calculated best, using Log(Sharpe^2), gives a slightly more conservative allocation, because it maximizes the compounded rate of risk-adjusted return.
Then I thought, what if I maximize Log(Sharpe), instead of Log(Sharpe^2)? The results came out identical between the two, predictably so.
So, my performance metric can be reduced to simply R/s, which is the Sharpe ratio.

