A Java Framework for Backtesting and Trading
Tradelib has been used in real life, for backtesting and for signal generation, since early 2015.
It has been mostly used to support futures trading. Thus, stocks and ETFs shouldn't be a problem, but work is needed to support Forex, especially when USD is not the quote currency.
Tradelib supports both SQLite and MySQL. Out of the box, MySQL 5.6.4 or higher is supported. It would work with older versions, but slight changes are needed to the table definition files.
Maven is the build tool.
The code is Java (Java 8 or higher), thus, it should work pretty much everywhere.
For more information go to the project wiki page.
There is a simple momentum strategy implemented as an example.