Third party C++ libraries I used in my ftap algotrading system

In this article I will list all of the third party C++ libraries I used in my ftap algorithm trading system, and I will tell why and how I use them.

cpgf library

Though cpgf is my another open source project, it's relative third party to ftap. Since Qt has great support for script binding, I don't use most part in cpgf. I only use two features:

  • The callback and callback list system.

The callback system is used extensively in ftap to implement observer pattern. The signal/slot in Qt is a little cumbersome to me, so I use the light and easier to use callback system instead.

  • goutmain, which implement auto run before main() function feature.

I modified AUTO_RUN_BEFORE_MAIN, add a unique name as the parameter, so it won't conflict if two AUTO_RUN_BEFORE_MAINs sit at the same line in difference source file.


All unit tests in ftap use Catch, the great C++ unit test framework. It's so easy to use, and saved me a lot of time.


An open source time series analysis package. I use it to test some time series based strategy, such as ARMA. It's a pity that this C++ library is not continued any more, the original author is developing a C# version library. I didn't find any other good time series analysis package in pure C++, if you know one, let me know.


It's required by Cronos.


The finance indicator library. I use it to implement the “standard” indicators such as moving average, RSI, Bollinger Bands, etc.

easylzma, lz4, quazip, and zlib

All of them are data compress/decompress libraries. I use them to decompress Dukascopy tick data, Oanda REST gzip-ed http data, etc. It looks silly to use so many same purpose libraries in one project, but no one is competent to all the tasks.

If you have any other interesting and useful libraries to recommend, let me know. :-)


Enter your comment. Wiki syntax is allowed: