Ошибки в индикаторе МТ4 при #property strict - страница 2

 
Natashe4ka:

Сами условия для сигналов в коде убраны (конспирация) 
надо только исправить ошибки, но не терять возвращаемое значение)) 

Ну тогда какую помощь вы ожидаете? Меняйте тип функции на нужный, чтобы возвращать именно то, что надо для конкретно ваших условий.
 
Natashe4ka:

Не могу разобраться, при #property strict выдаёт 4 ошибки и как исправить не пойму.

Ошибки на return(k==-1); и return(k > 0);
Просто поменять на return(0); нельзя!!!

Индикатор МТ4. Нужна помощь!! 

Ошибка возникает из-за того что переменная k доступна только внутри цикла, а return Вы делаете после цикла.

Для примера исправил одну функцию, надеюсь остальные исправите сами. Если не сможете пишите.

bool checkLowStrict(int count, int i)
{
   for( int k=count-1; k>=0; k-- ){
      if( Low[i+count] >= Low[i+k] ){
         return false;
      }
   }
   return true;
}
 
Koldun Zloy:

Ошибка возникает из-за того что переменная k доступна только внутри цикла, а return Вы делаете после цикла.
Для примера исправил одну функцию

Ошибок нет и сигнала тоже опять нет.

Не просто же именно так учтено возвращаемое значение

bool checkLowStrict(int count, int i) {
for (int k=count-1; k>=0; k--)
if (Low[i+count] >= Low[i+k]) break;  
return(k==-1);
}
//-------------------------------------+
bool checkLowRef (int count, int i) {
for (int k=count-1; k> 0; k--)
if (Low[i+k] < Low[i]) break;  
return(k > 0);
}
 
Natashe4ka:

Ошибок нет и сигнала тоже опять нет.

Не просто же именно так учтено возвращаемое значение

bool checkLowStrict(int count, int i) {
for (int k=count-1; k>=0; k--)
if (Low[i+count] >= Low[i+k]) break;  
return(k==-1);
}
//-------------------------------------+
bool checkLowRef (int count, int i) {
for (int k=count-1; k> 0; k--)
if (Low[i+k] < Low[i]) break;  
return(k > 0);
}


int checkLowStrict(int count,int i,int kk=0)
  {
   for(int k=count-1; k>=0; k--)
     {
      if(Low[i+count]>=Low[i+k])
        {
         kk==-1;
        }
     }
   return (kk);
  }
может так попробовать
 
Natashe4ka:

Ошибок нет и сигнала тоже опять нет.

Не просто же именно так учтено возвращаемое значение

Ладно, пусть так и остаётся, тогда просто объявляйте переменную к вне цикла (можно даже как глобальную) и будет вам щастя ;)

 
Vladimir Deryagin:
может так попробовать

Не работает к сожалению.

 

Vitalie Postolache:

Ладно, пусть так и остаётся, тогда просто объявляйте переменную к вне цикла (можно даже как глобальную) и будет вам щастя ;)

Не работает, ошибок нет и сигнала

int k;
//+------------+
int start() {

А если закометировать то есть сигнал

//#property strict  

int k;
//+------------+
int start() {
 
Natashe4ka:

Не работает к сожалению.

 

Не работает, ошибок нет и сигнала

int k;
//+------------+
int start() {

А если закометировать то есть сигнал

//#property strict  

int k;
//+------------+
int start() {
А объявлять её в каждой функции перед циклом пробовали?
 
Vitalie Postolache:
А объявлять её в каждой функции перед циклом пробовали?

Нет сигнала

bool checkLowStrict(int count, int i) {
int k;
for (k=count-1; k>=0; k--)

И так тоже нет сигнала

int k;
bool checkLowStrict(int count, int i) {
for (k=count-1; k>=0; k--)



 

 
Natashe4ka:

Нет сигнала

bool checkLowStrict(int count, int i) {
int k;
for (k=count-1; k>=0; k--)

И так тоже нет сигнала

int k;
bool checkLowStrict(int count, int i) {
for (k=count-1; k>=0; k--)
Значит  придётся отказаться от #property strict :)
 
Vitalie Postolache:
Значит  придётся отказаться от #property strict :)

С удовольствием, но в маркет такой продукт не пройдёт.
Советник основан на этом индикаторе, как ссылаться на него если его не будет в маркете даже в бесплатном варианте? 

Причина обращения: