I am most familiar with the behavior of the GRG non-linear (Newton Raphson) type algorithms for this kind of thing. What I see is that small changes to the weights make no change to the Sharpe ratio, so it is easy to see how Solver (using one of its "make small changes to the decision variables, observe the change to the objective function, then continue) would conclude that it is already optimized. This is a common problem for Solver and discontinuous "step" functions like this.
Digging a little deeper, I think the main source of the "discontinuous" nature of the problem is in the Positions tab, where you have a big IF(AND(...))))) function (that looks like it should reduce down to a simple VLOOKUP() function with the 4th argument set to TRUE, if you are interested). I replaced this function with a linear interpolation function (how many times have I wished Excel had a nice built in linear interpolation function) to make this step in the algorithm "continuous". This change allowed me to use Solver to maximize the Sharpe ratio by changing the weights.
My advice would be to reformulate your algorithm (in particular, the positions tab) so that the computation is not a step function.
Bookmarks