Skip to content

Repository files navigation

Backtesting.py

Build StatusCode CoverageBacktesting on PyPIPyPI downloadsGitHub Sponsors

Backtest trading strategies with Python.

Project website

Documentation

Star the project if you use it.

Installation

$ pip install backtesting

Usage

frombacktestingimportBacktest, Strategyfrombacktesting.libimportcrossoverfrombacktesting.testimportSMA, GOOGclassSmaCross(Strategy):
definit(self):
price=self.data.Closeself.ma1=self.I(SMA, price, 10)
self.ma2=self.I(SMA, price, 20)
defnext(self):
ifcrossover(self.ma1, self.ma2):
self.buy()
elifcrossover(self.ma2, self.ma1):
self.sell()
bt=Backtest(GOOG, SmaCross, commission=.002,
exclusive_orders=True)
stats=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 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
_strategy SmaCross(n1=10, n2=20)
_equity_curve Equ...
_trades Size EntryB...
dtype: object

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

Alternatives

See alternatives.md for a list of alternative Python backtesting frameworks and related packages.

About

🔎 📈 🐍 💰 Backtest trading strategies in Python.

Resources

Contributing

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages