Постепенно пишу код, ответственный за визуализацию графиков в своем сканере рынка. Оказалось, что рисование разных чартов — это сложная задача, завершение которой требует решения многих отдельных подзадач. Поборол проблемы пиксельной точности при рисовании шейдерами, добавил нормализацию видимых элементов, реализовал несколько видов чартов (candlestick, OHLC, bar). Сейчас главной проблемой остаётся выстраивание грамотной архитектуры классов, в которую можно было бы безболезненно добавлять новые типы чартов. Это достаточно сложно, особенно если ранее опыта построения таких иерархий не было. Кстати, считаю хорошей задачей для собеседования на вакансию программиста — набросать на бумаге иерархию классов для системы чартов.
Для собственного понимания, как это все должно рисоваться, я смотрел в google images существующие варианты разных графических представлений чартов. Можно было бы реализовать самый примитивный рендер, но мне хочется чтобы было «красиво-багато». Планируется, что у чартов могут быть «скины», которые по-разному будут отображать одни и те же финансовые данные. Настраиваться будет все через XML-конфиг.