Как исключить не верные данные при оптимизации.

 
Имеется написанный мною советник. Как сделать так что бы при оптимизации оптимизатор не ставил для расчета не верные данные. Например стоп лос больше тейк профита или период быстрой скользящей средний стал больше периода медленной?
 

В онинит проверяйте условия

input int a=1;
input int b=2;
int OnInit()
   {
   if(a>b) return(INIT_PARAMETERS_INCORRECT); //или INIT_FAILED
   }
 
Aleksei Stepanenko #:

В онинит проверяйте условия

Спасибо за внимание к моему вопросу. Данное решение имеет место быть, но  оно искажает работу оптимизатора.

 

Я делаю в OnInit

errParams = true;
return (MQLInfoInteger(MQL_OPTIMIZATION))? INIT_SUCCEEDED : INIT_PARAMETERS_INCORRECT;
void
OnTick() {
        if (errParams)
                return;
        
        ...
double 
OnTester() {
        if (errParams)
                return -0.1;

Потому что при большом количестве INIT_PARAMETERS_INCORRECT и INIT_FAILED генетика прерывается.