Функция init() ни чего не возвращает. Её тип - void.
Если надо её аварийно завершить, можно использывать return() по условию.
В init() включается флаг аварийного завершения
В начале функции start() проверяется флаг аварийного завершения и при необходимости производится катапультирование return()
В init() включается флаг аварийного завершения
В начале функции start() проверяется флаг аварийного завершения и при необходимости производится катапультирование return()
и катапультирование пойдет по кругу, а надо бы по хорошему выгрузить советника, или индикатор т.е. выполнить deinit()
Ну тут ты неправ, Вадим: тип - int. Ведь не зря ж ее int init() обзывают.
Что делать, чтобы не грузить индюкатор в случае несоответствия параметров, хорошо написал nen. Конечно, он не деинициализируется, но и никаких особенных действий не будет выполнено.
P.S. Хотя можно и ошибку исполнения типа Zero Divide в случае нужды деинициализации придумать, чтобы индюкатор совсем выгрузился... Но вот как его заставить снова загрузиться - не знаю. Так что лучше его все-таки оставить, чтобы был готов выполнять действия, если надо будет.
P.P.S. Вот еще мысль: а что если воспользоваться iCustom() - это если графическая часть индюкатора нам не важна?
На самом деле, насколько я понимаю, ничто не мешает нам объявить ее того типа, как нам захочется, хоть string или double. Так что о том, какой у нее тип, говорит только наша фантазия.
Но если мы сами объявили ее как int init(), то, безусловно, прототип говорит о том, что ее возвращаемое значение должно быть int. С другой стороны, и возвращать-то вроде как и не обязательно...
я так понимаю что возвращают они номер ошибки, поэтому и int по умолчанию, по крайней мере deinit() так и делает когда прописывает в журнал причину деинициализации.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Функция init() имеет прототип:
В документации сказано, что "init() - функция, вызывающаяся в процессе инициализации модуля. В случае ее отсутствия при инициализации не вызывается никакой функции." Но я не могу найти информацию по возвращаемому значению. Оно где и кем-то учитывается?
Хотелось бы прервать инициализацию индикатора в случае несоответствия параметров. Сейчас это нельзя сделать. Максимум что приходит в голову: выставить флаг, и если он установлен, то ничего не делать.