This project implements a simple event-driven backtester described by Michael Halls-Moore, founder of QuantStart. The reading list is as following,
- Event-Driven Backtesting with Python - Part I
- Event-Driven Backtesting with Python - Part II
- Event-Driven Backtesting with Python - Part III
- Event-Driven Backtesting with Python - Part IV
- Event-Driven Backtesting with Python - Part V
- Event-Driven Backtesting with Python - Part VI
- Event-Driven Backtesting with Python - Part VII
- Event-Driven Backtesting with Python - Part VIII
Part VIII is more about using Interactive Brokers to implement more live trading system. This is not the focus of this project at this moment.
Building a backtester manually is a good learning experience for quant trading starters. Some references are listed:
- denhartog/quantstart-backtester
- Code does not work and has bugs
- JavierGarciaD/AlgoRepo
- A SQLite/SQLAlchemy data handler implementation
- A backtest main class to handle the loop
- quantopian/zipline
- A mature backtesting framework
This project is associated with virtual environment backtest-env. Code is not directly copied from QuantStart or any reference, some modifications have been made to make it work.
- fundamental_layer module contains the basic classes for the backtester implementation.
- strategies module contains all the trading strategies for backtesting.