Как и в моем примере последнем, где нет заглядывания в будущее и использовано [Period].
Заглядыванием в будущее будет, если
Код: Выделить всё
   if(!Double.IsNaN(h[Period])) last_high_fractal = h[Period];
   if(!Double.IsNaN(l[Period])) last_low_fractal = l[Period];   было бы
Код: Выделить всё
   if(!Double.IsNaN(h[Period])) last_high_fractal = h[0];
   if(!Double.IsNaN(l[Period])) last_low_fractal = l[0];   в таком варианте конечно работать не будет, но если запустить на нём контртренд тогда будет обманывать.
Например так:
Код: Выделить всё
/**
Algorithm = ТРЕНД;
**/
function Initialize()
{
   StrategyName = "My_Fractals";
   AddInput("Input1", Inputs.Candle, 60, true, "SBER=МБ ЦК");
   AddParameter("Period", 2, "Порядок фрактала");
   LongLimit = 1;
   ShortLimit = -1;
   AddChartIndicator("MY.Fractal", new Dictionary <string, string>{{"Period", "Period"}});
   AddGlobalVariable("last_high_fractal", Types.Double, 10000000000.0);
   AddGlobalVariable("last_low_fractal", Types.Double, -1.0);
}
function OnUpdate()
{
   var fractal = MY.Fractal(Input1, Period);
   var h = fractal["H"];
   var l = fractal["L"];
      
   /// это максимум
   if ( h[0] > 0 )
   {
      EnterShort();
   }
   /// это минимум
   if ( l[0] > 0 )
   {
      EnterLong();
   }
}
и получим следующее:
Должно быть, если заменить [0] на [Period], вот так
 Изображения (1057)
 Изображения (1057) Архивы (82)
 Архивы (82) Текстовые файлы (9)
 Текстовые файлы (9) Документы (7)
 Документы (7) Скрипты Альфа-Директ 4 (30)
 Скрипты Альфа-Директ 4 (30)