Вот код индикатора на C# для Wealth-Lab Developer с моими комментариями:
int FirstValidValue = Period; double rangePeriod; // Значение периода double highValue, lowValue; // Значения границ флета for (int bar = FirstValidValue; bar < Bars.Count; bar++) // Пробегаемся по всем свечкам { rangePeriod = 100d; // Для каждой свечки изначально считаем, что она - трендовая highValue = double.MinValue; lowValue = double.MaxValue; for (int i = bar - 1; i > bar - 1 - Period; i--) // Для каждой свечки будем пробегаться по истории на величину Period { if (highValue < Bars.High[i]) highValue = Bars.High[i]; // Поднимаем верхнюю границу if (lowValue > Bars.Low[i]) lowValue = Bars.Low[i]; // Опускаем нижнюю границу if (Bars.High[bar] <= highValue && Bars.Low[bar] >= lowValue) // Нашли флет, в который вписываем текущую свечку { rangePeriod = 100d / Period * (bar - i - 1); break; } } this[bar] = 100d - rangePeriod;// Значение Осцилятора флета }