返回排行榜

kernc/backtesting.py

Pythonkernc.github.io/backtesting.py/

🔎 📈 🐍 💰 Backtest trading strategies in Python.

tradingtrading-strategiestrading-algorithmstrading-simulatorbacktestingbacktesting-trading-strategiesbacktesting-enginebacktesting-frameworksinvestmentinvestinginvestment-strategiesforex
Star 增长趋势
Star
8.7k
Forks
1.5k
周增长
Issues
48
5k
2019年1月2021年7月2024年1月2026年7月
制品库PyPIpip install backtesting.py
README

Backtesting.py

Build Status Code Coverage Source lines of code Backtesting on PyPI PyPI downloads Total downloads Stars GitHub Sponsors

Backtest trading strategies with Python.

Project website + Documentation   |  YouTube

Installation

$ pip install backtesting

Or if you prefer the bleeding edge:

$ pip install git+https://github.com/kernc/backtesting.py

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
CAGR [%]                                16.80
Sharpe Ratio                             0.66
Sortino Ratio                            1.30
Calmar Ratio                             0.77
Alpha [%]                              450.62
Beta                                     0.02
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

Find more usage examples in the documentation.

Features

xkcd.com/1570

Bugs

Before reporting bugs or posting to the discussion board, please read contributing guidelines, particularly the section about crafting useful bug reports and ```-fencing your code. The maintainers thank you!

Alternatives

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

相关仓库
TauricResearch/TradingAgents

TradingAgents: Multi-Agents LLM Financial Trading Framework

PythonPyPIApache License 2.0agentfinance
arxiv.org/pdf/2412.20138
94k18.2k
vnpy/vnpy

基于Python的开源量化交易平台开发框架

PythonPyPIMIT Licensetradinginvestment
vnpy.com
43.4k12.2k
ccxt/ccxt

A unified trading API with more than 100 crypto exchanges and prediction markets in JavaScript / TypeScript / Python / C# / PHP / Go / Java

PythonPyPIMIT Licensealtcoinapi
docs.ccxt.com
43.4k8.8k
Fincept-Corporation/FinceptTerminal

FinceptTerminal is a modern finance application offering advanced market analytics, investment research, and economic data tools, designed for interactive exploration and data-driven decision-making in a user-friendly environment.

C++Otherbloomberg-terminalfinance
fincept.in
28.8k4k
HKUDS/Vibe-Trading

"Vibe-Trading: Your Personal Trading Agent"

PythonPyPIMIT Licensebacktestingmulti-agent
vibetrading.wiki
26.2k4.3k
nautechsystems/nautilus_trader

Production-grade Rust-native trading engine with deterministic event-driven architecture

Rustcrates.ioGNU Lesser General Public License v3.0algorithmic-trading-enginetrading-platform
nautilustrader.io
24.9k3.2k
mementum/backtrader

Python Backtesting library for trading strategies

PythonPyPIGNU General Public License v3.0pythontrading
backtrader.com
22.5k5.2k
QuantConnect/Lean

Lean Algorithmic Trading Engine by QuantConnect (Python, C#)

C#Apache License 2.0c-sharpalgorithmic-trading-engine
lean.io
20.6k5.1k
stefan-jansen/machine-learning-for-trading

Code for Machine Learning for Trading, 3rd edition — from data sourcing to live execution.

Jupyter NotebookMIT Licensemachine-learningtrading
ml4trading.io
20k5.4k
hummingbot/hummingbot

Open source software that helps you create and deploy high-frequency crypto trading bots

PythonPyPIApache License 2.0cryptocurrencyarbitrage
hummingbot.org
19.2k4.8k
bbfamily/abu

阿布量化交易系统(股票,期权,期货,比特币,机器学习) 基于python的开源量化交易,量化投资架构

PythonPyPIGNU General Public License v3.0quanttrade
abuquant.com
17.9k4.6k
NoFxAiOS/nofx

Your AI trading terminal assistant for US stocks, commodities, forex, and crypto.

GoGo ModulesGNU Affero General Public License v3.0ai-tradingagentictrading
vergex.trade
12.6k3k