да, алгоритм должен быть другим... имхо линии по фракталам будет самое "то".
еще момент, TimePeriod удобнее для пользования установить типом "дата". потому как удобнее задать дату начала расчета уровней, а не количество баров
выкладываю фрактальный вариант, с возможностью задавать как количество баров для перебора, так и дату... преключатель - UseBarse = True; True - для использования количества баров, False - для использования заданной даты..
на счет алгоритма я имел несколько иное ввиду... Что реализовано сейчас:
1. За заданный период находим максимум и минимум (диапазон изменения цены)
2. Берем отрезок, задаваемый Band и отмеряем его от Лоу (самого минимального значения)
3. Пробегаем по барам и подсчитываем количество фракталов, уткнувшихся в данный ценовой отрезок
4. Если количество таких фракталов превышает CriticalNumber - окрашиваем рассматриваемую полосу
5. Отмеряем такой же отрезок шириной Band от Лоу +1 пп и повторяем заново, потом +2 пп и т.д.
в результате возникают ситуации когда группа фракталов, одна и таже удовлетворит отрезку отмеренному от Лоу+10 пп, от Лоу+11 пп и от Лоу+15 пп.. и в этом случае получится очень толстая полоса..
если же отмерять такими полосками, скажем при жирине полоски 10 пп отмерять ее сначала от Лоу, потом от Лоу+10 пп, потом от Лоу+20 пп.. то какие-то ппз могут просто потеряться, мы их проскочим.... И получается некая концептуальная проблематика в построении правильного алгоритма перебора.. Реализация в текущем виде... она и корректна и в то же время не очень... собственно это я имел в первом своем посту в этой ветке... и вопрос по поводу алгоритма все-равно остается открытым.. хотя, формально, все реализовано согласно заданным условиям.. :be: