Помогите пожалуйста! - страница 2

 
а куда вы сдвигаете МА ?
 

мне нужно первую МА оставить без сдвига а вторую сдвинуть на 15 баров назад и при условии когда они пересекуться выполнить условие.

как нистранно но даже так не срабатывает сигнал........

double per=iMA(NULL,0,14,0,MODE_SMMA,0,0);
  double per1=iMA(NULL,0,14,0,MODE_SMMA,0,0);
if(per==per1)

{

........

}

 

double per=iMA(NULL,0,14,0,MODE_SMMA,0,0);

double per1=iMA(NULL,0,14,0,MODE_SMMA,0,0);

if(per==per1)

{

........

}

Так заработало..........а как же сделать со сдвигом?

 

double per=iMA(NULL,0,14,0,MODE_SMMA,0,0);
double per1=iMA(NULL,0,14,0,MODE_SMMA,0,0);
if(per==per1)

Э, учиться и учиться ка завещал великий Ленин.

Ну для начала что вы хотите сравнить два числа с плавающей точкой типа double, да они никогда равны не будут.

Можно найти сближение с заданной точностью, к примеру

if (MathAbs(per-per1)<0.001) //Извиняюсь за мой французский, возможно эту конструкцию можно сделать изящнее.


Для нахождения истинного пересечения нужно сравнивать значения с текущего и предыдущего интервалов

if ((per>per_prev)&&(per1<per1_prev) ||(per<per_prev)&&(per1>per1_prev)) //Что-то вроде вот такого, хотя не ручаюсь за правильность, но концепция именно такая.

 

примерно вот так?

double per_0=iMA(NULL,0,14,-15,MODE_SMMA,0,0);
  double per1_0=iMA(NULL,0,24,0,MODE_SMMA,0,0);
  double per_1=iMA(NULL,0,14,-15,MODE_SMMA,0,1);
  double per1_1=iMA(NULL,0,24,0,MODE_SMMA,0,1);

  if(per_1<per1_1 && per_0>per1_0)
   
  {
   if (MathAbs(per-per1)<0.001) 

  {

  if ((per>per_prev)&&(per1<per1_prev) ||(per<per_prev)&&(per1>per1_prev))  

  {

   ............
  }
  }

  }

если нет то поправьте пожалуйста.

 
mozg писал(а) >>

примерно вот так?

Накиньте на график ваши машки и посмотрите, могут они пересекаться на 0 или 1 баре?

 
  double per_0=iMA(NULL,0,14,-15,MODE_SMMA,0,0);
  double per1_0=iMA(NULL,0,24,0,MODE_SMMA,0,-15);
  double per_1=iMA(NULL,0,14,-15,MODE_SMMA,0,1);
  double per1_1=iMA(NULL,0,24,0,MODE_SMMA,0,-16);

  if(((per_0-per1_0 <=0) && (per_1-per1_1 >0)) || ((per_0-per1_0 >=0) && (per_1-per1_1 <0)))
   
  {
   ............
  }

По-моему, так
 
iMA(NULL,0,24,0,MODE_SMMA,0,-15);

Даже страшно представить что это будет показывать)

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

 
Figar0 >>:

Даже страшно представить что это будет показывать)

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

Немного подредактировал сдвиг машек

Чтоб не представлять, установи машки и посмотри.

Отстающая машка может пересечь обычную только на СВОЕМ нулевом баре. Для обычной это будет -15

А логику действий зачем обсуждать? Хозяин-барин

 
А Аллигатор чем не подходит?
Причина обращения: