Finished my trading infrastructure project over the weekend - it’s called FLOX.
Built in pure C++ (uses C++20 features), it’s a modular framework for building HFT systems, trading infra, market data feeds, or even something like a TradingView clone.
Everything is open source: https://github.com/eeiaao/flox
Docs: https://eeiaao.github.io/flox/
There are tests and benchmarks to keep it stable.
Might add JS engine support later for scripting strategies.
Open to feedback and contributions.
This is basics for those who start creating anything HFT.
Your project is a nice start. It has a lot of things waiting to be added and improved. I’d also add it looks like a 1-2 week project (excluding benchmarks) in my company for people who just started doing trading systems, and it reminds me of the project that is given to people that have finished C++ training and need something to exercise on.
While it is a good start, I’d add you may find a lot of interesting ideas in QuantLib (https://www.quantlib.org/).
Please also be careful with double for price and quantity especially in HFT and especially with asset types like BTC. The precision issues may lead to some confusion and eventual losses here and there. I noticed that you use fuzzy floating point comparisons, even in tests. That may not be suitable for important use cases.
Please also add some examples for specific trading strategies. Let’s say if you have back testing and some simple historic data in JSON a good example could be a comparison of two trading strategies and the difference compared to most optimal trading strategy possible.