4. Aufzeichnungen des Transaktionsprozesses
4.1. Handelsprotokoll aktivieren
Legen Sie trade_log=True in qt.run(…, trade_log=True) fest, um jeden Trade während des Backtestings aufzuzeichnen. Zugehörige Einstellungen (z. B. der Protokollspeicherpfad) hängen von qt.configure() oder der Laufzeitumgebung ab.
4.2. Beschreibung des Protokollinhalts
Das Handelsprotokoll umfasst normalerweise die folgenden Felder (listen Sie sie auf und erläutern Sie sie kurz); die tatsächliche Leistung ist maßgebend:
Feld |
Bedeutung |
|---|---|
Uhrzeit/Datum |
Ausführungszeit oder -datum. |
Zugrundeliegend |
Aktien-/Vertragscode. |
Richtung |
Kaufen/Verkaufen. |
Preis |
Ausführungspreis. |
Menge |
Ausgeführte Menge. |
Menge |
Ausgeführter Betrag. |
Gebühr |
Provisionen, Stempelsteuer usw. |
Notiz |
Weitere Notizen (falls vorhanden). |
4.3. Ansehen und speichern
Ansicht: Nach Abschluss des Backtests können Sie trade_log über das Ergebnisobjekt oder die API lesen (z. B. als DataFrame oder Dateipfad).
Speichern: Wenn das Framework Protokolle in eine Datei schreibt, wird der Pfad durch das Konfigurationselement trade_log_file_path bestimmt (unterstützt relative/absolute/Home-Verzeichnispfade; kann über qt.configure() im laufenden Betrieb geändert werden). Einzelheiten finden Sie in der API-Dokumentation.
Protokollrotation (rotieren): Wenn trade_log_keep_days eine positive Ganzzahl ist, führt qteasy eine Bereinigung des aktuellen Verzeichnisses trade_log_file_path basierend auf diesem Aufbewahrungszeitraum durch nachdem der Prozess gestartet und das Modul „qteasy“ erfolgreich importiert wurde: Es löscht „trade_log_.csv“, „trade_summary_.csv“ und
value_curve_*.csvälter als der Aufbewahrungszeitraum (der Zeitstempel im Dateinamen oder die Datei mtime wird zur Bestimmung des Alters verwendet). Es wird nicht automatisch erneut bereinigt, bevor am Ende jedes Backtests neue CSVs geschrieben werden; Wenn eine Einzelsitzung mit langer Laufzeit viele Dateien generiert, können Sieqt.rotate_trade_logs()aufrufen, um die Datei manuell zu bereinigen. Der Standardwert für trade_log_keep_days ist 3; Setzen Sie es auf Keine oder kleiner oder gleich 0, um das automatische Löschen zu deaktivieren. Die Rotation wirkt sich nur auf alte Dateien auf der Festplatte aus und verändert weder Backtest-Ergebnisse noch externe APIs.
4.4. Zusammenhang mit Ergebnis
trade_log entspricht loop_result und oper_count des Backtests: Jeder Datensatz entspricht einer tatsächlichen Operation, und oper_count kann eine aggregierte Statistik sein.
Wird verwendet, um die Konsistenz zwischen dem Backtest-Prozess und den Leistungsmetriken zu überprüfen.