A flexible backtesting framework for Python
bt is currently in alpha stage - if you find a bug, please submit an issue.
Read the docs here: http://pmorissette.github.io/bt.
bt is a flexible backtesting framework for Python used to test quantitative trading strategies. Backtesting is the process of testing a strategy over a given data set. This framework allows you to easily create strategies that mix and match different Algos. It aims to foster the creation of easily testable, re-usable and flexible blocks of strategy logic to facilitate the rapid development of complex trading strategies.
The goal: to save quants from re-inventing the wheel and let them focus on the important part of the job - strategy development.
bt is coded in Python and joins a vibrant and rich ecosystem for data analysis. Numerous libraries exist for machine learning, signal processing and statistics and can be leveraged to avoid re-inventing the wheel - something that happens all too often when using other languages that don’t have the same wealth of high-quality, open-source projects.
bt is built atop ffn - a financial function library for Python. Check it out!
Future development efforts will focus on:
The easiest way to install bt is from the Python Package Index using pip or easy_insatll:
$ pip install bt
Since bt has many dependencies, we strongly recommend installing the Anaconda Scientific Python Distribution, especially on Windows. This distribution comes with many of the required packages pre-installed, including pip. Once Anaconda is installed, the above command should complete the installation.
bt should be compatible with Python 2.7 and Python 3 thanks to the contributions made by fellow users.
We believe the best environment to develop with bt is the IPython Notebook. From their homepage, the IPython Notebook is:
“[…] a web-based interactive computational environment where you can combine code execution, text, mathematics, plots and rich media into a single document […]”
This environment allows you to plot your charts in-line and also allows you to easily add surrounding text with Markdown. You can easily create Notebooks that you can share with colleagues and you can also save them as PDFs. If you are not yet convinced, head over to their website.
A special thanks to the following contributors for their involvement with the project: