Ниже код примера, как протестировать стратегию использующую индикатор Fractal.
Здесь нужно обратить внимание на то какое смещение указано в GetValue(..., Period),
т.е. вызывая индикатор фрактала с некоторым периодом мы этот же период используем как смещение для анализа, если использовать текущий бар со смещением 0, то это будет заглядыванием в будущее!
Код: Выделить всё
function Initialize()
{
   StrategyName = "FractalTest";
   AddParameter("Period", 5, "", 1);
   AddInput("Input1", Inputs.Candle, 5, true, "SRM8=ФОРТС");
   LongLimit = 44;
   ShortLimit = -44;
   AddChartIndicator("MY.Fractal", new Dictionary <string, string>{{"Period", "Period"}});
}
function OnUpdate()
{
   /// ПРАВИЛО 1
   if ( (MY.Fractal(Input1, Period).GetValue("H", (int)Period) > 0) )
   {
      EnterShort();
   }
   /// ПРАВИЛО 2
   if ( (MY.Fractal(Input1, Period).GetValue("L", (int)Period) > 0) )
   {
      EnterLong();
   }
}
Вот результат уже похож на правду
теперь мы видим, что позиции открываются после реального обнаружения фрактала, на том баре где фракталы были обнаружены реально.
 Изображения (1057)
 Изображения (1057) Архивы (82)
 Архивы (82) Текстовые файлы (9)
 Текстовые файлы (9) Документы (7)
 Документы (7) Скрипты Альфа-Директ 4 (30)
 Скрипты Альфа-Директ 4 (30)