Определение коротких и длинных баров.

 

Есть такие две функции, которые определяют длинный или короткий это бар, но я проверяю и бывает так что на короткий бар показывает, что он длинный, не могу понять почему. Помогите пожалуйста!!!

extern double SizeBars2 = 0.0006;


string BullOrBear (int number_of_bar){

string lo;
if(Open[number_of_bar] < Close[number_of_bar]){lo = "Bull";}
else if(Open[number_of_bar] > Close[number_of_bar]){lo = "Bear";} 
return(lo);}

int SizeBars (int number_of_bar){
int l;
double m = Close[number_of_bar], n = Open[number_of_bar];
   if(BullOrBear(number_of_bar) == "Bull")
  {if(m-n <= SizeBars2){l = 1;}
   else if(m-n > SizeBars2){l = 0;}}
   else if(BullOrBear(number_of_bar) == "Bear")
  {if(n-m <= SizeBars2){l = 1;}
   else if(n-m > SizeBars2){l = 0;}}
   return(l); 

}



Заранее спасибо!!!

 
arethel:

Есть такие две функции, которые определяют длинный или короткий это бар, но я проверяю и бывает так что на короткий бар показывает, что он длинный, не могу понять почему. Помогите пожалуйста!!!

extern double SizeBars2 = 0.0006;


string BullOrBear (int number_of_bar){

string lo;
if(Open[number_of_bar] < Close[number_of_bar]){lo = "Bull";}
else if(Open[number_of_bar] > Close[number_of_bar]){lo = "Bear";} 
return(lo);}

int SizeBars (int number_of_bar){
int l;
double m = Close[number_of_bar], n = Open[number_of_bar];
   if(BullOrBear(number_of_bar) == "Bull")
  {if(m-n <= SizeBars2){l = 1;}
   else if(m-n > SizeBars2){l = 0;}}
   else if(BullOrBear(number_of_bar) == "Bear")
  {if(n-m <= SizeBars2){l = 1;}
   else if(n-m > SizeBars2){l = 0;}}
   return(l); 

}



Заранее спасибо!!!


if(Open[number_of_bar] < Close[number_of_bar]){lo = "Bull";}
else if(Open[number_of_bar] > Close[number_of_bar]){lo = "Bear";} 
else if(Open[number_of_bar] == Close[number_of_bar]){lo = "что-то";} 

Вставляйте код с помощью "SRC".

 
arethelЕсть такие две функции, которые определяют длинный или короткий это бар, но бывает так что на короткий бар показывает, что он длинный,

Попробуйте так:

string BullOrBear (int n_bar)
{
   if(Open[n_bar] < Close[n_bar])   return "Bull";
   if(Open[n_bar] > Close[n_bar])   return "Bear";
   return "Додж";
}

int SizeBars (int number_of_bar)
{
   if(fabs(Close[number_of_bar] - Open[number_of_bar])< SizeBars2) return 0;
                                                            else   return 1;
}
 

Большое спасибо!!!

 
arethel:   Большое спасибо!!!

Вы уже попробовали? Результат какой? Заметили, что мой код раза в 3 короче?