Leichtgewichtiges quantitatives Backtesting-Framework — Lokale PTrade-API-Simulation
Vollständige PTrade-API-Simulation — Strategien laufen nahtlos zwischen SimTradeLab und PTrade. Siehe auch: ptradeAPI
| SimTradeLab | PTrade | |
|---|---|---|
| Geschwindigkeit | 100–160x schneller | Referenz |
| Startzeit | Unter einer Sekunde (Daten bleiben im Speicher) | Minuten |
| API-Abdeckung | 46 Backtest-/Research-APIs | Vollplattform |
| Strategieportierung | Keine Codeänderungen | Keine Codeänderungen |
| Umgebung | Lokal, kostenlos, Open Source | Cloud, lizenziert |
Kernfunktionen:
- ✅ 62 APIs — 100% Abdeckung für Aktien-Backtesting (Tages- und Minutenbalken)
- ⚡ 100–160x schneller als die PTrade-Plattform
- 🚀 In-Memory-Datenpersistenz — Singleton-Muster, Start unter einer Sekunde nach dem ersten Laden
- 💾 Mehrstufiges Caching — LRU-Caches für MA/VWAP/Anpassungsfaktoren/Historie, >95% Trefferquote
- 🧠 Intelligentes Datenladen — AST-Analyse des Strategiecodes, lädt nur benötigte Daten
- 🔧 Lebenszyklussteuerung — 7 Lebenszyklusphasen, strikte Simulation der PTrade-API-Beschränkungen
- 📊 Vollständige Statistikberichte — Renditen, Risikokennzahlen (Sharpe/Sortino/Calmar), Handelsdetails, FIFO-Dividendensteuer, CSV-Export
- 🔌 Multi-Markt — Integrierte CN (A-Aktien) und US-Marktprofile mit automatischer Handelsregelanpassung
- 🌐 i18n — Backtest-Ausgabe auf Chinesisch, Englisch oder Deutsch
SimTradeDesk ist eine professionelle Desktop-Anwendung auf Basis von SimTradeLab — keine Programmierung erforderlich.
| Funktion | SimTradeLab (dieses Repo) | SimTradeDesk |
|---|---|---|
| Zielgruppe | Entwickler & Quant-Ingenieure | Alle Trader |
| Oberfläche | Python-API | Desktop-GUI |
| Strategiebearbeitung | Code-Editor | Integrierter Editor mit Syntaxhervorhebung |
| Visualisierung | PNG-Charts | Interaktive Echtzeit-Charts |
| Datenverwaltung | Manuelle Einrichtung | Ein-Klick-Download & Update |
| Parameteroptimierung | Code schreiben | Visueller Optimierer |
👉 SimTradeDesk herunterladen →
pip install simtradelab
# Optional: Technische Indikatoren (erfordert System-ta-lib)
pip install simtradelab[indicators]
# Optional: Parameteroptimierung
pip install simtradelab[optimizer]Daten: Verwenden Sie SimTradeData zum Download historischer Daten für chinesische A-Aktien und US-Aktien.
Backtest ausführen:
from simtradelab.backtest.runner import BacktestRunner
from simtradelab.backtest.config import BacktestConfig
config = BacktestConfig(
# --- Pflichtfelder ---
strategy_name='my_strategy', # Strategieordner unter strategies/
start_date='2024-01-01', # Backtest-Startdatum
end_date='2024-12-31', # Backtest-Enddatum
# --- Kapital & Markt ---
# initial_capital=100000.0, # Startkapital (muss > 0 sein)
# market='CN', # Markt: 'CN' (A-Aktien) | 'US'
# broker_profile='auto', # Broker-API-Profil: 'auto' | 'guosheng' | 'dongguan' | 'shanxi'
# t_plus_1=None, # T+1-Override: None=Marktstandard (CN=True, US=False)
# benchmark_code='', # Benchmark-Code, leer=Marktstandard
# --- Frequenz ---
# frequency='1d', # Balkenfrequenz: '1d' (täglich) | '1m' (Minute)
# --- Pfade ---
# data_path='~/.simtradelab/data', # Marktdatenverzeichnis
# strategies_path='./strategies', # Strategien-Stammverzeichnis
# --- Leistung ---
# enable_multiprocessing=True, # Paralleles Datenladen aktivieren
# num_workers=None, # Anzahl Worker (None=auto, muss >= 1 sein)
# use_data_server=True, # In-Memory-Datenserver verwenden (Singleton)
# --- Ausgabe ---
# enable_charts=True, # PNG-Chart generieren
# enable_logging=True, # Logdatei schreiben
# enable_export=False, # Handelsdetails als CSV exportieren
# --- Sandbox & i18n ---
# sandbox=True, # PTrade-Sandbox: Import- & Builtin-Beschränkungen
# locale='auto', # Log-Sprache: 'zh' | 'en' | 'de' (auto: CN-Markt→zh, sonst Systemsprache)
# optimization_mode=False, # Optimierungsmodus: Validierung/Datenanalyse/Log-Setup überspringen (vom Optimierer gesteuert)
# --- Einstiegsdatei ---
# strategy_file='backtest.py', # Einstiegsdatei: 'backtest.py' | 'live.py'
)
runner = BacktestRunner()
report = runner.run(config=config)46 Backtest-/Research-APIs — 100% Abdeckung für Aktien-Backtesting.
| Kategorie | APIs |
|---|---|
| Handel | order, order_target, order_value, order_target_value, cancel_order, get_positions, get_trades |
| Daten | get_price, get_history, get_fundamentals, get_stock_info |
| Sektoren | get_index_stocks, get_industry_stocks, get_stock_blocks |
| Indikatoren | get_MACD, get_KDJ, get_RSI, get_CCI |
| Konfiguration | set_benchmark, set_commission, set_slippage, set_universe, set_parameters |
| Lebenszyklus | initialize, before_trading_start, handle_data, after_trading_end |
Doppellizenz-Modell:
- AGPL-3.0 — Kostenlos für Open-Source-Projekte und persönliche Forschung. Siehe LICENSE
- Kommerzielle Lizenz — Für Closed-Source / kommerzielle Nutzung. Siehe LICENSE-COMMERCIAL.md oder kontaktieren Sie kayou@duck.com
- 🐛 Fehler melden
- 💻 Fehlende API-Funktionen implementieren
- 📚 Dokumentation verbessern
Siehe CONTRIBUTING.md für CLA-Details.
SimTradeLab ist ein von der Community entwickeltes Open-Source-Backtesting-Framework, inspiriert vom ereignisgesteuerten Design von PTrade. Es enthält keinen Quellcode, keine Marken oder geschützte Inhalte von PTrade. Dieses Projekt ist weder mit PTrade verbunden noch von PTrade unterstützt. Benutzer sind für die Einhaltung lokaler Vorschriften und Plattformbedingungen verantwortlich.
⭐ Wenn dieses Projekt Ihnen hilft, geben Sie uns einen Stern!
🐛 Fehler melden | 💡 Feature-Anfrage | 🖥️ SimTradeDesk
Wenn dieses Projekt Ihnen hilft, erwägen Sie eine Spende!