Здесь нужно следовать следующей логики, предыдущий максимум, больше текущего максимума рисуем линию до тех пор, пока цена не окажется выше линии, после чего начинаем рисовать линию снизу от цены минимума и предыдущий минимум должен быть меньше текущего минимума, рисуем линию до тех пор, пока цена не окажется ниже линии. Верно? Теперь осталось определить алгоритм поиска минимума и максимума. Первые точки найти достаточно просто. Их следует искать, пока рисовалась противоположная линия. Т.е. рисуем линию по максимумам, а сами в этот момент ищем минимум. И соответственно пока рисуем линию по минимумам, ищем максимум для обратной линии. В момент касания ценой линии, первой точке присваивается именно это значение.
Со второй точкой то же вроде просто. Ее значение стоит искать от сохраненного значения первой точки, до момента касания ценой текущей линии. Как-то так ...

Верно?
А при чем тут геометрия?