Package: bt
bt - Flexible Backtesting for Pythonbt is currently in alpha stage - if you find a bug, please submit an issue.Read the docs here:http://pmorissette.github.io/bt.What is bt?btis a flexible backtesting framework for Python used to test quantitative
trading strategies.Backtestingis the process of testing a strategy over a given
data set. This framework allows you to easily create strategies that mix and match
differentAlgos. 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 savequantsfrom re-inventing the wheel and let them focus on the
important part of the job - strategy development.btis coded inPythonand 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 atopffn- a financial function library for Python. Check it out!FeaturesTree StructureThe tree structurefacilitates the construction and composition of complex algorithmic trading
strategies that are modular and re-usable. Furthermore, each treeNodehas its own
price index that can be used by Algos to determine a Node's allocation.Algorithm StacksAlgosandAlgoStacksare
another core feature that facilitate the creation of modular and re-usable strategy
logic. Due to their modularity, these logic blocks are also easier to test -
an important step in building robust financial solutions.Charting and Reportingbt also provides many useful charting functions that help visualize backtest
results. We also plan to add more charts, tables and report formats in the future,
such as automatically generated PDF reports.Detailed StatisticsFurthermore, bt calculates a bunch of stats relating to a backtest and offers a quick way to compare
these various statistics across many different backtests viaResultsdisplay methods.RoadmapFuture development efforts will focus on:SpeedDue to the flexible nature of bt, a trade-off had to be made between
usability and performance. Usability will always be the priority, but we do
wish to enhance the performance as much as possible.AlgosWe will also be developing more algorithms as time goes on. We also
encourage anyone to contribute their own algos as well.Charting and ReportingThis is another area we wish to constantly improve on
as reporting is an important aspect of the job. Charting and reporting also
facilitate finding bugs in strategy logic.Installing btThe easiest way to installbtis from thePython Package Indexusingpip:pipinstallbtSince bt has many dependencies, we strongly recommend installing theAnaconda 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.Recommended SetupWe believe the best environment to develop with bt is theIPython 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.