Помогите с "ArrayMinimum"

[Удален]  

При попытки прикрепить индикатор к графику, происходит критическая ошибка и терминал закрывается.

При замене "A1" на число всё работает.

Подскажите пожалуйста, что не так ?

int start()
  {
     int limit,i,A1;
     int counted_bars=IndicatorCounted();
     
     
     
//---- проверка на возможные ошибки
     if(counted_bars<0) return(-1);

  //---- последний посчитанный бар будет пересчитан
     if(counted_bars>0) counted_bars--;
     limit=Bars-counted_bars;
     
     if(limit>ToProcess)
      limit=ToProcess;
//---- основной цикл

    for(i=limit;i>=0;i--)
{
     
   A1 = MathAbs(iCustom(NULL,0,"1-Trend",1440,ToProcess,1,i+1));  
   
   IndexBuffer2[i] = Close[i]-Open[i] ;
   
     
   IndexBuffer1[i] = IndexBuffer2[ArrayMinimum(IndexBuffer2,A1,i)] ;
   
  

      
              
       
} 
}
//----
   return(0);
[Удален]  

Цикл не имеет конца, походу. Очень странный цикл у тебя. :)

 

Привет.

Скорее всего А1 double а не int, или попробуйте так : IndexBuffer1[i] = ArrayMinimum(IndexBuffer2,A1,i);

[Удален]  
Dm_35:

Привет.

Скорее всего А1 double а не int, или попробуйте так : IndexBuffer1[i] = ArrayMinimum(IndexBuffer2,A1,i);

A1 - int, да и с индикатора передаются только целые числа.

Попробовал - та же критическая ошибка(компиляция проходит без проблем).

 

если не секрет выложите индикатор 1-Trend, попробуем разобраться

 
Mns777:

При попытки прикрепить индикатор к графику, происходит критическая ошибка и терминал закрывается.

При замене "A1" на число всё работает.

Подскажите пожалуйста, что не так ?

...
    for(i=limit;i>=0;i--)
{
     
   A1 = MathAbs(iCustom(NULL,0,"1-Trend",1440,ToProcess,1,i+1));  
   
   IndexBuffer2[i] = Close[i]-Open[i] ;
   
     
   IndexBuffer1[i] = IndexBuffer2[ArrayMinimum(IndexBuffer2,A1,i)] ;
}
....

Попробуйте вместо вашего цикла вставить следующий.

for(i=limit;i>=0;i--)
{
   IndexBuffer2[i] = Close[i]-Open[i] ;
} 
for(i=limit;i>=0;i--)
{
   A1 = MathAbs(iCustom(NULL,0,"1-Trend",1440,ToProcess,1,i+1));  
   int index = ArrayMinimum(IndexBuffer2,A1,i);
   IndexBuffer1[i] = IndexBuffer2[index] ;
}
[Удален]  
Talex:
Mns777:

При попытки прикрепить индикатор к графику, происходит критическая ошибка и терминал закрывается.

При замене "A1" на число всё работает.

Подскажите пожалуйста, что не так ?

...
    for(i=limit;i>=0;i--)
{
     
   A1 = MathAbs(iCustom(NULL,0,"1-Trend",1440,ToProcess,1,i+1));  
   
   IndexBuffer2[i] = Close[i]-Open[i] ;
   
     
   IndexBuffer1[i] = IndexBuffer2[ArrayMinimum(IndexBuffer2,A1,i)] ;
}
....

Попробуйте вместо вашего цикла вставить следующий.

for(i=limit;i>=0;i--)
{
   IndexBuffer2[i] = Close[i]-Open[i] ;
} 
for(i=limit;i>=0;i--)
{
   A1 = MathAbs(iCustom(NULL,0,"1-Trend",1440,ToProcess,1,i+1));  
   int index = ArrayMinimum(IndexBuffer2,A1,i);
   IndexBuffer1[i] = IndexBuffer2[index] ;
}
Огромное Спасибо помогло !!!