QuantWorks is an event driven algorithmic trading framework. It is a fork of PyAlgoTrade (see Motivation).
QuantWorks provides a Python API for strategy authoring, backtesting, paper trading, and of course live trading via the Broker
interface.
To get started using QuantWorks, please take a look at the original PyAlgoTrade
tutorial and the full documentation.
- Python 3 development
- Python 2 support is NOT guaranteed in any capacity.
- Event driven.
- Supports Market, Limit, Stop and StopLimit orders.
- Supports any type of time-series data in Pandas or CSV format (like Yahoo! Finance, Google Finance, Quandl and NinjaTrader), as well as database (i.e. sqlite).
- Technical indicators and filters like SMA, WMA, EMA, RSI, Bollinger Bands, Hurst exponent and others.
- Performance metrics like Sharpe ratio and drawdown analysis.
- Event profiler.
- TA-Lib integration.
QuantWorks is a fork of PyAlgoTrade
by @gbeced. This project aims to be:
- Modern: first-class Python 3 development (Python 2 is EOL as of 2020)
- Extensible: as a framework, robust extension support is a must, and we encourage users of QuantWorks to give back by publishing their extensions (see Extensions)
- Easy to Develop: state-of-the-art tooling (pytest, poetry, travis) and approachable design principles should make it easy for newcomers to contribute.
- Open: as a fork of an Apache 2.0 license project, QuantWorks maintains the spirit of FOSS development. CONTRIBUTING.md forthcoming
QuantWorks is developed and tested using 3.7 and depends on:
- NumPy and SciPy.
- pytz.
- dateutil.
- requests.
- matplotlib for plotting support.
- ws4py for Bitstamp support.
- tornado for Bitstamp support.
- tweepy for Twitter support.
Developer ergonomics are provided by
- poetry
- pytest
- tox
- travis-ci
- Bitstamp (bitcoin) live trading is implemented by the
quantworks-bitstamp
package (https://pypi.org/project/quantworks-bitcoin/) - Twitter real-time feeds are supported via the
quantworks-twitter
package (https://pypi.org/project/quantworks-twitter/)