Ответ(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));