Подскажите функцию, сам не могу найти.

 
Придумал, извиняюсь за офтоп.
double MathMod( double value, double value2)
 
KING:
Подскажите, как определить целое число или нет? То есть требуется a/b и если оно целое то одно решение, если нет то breake; очень надо)

Можно проверить с какой-то заданной наперед точностью.

Например

int start(){
   double Val1;
   int Val2;
   double preciz=0.0000001; //Требуемая точность
  .......................
   Val2=NormalizeDouble(Val1,0);
   if (MathAbs(Val1-Val2)<=preciz) { //Целое или близкое к нему}

   return(0);
}
 

Если а и b сами целые, то возьми a%b - остаток от деления первого на второе. Если он равен нулю, то a кратно b.


Если аргументы нецелые, то тут... Vinin уже показал.

 
Спасибо всем, за интересные решения сделал так

if (MathMod(a,b) != 0)
   {
   Alert ("Неправильно задан период");
  
return(0);
  
}


И ещё вопрос. Я проверку делаю в самой первой части программы init, как сделать чтобы индикатор прекращал работу если не проходит эту проверку? Какой оператор вставить надо? или просто  добавить переменную например true в if в init и присвоить ему 1, если проверка не пройдена, а в теле start сделать if(true=1) return(0); ???
 
KING:
Спасибо всем, за интересные решения сделал так
if (MathMod(a,b) != 0)
{
Alert ("Неправильно задан период");
return(0);
}
И ещё вопрос. Я проверку делаю в самой первой части программы init, как сделать чтобы индикатор прекращал работу если не проходит эту проверку? Какой оператор вставить надо? или просто добавить переменную например true в if в init и присвоить ему 1, если проверка не пройдена, а в теле start сделать if(true=1) return(0); ???

Опять сам и ответил

 
Стараюсь)) Иногда хочеться поговорить с умными людьми, может чего посоветуют хорошего. Наподобии проверенных временем алгоритмов или функций, которые есть в MQL4 но я не знаю. Впервые сел писать серьёзный проект(покрайней мере для меня), и поэтому хочеться все делать наиболее оптимальным образом.
 
Вот сейчас не соображаю. Как найти первый бар текущего дня и его индекс?
 
KING писал (а): if (MathMod(a,b) != 0)

Низзя так. Проверяй только в пределах заданной точности, с помощью CompareDoubles() из stdlib.mqh. Иначе можешь легко наткнуться на разрыв функции в целой точке.

 
Mathemat:
KING писал (а): if (MathMod(a,b) != 0)

Низзя так. Проверяй только в пределах заданной точности, с помощью CompareDoubles(). Иначе можешь легко наткнуться на разрыв функции в целой точке.

А что такое разрыв функции в заданной точке? Пример, а то так не соображаю, пожалуйста.... 


И ещё раз: Как найти первый бар текущего дня и его индекс?

 

Почитай внимательно тему 'НЕ РАБОТАЕТ MathMod !!!' - особенно то, что писал stringo.


По поводу первого бара можно так. Пробегись вглубь истории по барам в цикле, начиная с текущего, и отслеживай DayOfWeek(). Как только впервые наткнешься на изменение DayOfWeek(), это будет последний вчерашний бар. Ну а затем вычти из индекса найденного единицу.

Причина обращения: