BackTesting Engine
Project description
backtrader
==========
.. image:: https://img.shields.io/pypi/v/backtrader.svg
:alt: PyPi Version
:scale: 100%
:target: https://pypi.python.org/pypi/backtrader/
.. .. image:: https://img.shields.io/pypi/dm/backtrader.svg
:alt: PyPi Monthly Donwloads
:scale: 100%
:target: https://pypi.python.org/pypi/backtrader/
.. image:: https://img.shields.io/pypi/l/backtrader.svg
:alt: License
:scale: 100%
:target: https://github.com/backtrader/backtrader/blob/master/LICENSE
.. image:: https://travis-ci.org/backtrader/backtrader.png?branch=master
:alt: Travis-ci Build Status
:scale: 100%
:target: https://travis-ci.org/backtrader/backtrader
.. image:: https://img.shields.io/pypi/pyversions/backtrader.svg
:alt: Python versions
:scale: 100%
:target: https://pypi.python.org/pypi/backtrader/
**Yahoo API Note**:
[2018-11-16] After some testing it would seem that data downloads can be
again relied upon over the web interface (or API ``v7``)
**Tickets**
The ticket system is (was, actually) more often than not abused to ask for
advice about samples.
For **feedback/questions/...** use the `Community <https://community.backtrader.com>`_
Here a snippet of a Simple Moving Average CrossOver. It can be done in several
different ways. Use the docs (and examples) Luke!
::
from datetime import datetime
import backtrader as bt
class SmaCross(bt.SignalStrategy):
def __init__(self):
sma1, sma2 = bt.ind.SMA(period=10), bt.ind.SMA(period=30)
crossover = bt.ind.CrossOver(sma1, sma2)
self.signal_add(bt.SIGNAL_LONG, crossover)
cerebro = bt.Cerebro()
cerebro.addstrategy(SmaCross)
data0 = bt.feeds.YahooFinanceData(dataname='MSFT', fromdate=datetime(2011, 1, 1),
todate=datetime(2012, 12, 31))
cerebro.adddata(data0)
cerebro.run()
cerebro.plot()
Including a full featured chart. Give it a try! This is included in the samples
as ``sigsmacross/sigsmacross2.py``. Along it is ``sigsmacross.py`` which can be
parametrized from the command line.
Features:
=========
Live Trading and backtesting platform written in Python.
- Live Data Feed and Trading with
- Interactive Brokers (needs ``IbPy`` and benefits greatly from an
installed ``pytz``)
- *Visual Chart* (needs a fork of ``comtypes`` until a pull request is
integrated in the release and benefits from ``pytz``)
- *Oanda* (needs ``oandapy``) (REST API Only - v20 did not support
streaming when implemented)
- Data feeds from csv/files, online sources or from *pandas* and *blaze*
- Filters for datas, like breaking a daily bar into chunks to simulate
intraday or working with Renko bricks
- Multiple data feeds and multiple strategies supported
- Multiple timeframes at once
- Integrated Resampling and Replaying
- Step by Step backtesting or at once (except in the evaluation of the Strategy)
- Integrated battery of indicators
- *TA-Lib* indicator support (needs python *ta-lib* / check the docs)
- Easy development of custom indicators
- Analyzers (for example: TimeReturn, Sharpe Ratio, SQN) and ``pyfolio``
integration (**deprecated**)
- Flexible definition of commission schemes
- Integrated broker simulation with *Market*, *Close*, *Limit*, *Stop*,
*StopLimit*, *StopTrail*, *StopTrailLimit*and *OCO* orders, bracket order,
slippage, volume filling strategies and continuous cash adjustmet for
future-like instruments
- Sizers for automated staking
- Cheat-on-Close and Cheat-on-Open modes
- Schedulers
- Trading Calendars
- Plotting (requires matplotlib)
Documentation
=============
The blog:
- `Blog <http://www.backtrader.com/blog>`_
Read the full documentation at:
- `Documentation <http://www.backtrader.com/docu>`_
List of built-in Indicators (122)
- `Indicators Reference <http://www.backtrader.com/docu/indautoref.html>`_
Python 2/3 Support
==================
- Python >= ``3.2``
- It also works with ``pypy`` and ``pypy3`` (no plotting - ``matplotlib`` is
not supported under *pypy*)
Installation
============
``backtrader`` is self-contained with no external dependencies (except if you
want to plot)
From *pypi*:
- ``pip install backtrader``
- ``pip install backtrader[plotting]``
If ``matplotlib`` is not installed and you wish to do some plotting
.. note:: The minimum matplotlib version is ``1.4.1``
An example for *IB* Data Feeds/Trading:
- ``IbPy`` doesn't seem to be in PyPi. Do either::
pip install git+https://github.com/blampe/IbPy.git
or (if ``git`` is not available in your system)::
pip install https://github.com/blampe/IbPy/archive/master.zip
For other functionalities like: ``Visual Chart``, ``Oanda``, ``TA-Lib``, check
the dependencies in the documentation.
From source:
- Place the *backtrader* directory found in the sources inside your project
Version numbering
=================
X.Y.Z.I
- X: Major version number. Should stay stable unless something big is changed
like an overhaul to use ``numpy``
- Y: Minor version number. To be changed upon adding a complete new feature or
(god forbids) an incompatible API change.
- Z: Revision version number. To be changed for documentation updates, small
changes, small bug fixes
- I: Number of Indicators already built into the platform
==========
.. image:: https://img.shields.io/pypi/v/backtrader.svg
:alt: PyPi Version
:scale: 100%
:target: https://pypi.python.org/pypi/backtrader/
.. .. image:: https://img.shields.io/pypi/dm/backtrader.svg
:alt: PyPi Monthly Donwloads
:scale: 100%
:target: https://pypi.python.org/pypi/backtrader/
.. image:: https://img.shields.io/pypi/l/backtrader.svg
:alt: License
:scale: 100%
:target: https://github.com/backtrader/backtrader/blob/master/LICENSE
.. image:: https://travis-ci.org/backtrader/backtrader.png?branch=master
:alt: Travis-ci Build Status
:scale: 100%
:target: https://travis-ci.org/backtrader/backtrader
.. image:: https://img.shields.io/pypi/pyversions/backtrader.svg
:alt: Python versions
:scale: 100%
:target: https://pypi.python.org/pypi/backtrader/
**Yahoo API Note**:
[2018-11-16] After some testing it would seem that data downloads can be
again relied upon over the web interface (or API ``v7``)
**Tickets**
The ticket system is (was, actually) more often than not abused to ask for
advice about samples.
For **feedback/questions/...** use the `Community <https://community.backtrader.com>`_
Here a snippet of a Simple Moving Average CrossOver. It can be done in several
different ways. Use the docs (and examples) Luke!
::
from datetime import datetime
import backtrader as bt
class SmaCross(bt.SignalStrategy):
def __init__(self):
sma1, sma2 = bt.ind.SMA(period=10), bt.ind.SMA(period=30)
crossover = bt.ind.CrossOver(sma1, sma2)
self.signal_add(bt.SIGNAL_LONG, crossover)
cerebro = bt.Cerebro()
cerebro.addstrategy(SmaCross)
data0 = bt.feeds.YahooFinanceData(dataname='MSFT', fromdate=datetime(2011, 1, 1),
todate=datetime(2012, 12, 31))
cerebro.adddata(data0)
cerebro.run()
cerebro.plot()
Including a full featured chart. Give it a try! This is included in the samples
as ``sigsmacross/sigsmacross2.py``. Along it is ``sigsmacross.py`` which can be
parametrized from the command line.
Features:
=========
Live Trading and backtesting platform written in Python.
- Live Data Feed and Trading with
- Interactive Brokers (needs ``IbPy`` and benefits greatly from an
installed ``pytz``)
- *Visual Chart* (needs a fork of ``comtypes`` until a pull request is
integrated in the release and benefits from ``pytz``)
- *Oanda* (needs ``oandapy``) (REST API Only - v20 did not support
streaming when implemented)
- Data feeds from csv/files, online sources or from *pandas* and *blaze*
- Filters for datas, like breaking a daily bar into chunks to simulate
intraday or working with Renko bricks
- Multiple data feeds and multiple strategies supported
- Multiple timeframes at once
- Integrated Resampling and Replaying
- Step by Step backtesting or at once (except in the evaluation of the Strategy)
- Integrated battery of indicators
- *TA-Lib* indicator support (needs python *ta-lib* / check the docs)
- Easy development of custom indicators
- Analyzers (for example: TimeReturn, Sharpe Ratio, SQN) and ``pyfolio``
integration (**deprecated**)
- Flexible definition of commission schemes
- Integrated broker simulation with *Market*, *Close*, *Limit*, *Stop*,
*StopLimit*, *StopTrail*, *StopTrailLimit*and *OCO* orders, bracket order,
slippage, volume filling strategies and continuous cash adjustmet for
future-like instruments
- Sizers for automated staking
- Cheat-on-Close and Cheat-on-Open modes
- Schedulers
- Trading Calendars
- Plotting (requires matplotlib)
Documentation
=============
The blog:
- `Blog <http://www.backtrader.com/blog>`_
Read the full documentation at:
- `Documentation <http://www.backtrader.com/docu>`_
List of built-in Indicators (122)
- `Indicators Reference <http://www.backtrader.com/docu/indautoref.html>`_
Python 2/3 Support
==================
- Python >= ``3.2``
- It also works with ``pypy`` and ``pypy3`` (no plotting - ``matplotlib`` is
not supported under *pypy*)
Installation
============
``backtrader`` is self-contained with no external dependencies (except if you
want to plot)
From *pypi*:
- ``pip install backtrader``
- ``pip install backtrader[plotting]``
If ``matplotlib`` is not installed and you wish to do some plotting
.. note:: The minimum matplotlib version is ``1.4.1``
An example for *IB* Data Feeds/Trading:
- ``IbPy`` doesn't seem to be in PyPi. Do either::
pip install git+https://github.com/blampe/IbPy.git
or (if ``git`` is not available in your system)::
pip install https://github.com/blampe/IbPy/archive/master.zip
For other functionalities like: ``Visual Chart``, ``Oanda``, ``TA-Lib``, check
the dependencies in the documentation.
From source:
- Place the *backtrader* directory found in the sources inside your project
Version numbering
=================
X.Y.Z.I
- X: Major version number. Should stay stable unless something big is changed
like an overhaul to use ``numpy``
- Y: Minor version number. To be changed upon adding a complete new feature or
(god forbids) an incompatible API change.
- Z: Revision version number. To be changed for documentation updates, small
changes, small bug fixes
- I: Number of Indicators already built into the platform
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
backtradermsms-1.9.75.123.tar.gz
(256.0 kB
view details)
Built Distribution
File details
Details for the file backtradermsms-1.9.75.123.tar.gz
.
File metadata
- Download URL: backtradermsms-1.9.75.123.tar.gz
- Upload date:
- Size: 256.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.6.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ec89e88c549c497cd2dbcbc7fe6dda4d786b3adca18fa33b41b8a3b351c62157 |
|
MD5 | 057e74eddeb498b5470483e1cf4249c7 |
|
BLAKE2b-256 | 71125ea0bfb8e4ebc926bfc5001d6ae190188cd3616fcd16abb16de42253b755 |
File details
Details for the file backtradermsms-1.9.75.123-py3-none-any.whl
.
File metadata
- Download URL: backtradermsms-1.9.75.123-py3-none-any.whl
- Upload date:
- Size: 807.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.23.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.54.1 CPython/3.6.9
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7c2f0d2808c806056affa73ef4020752af5dd1c03971031f57ddf19741ce12a7 |
|
MD5 | 219628144c6ec8ac5880728b62a270da |
|
BLAKE2b-256 | 42db24f8e3cdf9e8f8d150e1498495f75815605892ef233f7b143998be000244 |