Борьба с неграмотностью!!!

 
Извините за простоту речи, но не знаю я С+,
Объясните пожалуйста кому не трудно:
Выдержка из кода пользовательского индикатора ОsMA(Пример написания пользов. индикаторов из мануала) :

int counted_bars=IndicatorCounted();
//---- check for possible errors
if(counted_bars<0) return(-1);

Вопрос 1.: Как может быть значение функции IndicatorCounted() меньше нуля??(как я понял это количество баров на которых расчет уже произведен, -хотя опять непонятно- расчет результата работы данного индикатора или чего то другого??? ) Т. е . по логике значение этой функции должно быть больше или равно нулю.

Вопрос 2.: Зачем здесь нужен оператор return() и куда он возвращает значение -1, и что оно значит???- Если это результат всего выражения при выполнении условия if()?, Тогда не понятно для чего это значение нужно и как им дальше оперирует программа?

Спасибо за разъяснение..
 
1. если возвращаемое значение меньше 0, то это либо катастрофа, либо переполнение счётчика баров (более 2 миллиардов - какое там максимальное целое положительное число?)
это условие тянется из первых наработок. считайте этот атавизм паранойей и спокойно убирайте это условие. (но не забывайте в своих новых разработках ставить аналогичные параноидальные проверки - убережёт от многих проблем)
2. во-первых, существует возможность вызывать функции из скомпилированных программ (#import some.ex4)
во-вторых, когда-нибудь в будущем мы будем информировать клиента о коде возврата из функций init, deinit и start.
а пока смело объявляйте эти функции как void и ничего не возвращайте.
 
По поводу 2.
Т.е. если я правильно понял return(-1) - записывает в журнал ошибок (или как его там..) возвращаемое значение -1 - типа выполнилось такое то условие, Так???
 
коды возврата в журнал ошибок не пишутся. это Вы, вызвав ту или иную функцию, должны получить код возврата (если он предусмотрен) и проанализировать его. но для этого Вы должны знать, в каких случаях какие значения возвращает функция.
я повторяю, если Вы не видите смысла в возврате значений из функции start, то можете смело объявлять её void start() и не возвращать из неё значений.
Причина обращения: