Как исключить ненужные прогоны при оптимизации?

 
Допустим я оптимизирую эксперта на основе двух МА.
МА1 (быстрая), МА2 (медленная). Период обоих находится в пределах от 2 до 1000. Как заставить оптимизатор пропустить прогоны если МА1 >= МА2 ?
 
Можно создать двухмерный массив с периодами МА и при оптимизации перебирать индекс этого массива. Меньшим потом - проверять соответствие параметров определенным условиям, если условия не удовлетворяются, то прекращается выполнение функции старт - не лучший способ, но все же значительно ускоряет процесс.
 
Хорошобы такую функцию разработчики сделали:

int init(){
....
if(isOptimization() && NotGoogParam)GoToNextParamSet()
 
Я написал

int start()  
   {
   if (МА1>=МА2) return(0);

Но ведь прогон то все равно идет, хотя основной код и не обрабатывается.
А до массивов я еще не дорос. :(
 
Rjkley писал (а):
Но ведь прогон то все равно идет, хотя основной код и не обрабатывается.
Зато быстро проходит.
 

Могу предложить свой вариант. Предлагаю проделать трюк с переменными МА1(быстрая МА) и МА2(медленная МА). Мы оставим переменную МА1 (быстрая МА) и введем переменную М>0. Переменную МА2 (медленная МА) будем вычислять по формуле

МА2 = МА1 + М

Тогда при оптимизации, достаточно указать диапазоны переменных. Для МА1, например, [-100, 100] и для М, например, [1, 100] и в таком случае условие МА2 > МА1 будет выполняться автоматически.

 
Я тоже давно мучаюсь с этой проблемой и вывод один просить разработчиков доработать тестер ведь наверно есть возможность добавит в меню пункт для ограничений оптимизации в котором можно было бы указать тестеру какие параметры пропускать при оптимизации например имеем мы MA1 и MA2 при этом МА1 должна всегда иметь значение меньше чем MA2 вот и указываем тестеру MA1!>MA2 или MA2>MA1 по моему это не только мне нужно.
 
Тоже давно мучаюсь... Но ведь ф-ия init возвращает результат, который никто не обрабатывает. Почему бы разработчикам не анализировать результат init, и если он, например, -1 - перейти к следующему набору. (как бы смысл - если инициализация не удалась, то логика нарушена - нужно прекратить). А в init задать условия, которые мы посчитаем некорректными - вот и всё - минимум усилий со стороны разработчиков
Причина обращения: