I have a model, which trades forex, and the model has a lot of parameters. I run the model with a lot of parameter combinations (test combinations), and try to choose the best ones, where the output is ordered by the profit or the percent of winning trades, or any other qualifier.

An example of the data:

(P is a parameter)

P1 P2 P3 Profit

5 9 true 596.5

6 8 true 590.2

5 8 true 583.6

2 67 false 550

3 445 false 520.1

7 7 false 487.7

9 8 false 465.4

2 98 false 398

Here are only 8 combinations and 3 parameters, but I have hundreds or thousands of combinations and 10-14 parameters.

These are from test runs, and I want to choose the best group of combinations to use them in real runs.

So I need an ensemble of 10-30 combinations from the hundreds. This combinations should be the group of the bests, but they have to be far enough from each other. So for example (5, 9, true) and (5, 8, true) can be too close. But (4.8, 9.5, true) and (5.3, 7.6, true) can be ok. I need this to be able to deal with different situations during the run.

Question:

So any idea with what kind of math can I programmatically choose this ensemble of combinations from the test combinations???

Thanks