Индикаторы: MaFromMa - страница 2

 
Nikolai Semko:

конечно можно, но лучше не по минуте(слишком дискретно), а просто ТФ с типом double, например. Period= 1.01455 мин , 1.01625 мин , ... 2.4512 часа и т.д. 

Я не программист, спросил так как понимаю. А если по минуте, сложно получается в реализации?

 
Andrey Gladyshev:

Я не программист, спросил так как понимаю. А если по минуте, сложно получается в реализации?

Как по мне, так совсем не сложно,  но все равно нужно убить день, а то и два. У меня есть в моем списке задач подобная идея только конечно с типом double и гораздо более глубже, чем простое плавное изменение таймфрейма.  Но об этом пока рано говорить.
 
Данный индикатор создан для демонстрации индикаторной рекурсии, когда индикатор рассчитывается из самого себя любое количество раз.

Там же нет индикаторной рекурсии. Стандартное использование iMA (с потерей данных о хендлах).


Индикаторная рекурсия - когда идет расчет на себе же. Реализовывается через iCustom+один из вариантов OnCalculate.

 
fxsaber:

Там же нет индикаторной рекурсии. Стандартное использование iMA (с потерей данных о хендлах).

Индикаторная рекурсия - когда идет расчет на себе же. Реализовывается через iCustom+один из вариантов OnCalculate.

Сначала я хотел с Вами согласиться и убрать из описания слово "рекурсия".

Но поразмыслив, все же не соглашусь с Вами.

Рекурсия на лицо. 

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

Да, данные о хендлах как бы теряются, но сама расчетная часть индикатора на каждом шаге не теряется, а сидит уже в следующей расчетной части.

Я не зря привел пример треугольника  Паскаля, как результат действия такой рекурсии. А известно, что "если в треугольнике Паскаля все нечётные числа окрасить в чёрный цвет, а чётные — в белый, то образуется треугольник Серпинского", который строится бесконечной рекурсией.


 
Nikolai Semko:

Рекурсия на лицо. 

К сожалению, это не рекурсия

int iMA( const int Num )
{
  return(Num + 1);
}

void OnStart()
{
  int Sum = 0;
  
  for (int i = 0; i < 10; i++)
    Sum = iMA(Sum);
    
  Print(Sum);
}


ЗЫ Попробуйте написать рекурсивный пользовательский индикатор.

 
fxsaber:

К сожалению, это не рекурсия

А это рекурсия?

int iMA( const int Num )
{
  static int S=0,s=0,i=0;
  if (i==Num) { s=S; S=0; i=0; return s;}
  else { S++; i++; iMA(Num); }
  return s;
}

void OnStart()
{
  int Sum = 10;
  Print(iMA(Sum));
}
 
fxsaber:

К сожалению, это не рекурсия

ЗЫ Попробуйте написать рекурсивный пользовательский индикатор.

Ок. Согласился. Терминология, действительно, некорректная.

Исправил описание.

Спасибо.

 
Nikolai Semko:

А это рекурсия?

Да.

 
fxsaber:

Да.

Просто любую рекурсию можно заменить циклом, но не любой цикл рекурсией.
Вообще - рекурсия для извращенцев . ИМХО ))
 
Nikolai Semko:
Просто любую рекурсию можно заменить циклом, но не любой цикл рекурсией.
Вообще - рекурсия для извращенцев . ИМХО ))

Например, получение списка всех файлов песочницы удобно реализовывать именно через рекурсию.

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