МАшки...

 

Прошу помощи.

Как организовать в функцию следующее..

Есть две машки одна быстрая(M2) вторая еще быстрее (M1) ))

Хотелось бы чтоб функция возвращала кол-во баров после последнего пересечения.Очень полезная штука будет, если кто поможет..)

 
Функция возвращающая количество баров после последнего пересечения МА.

Необходимо передать периоды средних и метод расчета (по умолчанию ЕМА)

int LastMACross(int PerMA1, int PerMA2, int ModeMA=MODE_EMA) {
   
   bool flag=true;
   int i=1;
   
   while (flag) {
      double ValMA1=NormalizeDouble(iMA(NULL,0,PerMA1,0,ModeMA,PRICE_CLOSE,i),Digits);
      double ValMA2=NormalizeDouble(iMA(NULL,0,PerMA2,0,ModeMA,PRICE_CLOSE,i),Digits);
      if(ValMA1 == ValMA2) return (i);
      else i++;
   }
}
 
No_Name писал(а) >>
Функция возвращающая количество баров после последнего пересечения МА.

Необходимо передать периоды средних и метод расчета (по умолчанию ЕМА)

Не надо так упрощенно к машкам подходить.

Подобный код будет работать не всегда.

Возможны варианты:

1. Совпадение значений есть, а пересечения нету.

2. Пересечение произошло между двумя барами.

 

.....

Файлы:
 

No_Name


Integer

Спасибо огромное!


toInteger


Как правильно через айкустом к нему обратиться (чтоб кол-во баров переменной присвоить) ?