Выход из советника

 
При невыполнении определенных условий, проверяемых в функции init(), советник не должен стартовать вообще. Как выяснилось, значение, возвращаемое функцией init(), в дальнейшем вообще ни на что не влияет. То есть даже return(-1) в init() не отменяет запуск start() советника. Это так и есть по замыслу разработчиков или все-таки есть штатные средства отменить запуск советника в init() ?
 
Можно задавать в функции init() значение глобальной переменной, в start() проверять.
 
Rosh:
Можно задавать в функции init() значение глобальной переменной, в start() проверять.


И я такой же выход нашел:

bool exit;
int init(){                 
    err = initialization();
    if(err==-1){exit=true;}
}
int start(){
//----
 
    if(exit){return(-1);}
 
}
 

Да обойтись без штатных средств в данной ситуации не проблема.

Непонятно просто зачем тогда init() вообще что-то возвращает и почему об этом ни слова в документации.

 
Мне это знакомо :) функция return?