Примеры из справочника по MQ4 не работают

 

Здравствуйте господа.
Долгое время изучал пользовательские индикаторы, в частности функцию iCustom. Работает по настроению. Решил попробовать поработать со встроенными индикаторами. Использовал фракталы. По документации вот этот код должен показывать координаты фракталов.

int start()
   {
      double up = iFractals(NULL, 0, MODE_UPPER,0);
      double down=iFractals(NULL, 0, MODE_LOWER,0);
      Print(up," ",down);
return(0);
   }
К сожалению он этого не делает.
Кто мне объяснит. Ошибаюсь я, или разработчики?
 
<<По документации вот этот код должен показывать координаты фракталов. >>

Этот код должен печатать в журнал координаты фракталов.

Точный текст "По документации ..." в студию, пожалуйста.
 

Не цепляйтесь к словам. В журнал тоже не печатает.

 
Быть такого не может.
 
Скопируйте. Запустите. Посмотрите.
 
Фрактал просто по определению не может быть на нулевом баре. Читайте внимательно определение (из книг ли или из кода индикатора), или пробуйте более простые примеры распечатывать, например , iMA().
 
Конечно же, не может. Спасибо, Rosh. Скопировал. Запустил. Посмотрел. Печатает нули:

21:52:22 !TST! USDCHF,H4: loaded successfully
21:52:22 !TST! started for testing
21:52:22 1999.01.27 00:00 !TST! USDCHF,H4: 0 0
21:52:22 1999.01.27 00:26 !TST! USDCHF,H4: 0 0
21:52:22 1999.01.27 00:32 !TST! USDCHF,H4: 0 0
21:52:31 1999.01.27 00:33 !TST! USDCHF,H4: 0 0

и т.д.
 
Doctorcoot:

Здравствуйте господа.
Долгое время изучал пользовательские индикаторы, в частности функцию iCustom. Работает по настроению. Решил попробовать поработать со встроенными индикаторами. Использовал фракталы. По документации вот этот код должен показывать координаты фракталов.

int start()
   {
      double up = iFractals(NULL, 0, MODE_UPPER,0);
      double down=iFractals(NULL, 0, MODE_LOWER,0);
      Print(up," ",down);
return(0);
   }
К сожалению он этого не делает.
Кто мне объяснит. Ошибаюсь я, или разработчики?
Действительно, пример из документации является задачкой на сообразительность.

double iFractals( string symbol, int timeframe, int mode, int shift)
Расчет индикатора Fractals.

Параметры:

symbol

-

Символьное имя инструмента, на данных которого будет вычисляться индикатор. NULL означает текущий символ.

timeframe

-

Период. Может быть одним из периодов графика. 0 означает период текущего графика.

mode

-

Индекс линии индикатора. Может быть любым из значений идентификаторов линии индикаторов.

shift

-

Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад).

Пример:

double val=iFractals(NULL, 0, MODE_UPPER,0);



Спасибо за найденное упущение.
 

Вот копия из справочника:

double iFractals( string symbol, int timeframe, int mode, int shift)
Расчет индикатора Fractals.

Параметры:

symbol - Символьное имя инструмента, на данных которого будет вычисляться индикатор. NULL означает текущий символ.
timeframe - Период. Может быть одним из периодов графика. 0 означает период текущего графика.
mode - Индекс линии индикатора. Может быть любым из значений идентификаторов линии индикаторов.
shift - Индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад).

Пример:
  double val=iFractals(NULL, 0, MODE_UPPER,0);



В последней строке явно указан нулевой бар, Хотя я пробовал и с первым.

 
Doctorcoot:
 В последней строке явно указан нулевой бар, Хотя я пробовал и с первым.
Немного не дотянули :-)
int start()
   {
      double up = iFractals(NULL, 0, MODE_UPPER,2);
      double down=iFractals(NULL, 0, MODE_LOWER,2);
      Print(up,"  < up - down >  ",down);
  return(0);
   }
так уже работает :-)

Причина обращения: