QuanTAlib - quantitative technical indicators for Quantower and other C#-based trading platorms
Quantitative TA library (QuanTAlib) is a C# library of classess and methods for quantitative technical analysis useful for analyzing quotes with Quantower and other C#-based trading platforms.
QuanTAlib is written with some specific design criteria in mind - why there is 'yet another C# TA library':
- Prioritize real-time data analysis (series can add new data and indicator doesn't have to re-calculate the whole history)
- Allow updates to the last quote and adjusting the calculation to the still-forming bar
- Calculate early data right - output data is as valid as mathematically possible from the first value onwards
If not obvious, QuanTAlib is intended for developers, and it does not focus on sources of OHLCV quotes. There are some very basic data feeds available to use in the learning process: RND_Feed and GBM_Feed for random data, Yahoo_Feed and Alphavantage_Feed for a quick grab of daily data of US stock market.
See Getting Started .NET interactive notebook to get a feel how library works. Developers can use QuanTAlib in Polyglot Notebooks or in console apps, but the best usage of the library is with C#-enabled trading platforms - see QuanTower_Charts folder for Quantower examples and check Releases for compiled Quantower DLL.
Coverage
List of all indicators - current and planned
Validation
QuanTAlib uses validation tests with four other TA libraries to assure accuracy and validity of results:
Performance
Is QuanTAlib fast? Well, no, but actually yes. QuanTAlib works on an additive principle, meaning that even when served a full list of quotes, QuanTAlib will process one item at the time, rolling forward throug time series of data.
- If the last bar is still forming (parameter
update: true), QuanTAlib easily recalculates the last entry as often as needed without any need to recalculate the history. - If a new bar is added to the input, QuanTAlib will process that one item (default parameter
update: false) and add that one result to the List. No recalculation of the history needed.
If you feed QuanTAlib 500 historical bars and calculate EMA(20) on it, the performance of QuanTAlib will be dead last compared to all other TA libraries.
But when system uses 10,000 historical bars, does updates to the current/last bar every tick, and adds a new bar every minute, QuanTAlib has no rivals; all other libraries need to re-calculate the full length of the array on each update/addition to the time series. Longer the series and more updates/additions it gets, more advantage for QuanTAlib.
