11. HistoryPanel und die optionale Hilfsschicht „FactorResearch“ (Schlussfolgerungen der Bewertung)
Dieses Dokument beantwortet den Bewertungspunkt in der Roadmap: Müssen wir zusätzlich zu „HistoryPanel“ (Arbeitsname „FactorResearch“) eine weitere einfache API-Abstraktionsschicht hinzufügen, die sich der Berechnung von IC/IR, Quantil-Portfolio-Renditen, Long-Short-Kurven usw. widmet?
11.1. 1. 当前能力边界(已满足的部分)
Die folgenden Funktionen werden bereits von „HistoryPanel“ und verwandten APIs abgedeckt – es besteht keine Notwendigkeit, das Rad neu zu erfinden:
Faktorspaltengenerierung: „assign“, „setitem“, „returns“, „kline“, „apply_ta“ usw.;
Querschnittstransformationen:
rank,zscore(method='cs'|'ts');Grobe Portfolios und Benchmarks: „Portfolio“ (gleichgewichtet/gewichtet, „Gruppen“, „Benchmark“);
Forschungsorientierte Rückgabeanzeige: „cum_return“, „normalize“ und „mask=“;
Visualisierung:
plotund (M,L) Maskenhervorhebung;Integration mit Mess-/Analysetools: „to_df_dict“, oder manuell in das Langformat umformen und dann pandas / statsmodels verwenden (siehe Tutorial 2.5 §11).
Für das Ziel „Lightweight Factor Research + Grobvalidierung“ bildet das oben Gesagte bereits eine vollständige Grundlage.
11.2. 2. 若增加 FactorResearch 层,能解决什么?
Typische Wrapper können sein:
Bei einer gegebenen Faktorspalte und einer Rückgabespalte (oder Beschriftung) werden pro Periode IC, IC Mittelwert/IR ausgegeben;
Eine NAV- oder Renditereihe eines Quantilportfolios (nach Querschnitt gegliedert);
Eine Zeitreihe eines Long-Short-Portfolios (oben minus unten).
All dies kann in ein paar Dutzend Zeilen auf der Benutzerseite oder in einem unabhängigen Modul unter Verwendung vorhandener „rank“ / „portfolio“ / „values“ + pandas implementiert werden; Der Wert des Wrappings liegt in stabilen APIs, einheitlichen Parameterkonventionen und weniger Fehlern beim Kopieren und Einfügen.
11.3. 3. 结论(短期不引入类库级 FactorResearch)
Fazit: Zum jetzigen Zeitpunkt werden wir das Hinzufügen einer „FactorResearch“-Klasse/eines „FactorResearch“-Submoduls zum qteasy-Kernel oder über HistoryPanel nicht erzwingen.
Kurze Begründung:
Klare Verantwortlichkeiten: „HistoryPanel“ ist bereits als 3D-Forschungscontainer mit expliziter Ausrichtung/Resampling positioniert; IC/IR, Quantilportfolios usw. sind „Analyserezepte“ mit viel strengeren Forschungsworkflow-Konventionen. Sie passen besser in eigenständige Tutorials, Beispiele oder ein zukünftiges optionales Paket, um ein Aufblähen der HP API zu vermeiden.
Vermeiden Sie falsche Erwartungen: Wenn Sie es als eigenständiges Modul bezeichnen, können Benutzer leicht denken, dass das Framework bereits „Faktortests auf Veröffentlichungsebene“ enthält (z. B. Mehrfachtests, Stichprobenaufteilung, HAC-Standardfehler), während Benutzer in Wirklichkeit noch Rückschlüsse auf der Seite der Statistikmodelle usw. ziehen müssen.
Beziehung zur mittelfristigen „integrierten Faktorbibliothek“: Wenn die integrierte Faktorbibliothek (M2.1) in der Top-Level-Roadmap implementiert wird, wäre ein natürlicherer Ansatz Faktordefinition + Registrierung + Integration mit FactorSorter/Backtesting; Batch-IC/Stratifizierung können optionale Hilfsfunktionen rund um die Faktorbibliothek und nicht HistoryPanel-Instanzmethoden sein.
Wartungskosten: IC benötigt Konventionen für das Forward-Return-Fenster, Handelsstopps, Delistings, Gewichtungen (wertgewichtet vs. gleichgewichtet) usw. Es gibt viele Parameterkombinationen; Ohne einen einheitlichen Datenvertrag können die Supportkosten leicht in die Höhe treiben.
11.4. 4. 若未来引入,建议形态(备忘)
Wenn die Community-Nachfrage klar ist, empfehlen Sie ein unabhängiges Modul (z. B. „qteasy.research.factor_stats“ oder ein externes „qteasy-research“-Projekt) anstelle von „HistoryPanel“-Methoden:
Eingaben: „HistoryPanel“ oder „DataFrame“ + Spaltenname + zukunftsgerichtete Zeiträume;
Ausgaben: „DataFrame“ / „Series“ (optional als Ergänzung neu dargestellt);
Dokumente: Geben Sie eindeutig an, dass es kein Ersatz für den Backtester ist und dass es nicht über integrierte Fama-MacBeth/Newey-West-Funktionen verfügt (weiterhin Export in Statistikmodelle).
Zu diesem Zeitpunkt sollte es mit TDD- und englischen „ValueError“-Verträgen geliefert werden, die dem bestehenden HP-Teststil entsprechen.
11.5. 5. 与教程的关系
Befolgen Sie für den praktischen Arbeitsablauf §9–§11 von Tutorial 2.5: Verwenden von HistoryPanel zum Bearbeiten und Analysieren historischer Daten; Dieses Designdokument zeichnet nur Schlussfolgerungen zur Bewertung auf Architekturebene auf und fügt keine API-Oberfläche hinzu, die Benutzer unbedingt lesen müssen.