arethel: Помогите пожалуйста, кто знает функцию нахождения коротких и длинных баров.(короткие бары указываются в extern)
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: Большое спасибо!!!
Вы уже попробовали? Использовали ли функцию TimeOnDropped? Результат какой? Заметили, что мой код раза в 3 короче?

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Помогите пожалуйста, кто знает функцию нахождения коротких и длинных баров.(короткие бары указываются в extern)
Попытался написать сам и вот, что получилось:
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);
}
Две функции, одна вычисляет медвежий(bear) или бычий(bull) это бар, а другая короткий(1) или длинный(0), используя первую. Однако, когда я проверяю, то бывает что на короткий показывает, что он длинный, а на длинный, что он короткий. Я не понимаю в чём проблема, помогите пожалуйста!!!