Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Подключи MQL5 Cloud Network. Миллионы трейдеров ждут этого!
jhon
186
jhon 2011.12.08 18:43 

Здравствуйте.

Пытаюсь сделать функцию которая бы отвечала на вопрос: А самое ли большое значение у данной свечи по сравнению с предыдущими?

Но вот что-то не получаться? А что понять не могу. Постоянно возвращает FALSE. Будь-то бы предыдущие значения больше заданной, хотя на самом деле это не так!

bool MostHigh(int v)
{
   bool res = False;
   for(int a=0; a<=v;a++)   
   {
      if(High[v] > High[a])   
      {
         res = True;
      }
      else
      {
         res = False;
         return (res);
      }
   }
   return (res);
}
Vadim Zhunko
5221
Vadim Zhunko 2011.12.08 20:36  
jhon
186
jhon 2011.12.08 20:54  

Спасибо большое за помощь!

Огромный плюс Вам в КАРМУ!

Vladyslav Goshkov
1960
Vladyslav Goshkov 2011.12.09 05:27  
jhon:

Здравствуйте.

Пытаюсь сделать функцию которая бы отвечала на вопрос: А самое ли большое значение у данной свечи по сравнению с предыдущими?

Но вот что-то не получаться? А что понять не могу. Постоянно возвращает FALSE. Будь-то бы предыдущие значения больше заданной, хотя на самом деле это не так!

bool MostHigh(int v)
{
   bool res = False;
   for(int a=0; a<=v;a++)   
   {
      if(High[v] > High[a])   
      {
         res = True;
      }
      else
      {
         res = False;
         return (res);
      }
   }
   return (res);
}

Стандартные функции - это хорошо, но я, например, предпочитаю полный контроль над алгоритмом - это позволяет получить независимость от платформы ;).

Думаю, точнее уверен, проблема в логике функции. Попробуйте так:

bool IsMostHigh(int v)
{
   for(int i=0; i<v;i++)   
      if(High[v] < High[i])   
         return (False);
   return (True);
}
Alexey Volchanskiy
14124
Alexey Volchanskiy 2011.12.09 11:16  
bool MostHigh(int v)
{
   for(int a=1; a<=v;a++)   
   {
      if(High[a]-High[0] > 0.00001) // для 5-знака   
         return(true);
   }
   return (false);
}
PapaYozh
3768
PapaYozh 2011.12.09 11:26  
jhon:

Здравствуйте.

Пытаюсь сделать функцию которая бы отвечала на вопрос: А самое ли большое значение у данной свечи по сравнению с предыдущими?

Но вот что-то не получаться? А что понять не могу. Постоянно возвращает FALSE. Будь-то бы предыдущие значения больше заданной, хотя на самом деле это не так!


Проблема в строке:

for(int a=0; a<=v;a++)

Когда a стенет равно b, условие

if(High[v] > High[a])

не выполнится и переменная res примет значение false.

Alexey Volchanskiy
14124
Alexey Volchanskiy 2011.12.09 11:35  
PapaYozh:


Проблема в строке:

Когда a стенет равно b, условие

не выполнится и переменная res примет значение false.

Задача была - проверить, что хотя бы одна из предыдущих свечей больше нулевой, т.е. текущей. В оригинальном коде вообще непонятно что написано
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий