multibacktesting


Namemultibacktesting JSON
Version 0.0.7 PyPI version JSON
download
home_pagehttps://kernc.github.io/backtesting.py/
SummaryBacktest trading strategies in Python
upload_time2024-07-08 07:09:21
maintainerNone
docs_urlNone
authorZach Lûster
requires_python>=3.6
licenseAGPL-3.0
keywords algo algorithmic ashi backtest backtesting bitcoin bokeh bonds candle candlestick cboe chart cme commodities crash crypto currency doji drawdown equity etf ethereum exchange finance financial forecast forex fund futures fx fxpro gold heiken historical indicator invest investing investment macd market mechanical money oanda ohlc ohlcv order price profit quant quantitative rsi silver simulation stocks strategy ticker trader trading tradingview usd
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            [![](https://i.imgur.com/E8Kj69Y.png)](https://kernc.github.io/backtesting.py/)

Backtesting.py
==============
[![Build Status](https://img.shields.io/github/actions/workflow/status/kernc/backtesting.py/ci.yml?branch=master&style=for-the-badge)](https://github.com/kernc/backtesting.py/actions)
[![Code Coverage](https://img.shields.io/codecov/c/gh/kernc/backtesting.py.svg?style=for-the-badge)](https://codecov.io/gh/kernc/backtesting.py)
[![Backtesting on PyPI](https://img.shields.io/pypi/v/backtesting.svg?color=blue&style=for-the-badge)](https://pypi.org/project/backtesting)
[![PyPI downloads](https://img.shields.io/pypi/dd/backtesting.svg?color=skyblue&style=for-the-badge)](https://pypi.org/project/backtesting)
[![GitHub Sponsors](https://img.shields.io/github/sponsors/kernc?color=pink&style=for-the-badge)](https://github.com/sponsors/kernc)

Backtest trading strategies with Python.

[**Project website**](https://kernc.github.io/backtesting.py) + [Documentation]

[Documentation]: https://kernc.github.io/backtesting.py/doc/backtesting/


Installation
------------

    $ pip install backtesting


Usage
-----
```python
from backtesting import Backtest, Strategy
from backtesting.lib import crossover

from backtesting.test import SMA, GOOG


class SmaCross(Strategy):
    def init(self):
        price = self.data.Close
        self.ma1 = self.I(SMA, price, 10)
        self.ma2 = self.I(SMA, price, 20)

    def next(self):
        if crossover(self.ma1, self.ma2):
            self.buy()
        elif crossover(self.ma2, self.ma1):
            self.sell()


bt = Backtest(GOOG, SmaCross, commission=.002,
              exclusive_orders=True)
stats = bt.run()
bt.plot()
```

Results in:

```text
Start                     2004-08-19 00:00:00
End                       2013-03-01 00:00:00
Duration                   3116 days 00:00:00
Exposure Time [%]                       94.27
Equity Final [$]                     68935.12
Equity Peak [$]                      68991.22
Return [%]                             589.35
Buy & Hold Return [%]                  703.46
Return (Ann.) [%]                       25.42
Volatility (Ann.) [%]                   38.43
Sharpe Ratio                             0.66
Sortino Ratio                            1.30
Calmar Ratio                             0.77
Max. Drawdown [%]                      -33.08
Avg. Drawdown [%]                       -5.58
Max. Drawdown Duration      688 days 00:00:00
Avg. Drawdown Duration       41 days 00:00:00
# Trades                                   93
Win Rate [%]                            53.76
Best Trade [%]                          57.12
Worst Trade [%]                        -16.63
Avg. Trade [%]                           1.96
Max. Trade Duration         121 days 00:00:00
Avg. Trade Duration          32 days 00:00:00
Profit Factor                            2.13
Expectancy [%]                           6.91
SQN                                      1.78
Kelly Criterion                        0.6134
_strategy              SmaCross(n1=10, n2=20)
_equity_curve                          Equ...
_trades                       Size  EntryB...
dtype: object
```
[![plot of trading simulation](https://i.imgur.com/xRFNHfg.png)](https://kernc.github.io/backtesting.py/#example)

Find more usage examples in the [documentation].


Features
--------
* Simple, well-documented API
* Blazing fast execution
* Built-in optimizer
* Library of composable base strategies and utilities
* Indicator-library-agnostic
* Supports _any_ financial instrument with candlestick data
* Detailed results
* Interactive visualizations

![xkcd.com/1570](https://imgs.xkcd.com/comics/engineer_syllogism.png)


Bugs
----
Before reporting bugs or posting to the
[discussion board](https://github.com/kernc/backtesting.py/discussions),
please read [contributing guidelines](CONTRIBUTING.md), particularly the section
about crafting useful bug reports and ```` ``` ````-fencing your code. We thank you!


Alternatives
------------
See [alternatives.md] for a list of alternative Python
backtesting frameworks and related packages.

[alternatives.md]: https://github.com/kernc/backtesting.py/blob/master/doc/alternatives.md

            

Raw data

            {
    "_id": null,
    "home_page": "https://kernc.github.io/backtesting.py/",
    "name": "multibacktesting",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": null,
    "keywords": "algo, algorithmic, ashi, backtest, backtesting, bitcoin, bokeh, bonds, candle, candlestick, cboe, chart, cme, commodities, crash, crypto, currency, doji, drawdown, equity, etf, ethereum, exchange, finance, financial, forecast, forex, fund, futures, fx, fxpro, gold, heiken, historical, indicator, invest, investing, investment, macd, market, mechanical, money, oanda, ohlc, ohlcv, order, price, profit, quant, quantitative, rsi, silver, simulation, stocks, strategy, ticker, trader, trading, tradingview, usd",
    "author": "Zach L\u00fbster",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/b9/71/803de45eb9993570a9ff74c454877550e8e7e16a71155afaf852d381696c/multibacktesting-0.0.7.tar.gz",
    "platform": null,
    "description": "[![](https://i.imgur.com/E8Kj69Y.png)](https://kernc.github.io/backtesting.py/)\r\n\r\nBacktesting.py\r\n==============\r\n[![Build Status](https://img.shields.io/github/actions/workflow/status/kernc/backtesting.py/ci.yml?branch=master&style=for-the-badge)](https://github.com/kernc/backtesting.py/actions)\r\n[![Code Coverage](https://img.shields.io/codecov/c/gh/kernc/backtesting.py.svg?style=for-the-badge)](https://codecov.io/gh/kernc/backtesting.py)\r\n[![Backtesting on PyPI](https://img.shields.io/pypi/v/backtesting.svg?color=blue&style=for-the-badge)](https://pypi.org/project/backtesting)\r\n[![PyPI downloads](https://img.shields.io/pypi/dd/backtesting.svg?color=skyblue&style=for-the-badge)](https://pypi.org/project/backtesting)\r\n[![GitHub Sponsors](https://img.shields.io/github/sponsors/kernc?color=pink&style=for-the-badge)](https://github.com/sponsors/kernc)\r\n\r\nBacktest trading strategies with Python.\r\n\r\n[**Project website**](https://kernc.github.io/backtesting.py) + [Documentation]\r\n\r\n[Documentation]: https://kernc.github.io/backtesting.py/doc/backtesting/\r\n\r\n\r\nInstallation\r\n------------\r\n\r\n    $ pip install backtesting\r\n\r\n\r\nUsage\r\n-----\r\n```python\r\nfrom backtesting import Backtest, Strategy\r\nfrom backtesting.lib import crossover\r\n\r\nfrom backtesting.test import SMA, GOOG\r\n\r\n\r\nclass SmaCross(Strategy):\r\n    def init(self):\r\n        price = self.data.Close\r\n        self.ma1 = self.I(SMA, price, 10)\r\n        self.ma2 = self.I(SMA, price, 20)\r\n\r\n    def next(self):\r\n        if crossover(self.ma1, self.ma2):\r\n            self.buy()\r\n        elif crossover(self.ma2, self.ma1):\r\n            self.sell()\r\n\r\n\r\nbt = Backtest(GOOG, SmaCross, commission=.002,\r\n              exclusive_orders=True)\r\nstats = bt.run()\r\nbt.plot()\r\n```\r\n\r\nResults in:\r\n\r\n```text\r\nStart                     2004-08-19 00:00:00\r\nEnd                       2013-03-01 00:00:00\r\nDuration                   3116 days 00:00:00\r\nExposure Time [%]                       94.27\r\nEquity Final [$]                     68935.12\r\nEquity Peak [$]                      68991.22\r\nReturn [%]                             589.35\r\nBuy & Hold Return [%]                  703.46\r\nReturn (Ann.) [%]                       25.42\r\nVolatility (Ann.) [%]                   38.43\r\nSharpe Ratio                             0.66\r\nSortino Ratio                            1.30\r\nCalmar Ratio                             0.77\r\nMax. Drawdown [%]                      -33.08\r\nAvg. Drawdown [%]                       -5.58\r\nMax. Drawdown Duration      688 days 00:00:00\r\nAvg. Drawdown Duration       41 days 00:00:00\r\n# Trades                                   93\r\nWin Rate [%]                            53.76\r\nBest Trade [%]                          57.12\r\nWorst Trade [%]                        -16.63\r\nAvg. Trade [%]                           1.96\r\nMax. Trade Duration         121 days 00:00:00\r\nAvg. Trade Duration          32 days 00:00:00\r\nProfit Factor                            2.13\r\nExpectancy [%]                           6.91\r\nSQN                                      1.78\r\nKelly Criterion                        0.6134\r\n_strategy              SmaCross(n1=10, n2=20)\r\n_equity_curve                          Equ...\r\n_trades                       Size  EntryB...\r\ndtype: object\r\n```\r\n[![plot of trading simulation](https://i.imgur.com/xRFNHfg.png)](https://kernc.github.io/backtesting.py/#example)\r\n\r\nFind more usage examples in the [documentation].\r\n\r\n\r\nFeatures\r\n--------\r\n* Simple, well-documented API\r\n* Blazing fast execution\r\n* Built-in optimizer\r\n* Library of composable base strategies and utilities\r\n* Indicator-library-agnostic\r\n* Supports _any_ financial instrument with candlestick data\r\n* Detailed results\r\n* Interactive visualizations\r\n\r\n![xkcd.com/1570](https://imgs.xkcd.com/comics/engineer_syllogism.png)\r\n\r\n\r\nBugs\r\n----\r\nBefore reporting bugs or posting to the\r\n[discussion board](https://github.com/kernc/backtesting.py/discussions),\r\nplease read [contributing guidelines](CONTRIBUTING.md), particularly the section\r\nabout crafting useful bug reports and ```` ``` ````-fencing your code. We thank you!\r\n\r\n\r\nAlternatives\r\n------------\r\nSee [alternatives.md] for a list of alternative Python\r\nbacktesting frameworks and related packages.\r\n\r\n[alternatives.md]: https://github.com/kernc/backtesting.py/blob/master/doc/alternatives.md\r\n",
    "bugtrack_url": null,
    "license": "AGPL-3.0",
    "summary": "Backtest trading strategies in Python",
    "version": "0.0.7",
    "project_urls": {
        "Documentation": "https://kernc.github.io/backtesting.py/doc/backtesting/",
        "Homepage": "https://kernc.github.io/backtesting.py/",
        "Source": "https://github.com/Scottman625/backtesting.py/",
        "Tracker": "https://github.com/Scottman625/backtesting.py/issues"
    },
    "split_keywords": [
        "algo",
        " algorithmic",
        " ashi",
        " backtest",
        " backtesting",
        " bitcoin",
        " bokeh",
        " bonds",
        " candle",
        " candlestick",
        " cboe",
        " chart",
        " cme",
        " commodities",
        " crash",
        " crypto",
        " currency",
        " doji",
        " drawdown",
        " equity",
        " etf",
        " ethereum",
        " exchange",
        " finance",
        " financial",
        " forecast",
        " forex",
        " fund",
        " futures",
        " fx",
        " fxpro",
        " gold",
        " heiken",
        " historical",
        " indicator",
        " invest",
        " investing",
        " investment",
        " macd",
        " market",
        " mechanical",
        " money",
        " oanda",
        " ohlc",
        " ohlcv",
        " order",
        " price",
        " profit",
        " quant",
        " quantitative",
        " rsi",
        " silver",
        " simulation",
        " stocks",
        " strategy",
        " ticker",
        " trader",
        " trading",
        " tradingview",
        " usd"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "a5154acd39e08bcc0c95952bc246dd1f39f168cf1e8ff1e8fdeb0983e5e145fa",
                "md5": "4e9f6afb5af27381462b04deca427c5b",
                "sha256": "fd5ec61c814d98bd1fa7efda3ab11f30fd4120f07662ef23cb379f1a6d3dbe5b"
            },
            "downloads": -1,
            "filename": "multibacktesting-0.0.7-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "4e9f6afb5af27381462b04deca427c5b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 179631,
            "upload_time": "2024-07-08T07:09:16",
            "upload_time_iso_8601": "2024-07-08T07:09:16.301990Z",
            "url": "https://files.pythonhosted.org/packages/a5/15/4acd39e08bcc0c95952bc246dd1f39f168cf1e8ff1e8fdeb0983e5e145fa/multibacktesting-0.0.7-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b971803de45eb9993570a9ff74c454877550e8e7e16a71155afaf852d381696c",
                "md5": "b97ec3b8a387b9bedf9dc33a661eff91",
                "sha256": "33445bb0c9202cb5eacc573e383298582382db9786d37a0d8ca5a557c45883bc"
            },
            "downloads": -1,
            "filename": "multibacktesting-0.0.7.tar.gz",
            "has_sig": false,
            "md5_digest": "b97ec3b8a387b9bedf9dc33a661eff91",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 1829581,
            "upload_time": "2024-07-08T07:09:21",
            "upload_time_iso_8601": "2024-07-08T07:09:21.236523Z",
            "url": "https://files.pythonhosted.org/packages/b9/71/803de45eb9993570a9ff74c454877550e8e7e16a71155afaf852d381696c/multibacktesting-0.0.7.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-07-08 07:09:21",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "Scottman625",
    "github_project": "backtesting.py",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "requirements": [],
    "lcname": "multibacktesting"
}
        
Elapsed time: 0.61304s