не очень ясно в чем проблема использования сжатого таймфрейма. Берете часовые бары и считаете. О каких там 60 барах внутри каждого бара идет речь вообще не ясно.
Постараюсь объяснить.
Основной таймфрейм минутный для быстрого выставления стоплосса.
Рассчитать линии поддержки необходимо на часовом таймфрейме.
Если использовать компрессию, то возникает проблема следующего характера:
//Компрессия минуток в часовики
var compressed = sec.CompressTo(new Interval(60, DataIntervals.MINUTE));
Теперь, если я обращусь к первому и второму элементу, то я получу одинаковые значения, то есть
compressed.Bars[0].Open == compressed.Bars[1].Open
И так 60 элементов. То есть по сути сжатый массив имеет такую же размерность, как и минутный, в котором дублируются бары. Но проблема в том, что если хоть один минутный бар в котировках будет пропущен, то одинаковых баров в это часе будет не 60, а 59, поэтому формулу Compressed.Bars[j*60+1].Open, где j - индекс часового бара - использовать нельзя.
Все хорошо, когда я могу использовать функцию ctx.GetData, но мне надо посчитать линию поддержки на сжатом часовике, а таких функций в TsLab нет, поэтому как правильно обратиться в цикле к барам сжатых свечей я не знаю. Можно было бы, конечно, выделять бары по времени, но это, опять же, очень ресурсозатратно.
Надеюсь, вы поняли суть моей проблемы =)