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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
arethel
132
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); 

}



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

Uladzimir Izerski
8663
Uladzimir Izerski  
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".

Konstantin Erin
2161
Konstantin Erin  
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
132
arethel  

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

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

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий