kernc / Backtesting.py
Licence: agpl-3.0
🔎 📈 🐍 💰 Backtest trading strategies in Python.
Stars: ✭ 1,124
Programming Languages
python
139335 projects - #7 most used programming language
Labels
Projects that are alternatives of or similar to Backtesting.py
AutoTrader
A Python-based development platform for automated trading systems - from backtesting to optimisation to livetrading.
Stars: ✭ 227 (-79.8%)
Mutual labels: trading, forex, trading-strategies, trading-algorithms, stocks, algorithmic-trading
Turingtrader
The Open-Source Backtesting Engine/ Market Simulator by Bertram Solutions.
Stars: ✭ 132 (-88.26%)
Mutual labels: trading, algorithmic-trading, trading-strategies, trading-algorithms, stocks
Ta4j
A Java library for technical analysis.
Stars: ✭ 948 (-15.66%)
Mutual labels: trading, trading-strategies, trading-algorithms, stocks, forex
Jesse
An advanced crypto trading bot written in Python
Stars: ✭ 1,038 (-7.65%)
Mutual labels: trading, algorithmic-trading, trading-strategies, trading-algorithms, framework
Blankly
🚀 💸 Easily build, backtest and deploy your algo in just a few lines of code. Trade stocks, cryptos, and forex across exchanges w/ one package.
Stars: ✭ 1,456 (+29.54%)
Mutual labels: trading, trading-strategies, stocks, investment
Ta4j Origins
A Java library for technical analysis ***Not maintained anymore, kept for archival purposes, see #192***
Stars: ✭ 354 (-68.51%)
Mutual labels: trading, trading-strategies, trading-algorithms, forex
awesome-pinescript
A Comprehensive Collection of Everything Related to Tradingview Pine Script.
Stars: ✭ 563 (-49.91%)
Mutual labels: trading, trading-strategies, trading-algorithms, algorithmic-trading
Stocksharp
Algorithmic trading and quantitative trading open source platform to develop trading robots (stock markets, forex, crypto, bitcoins, and options).
Stars: ✭ 4,601 (+309.34%)
Mutual labels: trading, trading-strategies, stocks, forex
Socktrader
🚀 Websocket based trading bot for 💰cryptocurrencies 📈
Stars: ✭ 152 (-86.48%)
Mutual labels: trading, algorithmic-trading, trading-strategies, trading-algorithms
roq-samples
How to use the Roq C++20 API for Live Cryptocurrency Algorithmic and High-Frequency Trading as well as for Back-Testing and Historical Simulation
Stars: ✭ 119 (-89.41%)
Mutual labels: trading, trading-strategies, trading-algorithms, algorithmic-trading
Quantdom
Python-based framework for backtesting trading strategies & analyzing financial markets [GUI ]
Stars: ✭ 449 (-60.05%)
Mutual labels: trading, algorithmic-trading, trading-strategies, investment
Algotrading
Algorithmic trading framework for cryptocurrencies.
Stars: ✭ 249 (-77.85%)
Mutual labels: trading, algorithmic-trading, trading-algorithms, framework
Ta Rs
Technical analysis library for Rust language
Stars: ✭ 248 (-77.94%)
Mutual labels: trading, trading-strategies, trading-algorithms, stocks
Metatrader
Expert advisors, scripts, indicators and code libraries for Metatrader.
Stars: ✭ 99 (-91.19%)
Mutual labels: trading, forex, trading-strategies, trading-algorithms
Gym Anytrading
The most simple, flexible, and comprehensive OpenAI Gym trading environment (Approved by OpenAI Gym)
Stars: ✭ 627 (-44.22%)
Mutual labels: trading, trading-algorithms, stocks, forex
Openalgo
💹 openAlgo is a public repository for various work product relavant to algorithms and the high frequency low latency electronic trading space with a bias toward market microstructure as well as exchange traded futures and options.
Stars: ✭ 158 (-85.94%)
Mutual labels: trading, algorithmic-trading, trading-strategies, trading-algorithms
quick trade
convenient script for trading with python.
Stars: ✭ 63 (-94.4%)
Mutual labels: trading, trading-strategies, trading-algorithms, algorithmic-trading
Roq Api
API for algorithmic and high-frequency trading
Stars: ✭ 132 (-88.26%)
Mutual labels: trading, algorithmic-trading, trading-strategies, trading-algorithms
Sequence-to-Sequence-Learning-of-Financial-Time-Series-in-Algorithmic-Trading
My bachelor's thesis—analyzing the application of LSTM-based RNNs on financial markets. 🤓
Stars: ✭ 64 (-94.31%)
Mutual labels: trading, forex, trading-algorithms, algorithmic-trading
Lean
Lean Algorithmic Trading Engine by QuantConnect (Python, C#)
Stars: ✭ 5,675 (+404.89%)
Mutual labels: trading-strategies, trading-algorithms, forex, trading
Backtesting.py
Backtest trading strategies with Python.
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):
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:
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
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.
Note that the project description data, including the texts, logos, images, and/or trademarks,
for each open source project belongs to its rightful owner.
If you wish to add or remove any projects, please contact us at [email protected].