Leichtgewichtiges quantitatives Backtesting-Framework — Lokale PTrade-API-Simulation
Lokale Kompatibilität für eine getestete Teilmenge der PTrade-Backtest-APIs. Die Portierbarkeit hängt von den verwendeten APIs und dem Broker-Verhalten ab; siehe Support-Matrix. Siehe auch: ptradeAPI
| SimTradeLab | PTrade | |
|---|---|---|
| Geschwindigkeit | 100–160x schneller | Referenz |
| Startzeit | Unter einer Sekunde (Daten bleiben im Speicher) | Minuten |
| API-Abdeckung | Siehe getestete Support-Matrix | Vollplattform |
| Strategieportierung | Abhängig von der getesteten API-Teilmenge | Native Plattform |
| Umgebung | Lokal, kostenlos, Open Source | Cloud, lizenziert |
Kernfunktionen:
- ✅ Getestete API-Klassifizierung — Vollständige, teilweise, ausstehende und nicht unterstützte Funktionen stehen in der Support-Matrix
- ⚡ 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]Installation des Kommandozeilen-Einstiegspunkts prüfen:
simtradelab --help
simtradelab --versionDaten: Verwenden Sie SimTradeData zum Download historischer Daten für chinesische A-Aktien und US-Aktien.
Strategieumgebung: Lesen Sie die Laufzeitgrenzen für Strategien, bevor Strategiecode Dateien, externe Datensätze oder Netzwerkbibliotheken verwendet.
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
# --- i18n ---
locale='auto', # Log-Sprache: 'zh' | 'en' | 'de' (auto: CN-Markt→zh, sonst Systemsprache)
optimization_mode=False, # Optimierungsmodus (vom Optimierer gesteuert)
# --- Einstiegsdatei ---
strategy_file='backtest.py', # Einstiegsdatei: 'backtest.py' | 'live.py'
)
runner = BacktestRunner()
report = runner.run(config=config)Die aktuellen Klassifizierungen und Verhaltensnachweise finden Sie in der PTrade-Backtest-API-Support-Matrix.
| 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!