Skip to main content

📈 SimTradeLab

English | 中文 | Deutsch

Lightweight Quantitative Backtesting Framework — Local PTrade API Simulation

Python License License: Commercial Version PyPI PyPI - Downloads

Local compatibility for a tested subset of PTrade backtest APIs. Portability depends on the APIs and broker behavior a strategy uses; review the support matrix. See also: ptradeAPI


🎯 Why SimTradeLab?

SimTradeLab PTrade
Speed 100–160x faster Baseline
Startup Sub-second (data persists in memory) Minutes
API Coverage See the tested support matrix Full platform
Strategy Porting Depends on the tested API subset Native platform
Environment Local, free, open-source Cloud, licensed

Core capabilities:

  • ✅ Tested API classifications — current full, partial, pending, and unsupported behavior is tracked in the support matrix
  • ⚡ 100–160x faster than PTrade platform
  • 🚀 In-memory data persistence — singleton pattern, sub-second startup after first load
  • 💾 Multi-level caching — LRU caches for MA/VWAP/adjustment factors/history, >95% hit rate
  • 🧠 Smart data loading — AST analysis of strategy code, loads only required data
  • 🔧 Lifecycle control — 7 lifecycle phases, strict simulation of PTrade's API restrictions
  • 📊 Full stats reporting — returns, risk metrics (Sharpe/Sortino/Calmar), trade details, FIFO dividend tax, CSV export
  • 🔌 Multi-market — Built-in CN (A-shares) and US market profiles with automatic trading rule adaptation
  • 🌐 i18n — Backtest output in Chinese, English, or German

🚀 Need More? Try SimTradeDesk

SimTradeDesk is a professional desktop application built on SimTradeLab — no coding required.

Feature SimTradeLab (this repo) SimTradeDesk
Target users Developers & quant engineers All traders
Interface Python API Desktop GUI
Strategy editing Code editor Built-in editor with syntax highlighting
Visualization PNG charts Interactive real-time charts
Data management Manual setup One-click download & update
Parameter tuning Write code Visual optimizer

👉 Get SimTradeDesk →


📦 Quick Start

pip install simtradelab

# Optional: technical indicators (requires system ta-lib)
pip install simtradelab[indicators]

# Optional: parameter optimizer
pip install simtradelab[optimizer]

Verify the installed command-line entry point:

simtradelab --help
simtradelab --version

Data: Use SimTradeData to download China A-share and US stock historical data.

Strategy environment: Read the strategy runtime boundaries before using files, external datasets, or network libraries in strategy code.

Run a backtest:

from simtradelab.backtest.runner import BacktestRunner
from simtradelab.backtest.config import BacktestConfig

config = BacktestConfig(
    # --- Required ---
    strategy_name='my_strategy',       # Strategy folder name under strategies/
    start_date='2024-01-01',           # Backtest start date
    end_date='2024-12-31',             # Backtest end date

    # --- Capital & Market ---
    initial_capital=100000.0,          # Starting capital (must be > 0)
    market='CN',                       # Market: 'CN' (A-shares) | 'US'
    broker_profile='auto',             # Broker API profile: 'auto' | 'guosheng' | 'dongguan' | 'shanxi'
    t_plus_1=None,                     # T+1 override: None=market default (CN=True, US=False)
    benchmark_code='',                 # Benchmark code, empty=market default

    # --- Frequency ---
    frequency='1d',                    # Bar frequency: '1d' (daily) | '1m' (minute)

    # --- Paths ---
    data_path='~/.simtradelab/data',   # Market data directory
    strategies_path='./strategies',    # Strategies root directory

    # --- Performance ---
    enable_multiprocessing=True,       # Enable parallel data loading
    num_workers=None,                  # Worker count (None=auto, must be >= 1)
    use_data_server=True,              # Use in-memory data server (singleton)

    # --- Output ---
    enable_charts=True,                # Generate PNG chart
    enable_logging=True,               # Write log file
    enable_export=False,               # Export trade details to CSV

    # --- i18n ---
    locale='auto',                     # Log language: 'zh' | 'en' | 'de' (auto: CN market→zh, else system locale)
    optimization_mode=False,           # Optimization mode: skip validation/logging (managed by optimizer)

    # --- Entry file ---
    strategy_file='backtest.py',       # Entry file: 'backtest.py' | 'live.py'
)
runner = BacktestRunner()
report = runner.run(config=config)

📚 API Overview

See the tested PTrade backtest API support matrix for the current classifications and behavioral evidence.

Category APIs
Trading order, order_target, order_value, order_target_value, cancel_order, get_positions, get_trades
Data get_price, get_history, get_fundamentals, get_stock_info
Sector get_index_stocks, get_industry_stocks, get_stock_blocks
Indicators get_MACD, get_KDJ, get_RSI, get_CCI
Config set_benchmark, set_commission, set_slippage, set_universe, set_parameters
Lifecycle initialize, before_trading_start, handle_data, after_trading_end

📄 License

Dual license model:


🤝 Contributing

  • 🐛 Report issues
  • 💻 Implement missing API features
  • 📚 Improve documentation

See CONTRIBUTING.md for CLA details.


⚖️ Disclaimer

SimTradeLab is a community-developed, open-source backtesting framework inspired by PTrade's event-driven design. It does not contain PTrade's source code, trademarks, or any protected content. This project is not affiliated with or endorsed by PTrade. Users are responsible for compliance with local regulations and platform terms.


⭐ Star this project if you find it useful!

🐛 Report Issue | 💡 Feature Request | 🖥️ SimTradeDesk


💖 Sponsor

If this project helps you, consider sponsoring!

WeChat Pay Alipay

Metadata

Release files for simtradelab 2.13.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for simtradelab 2.13.6
File Size Uploaded
simtradelab-2.13.6.tar.gz 132.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for simtradelab 2.13.6
File Interpreter ABI Platform
simtradelab-2.13.6-py3-none-any.whl Python 3 none any Details

Total release size: 290.0 kB

Release files / simtradelab-2.13.6.tar.gz

Download URL simtradelab-2.13.6.tar.gz
Size 132.6 kB
Tags Source
SHA-256 checksum
How to use checksums
f5c946a540303415d4903f9f210b928e04ef44e9d7d04d464c38e865ea275fbc
BLAKE2b-256 checksum
How to use checksums
b7002c9159c55058b47dd64f9fd514b205b1692714edfe30b0ed0c625e073f7b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release files / simtradelab-2.13.6-py3-none-any.whl

Download URL simtradelab-2.13.6-py3-none-any.whl
Size 157.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a4a86bb7ba32492d96989feb438422d215fc27799e4eb4b26c141c76531351c2
BLAKE2b-256 checksum
How to use checksums
32fedb65bd5940fbbfbcf1d84ec1a0babb1ed80ebe5ded3e21b81b622aeaf00d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 12, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

2.13.6 This release

2 release files

2.13.5

2 release files

2.13.3

2 release files

2.13.2

2 release files

2.13.1

2 release files

2.13.0

2 release files

2.12.2

2 release files

2.12.1

2 release files

2.12.0

2 release files

2.11.0

2 release files

2.10.2

2 release files

2.10.1

2 release files

2.10.0

2 release files

2.9.0

2 release files

2.8.1

2 release files

2.8.0

2 release files

2.7.0

2 release files

2.6.1

2 release files

2.6.0

2 release files

2.5.0

2 release files

2.4.2

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.0

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.0

2 release files

1.2.4

2 release files

1.2.3

2 release files

1.2.2

2 release files

1.2.1

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page