There are a number of issues with the implementation of the custom sorting options that I would be happy to go into detail in the developers forum if there is anyone out there that would like to improve on the way this has been implemented.
Sharpe Ratio uses the math that was already part of the 'Additional Statistics' calculations, as mentioned already. I agree that a risk free interest rate should be included in the calculations (but there just isn't a practical way to build this into the application at the moment).
It will be possible to build your own custom sort criteria into an external C# file once this code is released fully, so if additional criteria was desired (such as building interest into the the sharpe ratio calculation) then this could be achieved fairly easily.
As for the 'Additional Statistics' issue, a possible solution is to enable it as soon as the generator is opened (ie. we could assume that by running the generator process, the use is interested in the additional stats). Any ideas would be appreciated.
Unfortunately all the original code was built around balance, so I needed to make a lot of compromises to make all this work, and will try and cover some of these items in the documentation when it is releases also.
... When using custom sorting, Generator looks only for the best value of the selected parameter. It completely ignores Balance.
Yes, this is an issue as we are looking for the highest (best) 'custom value' rather than the highest (best) 'balance'.
The issue of a line that slopes down should not occur when using most sort options, as a system with end balance < opening balance would normally have a 'custom value' of < 0, which would not be presented in the Top 10 list anyway.
The Correlation calculation is comparing the equity/balance curve with a straight line between the starting balance and ending balance (more in the doco when released), and if that line is heading south, then the math is just trying to find the best match to the line.
This issue could probably be resolved by a simple filter that checks to ensure that the ending balance > starting balance before calling the custom filter code.