Optimizer starts from the top parameter and calculates the full range.
After that it goes to the lower one up to the last one.
At every calculations, it checks if there is a better result.
If optimizer passes all parameters in their full ranges and hasn't found a better result, it quits. (100 combinations.)
If option "Full calculations" is on and if it has found a better result, it starts again from the beginning and calculates downwards up to the last improved param.
Optimizer quits if it makes a full pass of all params without improvement.
We do not know how many cycles it will make. If there is improvement at every pass, it may reach full 3,200,000 combinations.
You can test it on "Demo Optimizer" strategy. Run it with and without "Full optimization" option.
I agree that this algorithm is not the best one, but it is enough good for the current stage of development. It can be easily improved further at a later stage.
The main problem is that digging in a single feature doesn't make the project better.
I made FSB free and public on 2006. At that time I constantly improve it by adding new features. It is open source since 2011. Unfortunately the monthly usage now is almost the same as it was 3 years ago.
So it's clear - improving and adding features in that way doesn't work.
I hope to hire a team of professionals in order to improve the project further. It depends on the income from the sales whether FSB will remain a hobby project or will grow to complete strategy developing and trading platform.