What you need is a charting program with the ability to create custom code.
There are several. I use SierraCharts. User code can be written in a dialect of C/C++, which in a sense, is the SierraChart user API. Note however that this SierraChart user API is not a datafeed... The data feed is separate, and SierraChart (charting and trade execution program) and the SierraChart user "API" work seamlessly with numerous compatible data feeds.
As mentioned, there are several charting programs that allow custom code. The particulars are dependent on which one. The data feed is the data feed. The data is the data. The chart is merely a plot of the data and pre-packaged or user-defined calculations.