Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1760

 
Nikolay Ivanov #:

 1) Это не округление это погрешность.. и очень большая.. в моем примере это 10, но на некоторых инструментах это может быть 100, 1000, 10000 итд.. хорошенькое округление..

2) То есть вы заказчику скажете, что это возможно, а потом заставите его процессор 24 на 7 каждую секунду проверять все значки на всех графиках на предмет того, что там может измениться размер кружка.. + Ему будет нужно будет следить чтобы ваш код был включен всегда. Это по-моему вредительство :) 

Итого.. Сначала вы сказали что решить задачу можно, но потом выплыло по ходу работы что значения будет приблизительные и с большой погрешностью, да еще должен работать код-сторож чтобы повесив процессор исправлять и подгонять значения.. 

И вы считаете что это называется решение поставленной задачи? Это называется схватить, потом убеждать/доказывать/выпрашивать что все верно.. 

У меня рейтинг 4,87. те почти всегда все всем довольны. Учитывая что среди заказчиков, тоже есть неадекваты, думаю это неплохо.

Сорян, но уровень бреда зашкаливает. Больше тебе я отвечать не буду.

 
Nikolay Ivanov #:

1)Ищем переломы по всем линиям.

2) Из тех, где перелом есть, выбираем ту, где 0 бар экстремум..

такой алгоритм подойдет? 

Да, не правильно поставил вопрос, извиняюсь!

Бары/свечи не трогаем, только буферы индикатора

Buff[1] < Buff[0], одна из двух высоких= Buff[1] > Buff[0]
 
Andrey Sokolov #:

У меня рейтинг 4,87. те почти всегда все всем довольны. Учитывая что среди заказчиков, тоже есть неадекваты, думаю это неплохо.

Сорян, но уровень бреда зашкаливает. Больше тебе я отвечать не буду.

прибереги упертость для арбитража.. такую чепуху что ты несешь недовольным заказчикам рассказывай.. Типа извините, вот вам градусник с погрешностью 10 градусов вместо положенных 0.1 :) пользуйтесь на здоровье :)

 
Vitaly Muzichenko #:

На нулевом

Одна из двух низкая линий= Bar[1] < Bar[0], одна из двух высоких= Bar[1] > Bar[0]

Поиск проводим по 2-м верхним линиям и 2-м нижним

В любой момент времени может быть перелом на второй сверху и первой снизу, ну или по самой нижней и верхней, или по первой сверху и второй нижней. Или на обеих сразу.

Как ты определяешь положение линий?

может это поможет

//+------------------------------------------------------------------+
bool BufferSide(double &buff_up,double &buff_dn)
  {
   bool sig=false;
   if(buff_up[0]<buff_up[1] && buff_dn[0]>buff_dn[1]) sig=true;
   return(sig); 
  }
 
Vitaly Muzichenko #:

Да, не правильно поставил вопрос, извиняюсь!

Бары/свечи не трогаем, только буферы индикатора

 я имел в виду "бары" буферов индикатора :)

не подойдет тот алгоритм, который я предложил? 

 
Nikolay Ivanov #:

 я имел в виду "бары" буферов индикатора :)

не подойдет тот алгоритм, который я предложил? 

Вроде хорош, о нём не думал.

Основная проблема: Как оптимально вычислить 2 верхние и нижние линии без цикла?

Как вариант, при вычислении этих 4-х линий забивать 2 последние цены в массив, чтобы их потом сравнивать.

 
Vitaly Muzichenko #:

Основная проблема: Как оптимально вычислить 2 верхние и нижние линии без цикла?

 не совсем понимаю суть, а если забить все цены в массив и отсортировать в порядке возрастания, потом взять с массива крайние с обоих концов? 

ArraySort();
 
Nikolay Ivanov #:

 не совсем понимаю суть, а если забить все цены в массив и отсортировать в порядке возрастания, потом взять с массива крайние с обоих концов? 

Точно, попробую, нужно 4 цены, 2 первые и 2 последние. С массива это сделать просто.

 
Vitaly Muzichenko #:

Точно, попробую, нужно 4 цены, 2 первые и 2 последние. С массива это сделать просто.

а определять номер линии по найденному значению - надо?

 
Nikolay Ivanov #:

а определять номер линии по найденному значению - надо?

Думаю что нет, сделаю массив структуры, туда вписывать символ, цену[1] и цену[0]

Этого вполне достаточно. Также, линий/буферов там может быть от 2 до 11

Единственное, нужно будет его отсортировать по цене[1]
Причина обращения: