помогите с пользовательской функцией

 
CurTrend = Trend(LargePeriod);
Alert(CurTrend);
.
.
.
int Trend(int LP)
{

 //----------------------
 double Al_g = iAlligator(NULL, LP, 13, 8, 8, 5, 5, 3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORLIPS, 1);
 double Al_r = iAlligator(NULL, LP, 13, 8, 8, 5, 5, 3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORTEETH,1);
 double Al_b = iAlligator(NULL, LP, 13, 8, 8, 5, 5, 3, MODE_SMMA, PRICE_MEDIAN, MODE_GATORJAW,  1);
 //----------------------
int CurTrend = 0;
if (Al_b<Al_r<Al_g)                      
     {
      CurTrend = 1;      // восходящий тренд
     }
if (Al_b>Al_r>Al_g) 
     {
      CurTrend = -1;     // нисходящий тренд
     }


return(CurTrend);
}

значение Alert постоянно равно 1. подскажиет в чем пробелма? почему не выдает -1?

 

Al_b<Al_r результат 0 или 1.

Всегда <Al_g, для пар с котировками больше 1

if (Al_b<Al_r && Al_r<Al_g)
     {
      CurTrend = 1;      // восходящий тренд
     }
if (Al_b>Al_r && Al_r>Al_g)
     {
      CurTrend = -1;     // нисходящий тренд
     }

как-то так :)

 

При сравнении действительных чисел нужно также использовать NormalizeDouble().

 
SK. >>:

При сравнении действительных чисел нужно также использовать NormalizeDouble().

т.е. нужно все значение AL_b, al_g, al-r записать Al_b= NormalizeDouble(al_b, digits); правильно?