Programm zur Leistungsoptimierung
Um das Problem des langsamen Backtestings zu lösen, kann die Effizienz durch die folgenden Methoden verbessert werden:
- Vorverarbeitung der Daten::
1. die historischen CSV-Daten in MongoDB/MySQL vorimportieren.
2. die Erstellung von Zeitstempel-Indizesdb.bar_data.create_index([("datetime", ASCENDING)]) - Backtest in Stapeln::
- ausnutzenoptimize()Festlegung einer angemessenen Schrittweite für die Funktion
- Konsolidierte Ergebnisse nach Einzeltests nach Jahr/Quartal - Hardware-Beschleunigung::
- Aktivieren des Multiprozessmodus (erfordert Modifikation)backtesting.py)
- Verwendung von GPU-Beschleunigungsbibliotheken wie Numba zur Änderung der Kernfunktionen von Richtlinien - Optimierung auf Code-Ebene::
- Vermeiden Sie die Ausführung von Datenbankabfragen innerhalb von Schleifen
- Ersetzen der nativen Python-Listenoperationen durch NumPy
- Echtzeitkartenausgabe deaktivieren (Einstellung)output=False)
Förderprogramm:
- Verwendung der verteilten Backtesting-Komponente vnpy_portfoliostrategy
- Mieten Sie einen Cloud-Server, um die eigenständige Leistung zu verbessern (empfohlene Konfiguration mit 16 Kernen und 32 GB)
Diese Antwort stammt aus dem ArtikelVeighNa: ein in China beliebtes Open-Source-System für den quantitativen HandelDie































