Skip to main content

Backtest trading strategies in Python

Project description

Backtesting.py

Build Status Code Coverage Backtesting on PyPI

Backtest trading strategies with Python.

Project website

Documentation

Installation

$ pip install backtesting

Usage

from backtesting import Backtest, Strategy
from backtesting.lib import crossover

from backtesting.test import SMA, GOOG


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

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


bt = Backtest(GOOG, SmaCross,
              cash=10000, commission=.002)
bt.run()
bt.plot()

Results in:

Start                     2004-08-19 00:00:00
End                       2013-03-01 00:00:00
Duration                   3116 days 00:00:00
Exposure [%]                            94.29
Equity Final [$]                     69665.12
Equity Peak [$]                      69722.15
Return [%]                             596.65
Buy & Hold Return [%]                  703.46
Max. Drawdown [%]                      -33.61
Avg. Drawdown [%]                       -5.68
Max. Drawdown Duration      689 days 00:00:00
Avg. Drawdown Duration       41 days 00:00:00
# Trades                                   93
Win Rate [%]                            53.76
Best Trade [%]                          56.98
Worst Trade [%]                        -17.03
Avg. Trade [%]                           2.44
Max. Trade Duration         121 days 00:00:00
Avg. Trade Duration          32 days 00:00:00
Expectancy [%]                           6.92
SQN                                      1.77
Sharpe Ratio                             0.22
Sortino Ratio                            0.54
Calmar Ratio                             0.07
_strategy                            SmaCross

plot of trading simulation

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Backtesting-0.1.2.tar.gz (158.4 kB view details)

Uploaded Source

File details

Details for the file Backtesting-0.1.2.tar.gz.

File metadata

  • Download URL: Backtesting-0.1.2.tar.gz
  • Upload date:
  • Size: 158.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.36.1 CPython/3.7.3

File hashes

Hashes for Backtesting-0.1.2.tar.gz
Algorithm Hash digest
SHA256 a49b89fbc4acc861424d9dba5af62583a9ac2cd18bd7ba78894393fd7766c7d2
MD5 8838e24e9ccf89c891f5aada04e84c0b
BLAKE2b-256 cb0878f3cddd05554662737a05a085adaa2aec492272d5cc30cec519b6acde3b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page