Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
95 lines (74 sloc) 2.9 KB

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
You can’t perform that action at this time.