Добрый день!
Только начинаю осваивать TSlab API и пока не могу понять как мне получить цены открытия-закрытия-хай-лоу последних N свечек. Мне нужно перенести индикатор из ThinkOrSwim (есть такая программа, может кто знает) и там в одном из индикаторов необходимо провести вычисление следующего вида:
Quote:
def HiLo = Min(high - low, Average(high - low, Period));

Это не код на C# - это прямо код из того индикатора на внутреннем языке ThinkScript, но могу пояснить:
- надо найти минимум из двух величин
- одна из этих величин это разница между хай и лоу текущей свечи
- вторая из этих величин это усредненное за определенный промежуток значение подобных разностей high-low, но уже, соответственно, НЕ текущей свечи, а предыдущей, пред-предыдущей и так далее до глубины в Period свечей

Вот как бы мог ориентировочно выглядеть окружающий этот момент код, я из примеров себе представляю:
Quote:
public IList<double> Execute(ISecurity sourceSec) {
var highs = sourceSec.HighPrices;
var lows = sourceSec.LowPrices;
IList<double> list = new List<double>(highs.Count);
for (int i = 0; i < highs.Count; i++) {
var HiLo = Math.Min(highs[i] - lows[1], ТОТ_САМЫЙ_КУСОК_КОТОРЫЙ_НЕПОНЯТНО_КАК_СДЕЛАТЬ
list.Add(HiLo);
}
return list;
}


Но вот вместо фразы ТОТ_САМЫЙ_КУСОК_КОТОРЫЙ_НЕПОНЯТНО_КАК_СДЕЛАТЬ и надо вставить СРЕДНЕЕ от high-low за последние, скажем 13, свечек. Как это можно сделать? По документации (довольно запутанной) я этого не смог понять.

Если использовать те же highs[i] и lows[i] - как мне быть уверенным, что их вообще будет столько, сколько мне надо по количеству? У индикатора я сделал параметр для величины периода - это значит, что при его значении 13 я и получу 13 баров, верно? Но уже для ПЕРВОЙ ЖЕ из этих свечек при вычислении нужного мне значения потребуются данные про ЕЩЕ 12 свечек, которые были ДО НЕЕ. Для второй - ЕЩЕ ОДИННАДЦАТЬ, для третьей - ЕЩЕ ДЕСЯТЬ...

Вот об этом, собственно, и вопрос - КАК ЭТИ ДАННЫЕ О ПРЕДЫДУЩИХ СВЕЧКАХ можно получить???

Помогите, пожалуйста!!! Заранее благодарен!!!