Вопрос: Подскажите, как найти цену последнего фрактала?

Ответ(sergeev): Для этого можно воспользоваться индикатором iFractals. Он возвращает значение 0, если на баре нет фрактала и значение цены фрактала если он есть. Фракталы делятся на верхние и нижние. Если вам надо получить верхние, то в функцию iFractals передается MODE_UPPER, а для нижних - MODE_LOWER. Поэтому для поиска фрактала надо пройти в цикле по барам и первое не 0 значение и будет искомым фракталом.

пример:

double frac;
for (int i=3; i<Bars; i++)
{
   frac=iFractals(Symbol(), Period(), MODE_UPPER, i); if (frac>0) break;

   frac=iFractals(Symbol(), Period(), MODE_LOWER, i); if (frac>0) break;
}
if (frac>0) Print("Цена последнего фрактала: ", frac);


пример организации отдельной функции
:

//---------------------------------------------------------------   GetLastFrac
double GetLastFrac(string smb, int tf, int iB)
{

   int n=iBars(smb, tf);  double frac;
   for (int i=iB; i<n; i++)
   {

      frac=iFractals(smb, tf, MODE_UPPER, i); if (frac>0) return(frac);
      frac=iFractals(smb, tf, MODE_LOWER, i); if (frac>0) return(frac);

   }
   return(0);
}
.....
Print("Последний фрактал: ", GetLastFrac("EURUSD", 60, 3));

теги: фрактал, iBars, числовые константы, вызов индикаторов

смотри также на форуме:
- как обратиться к пользовательскому индикатору
- как узнать значение буфера на закрытом баре