4. HistoryPanel Visualisierung
Im vorherigen Kapitel, HistoryPanel (Historical Data Panel), wurde erläutert, wie historische Daten von mehreren Zielen und Indikatoren auf demselben Panel ausgerichtet werden. In diesem Kapitel wird erklärt, wie man Daten direkt mithilfe des Panels darstellt: Im Vergleich zu „zuerst „to_share_frame“ verwenden und dann manuell Matplotlib-Code schreiben“ kombiniert HistoryPanel.plot() automatisch Ansichten wie Candlestick-Diagramme, Volumen, MACD und Liniendiagramme basierend auf den aktuellen „htypes“, um die Konsistenz zwischen dem Kontext der Datenexploration und der Strategieforschungsphase sicherzustellen.
4.1. hp.plot(): Empfohlener einheitlicher Einstiegspunkt
In diesem Projekt ist HistoryPanel.plot() der einzig empfohlene Einstiegspunkt zum Plotten (wenn die alte Schnittstelle noch vorhanden ist, sollte sie auch semantisch an dieselbe Pipeline delegiert werden). Sie müssen lediglich sicherstellen, dass das Panel nicht leer ist und die für die Darstellung erforderlichen Spalten enthält (z. B. ist ein vollständiger OHLC erforderlich, um ein Candlestick-Diagramm zu erstellen). Andere Diagrammtypen werden intern automatisch anhand von „htypes“ ermittelt.
Die Bedeutung häufig verwendeter Parameter ist wie folgt (siehe HistoryPanel API für die vollständige Signatur):
Parameter |
Funktionszusammenfassung |
|---|---|
|
Eine Teilmenge der zu zeichnenden Ziele; Standardmäßig werden alle Ziele im Panel verwendet. |
|
Layouts mit mehreren Zielen: „Overlay“ (Überlagerung innerhalb desselben Koordinatensystems), „Stack“ (vertikale Gruppierung und Facettierung), „Auto“ (z. B. neigen zwei Ziele dazu, sich zu überlagern, mehr werden gestapelt). |
|
„False“ verwendet einen statischen Plot aus matplotlib; „True“ verwendet einen interaktiven Plot von Plotly (Zoom, Schwenken, Schweben usw.). |
|
Markieren Sie Extremwerte wie „max“/„min“ oder übergeben Sie ein Konfigurationswörterbuch. |
|
Nur gültig, wenn „interactive=True“: „auto“ (bevorzugt FigureWidget, greift bei einem Fehler auf den HTML-Wrapper zurück), „FigureWidget“, „html“. |
Hinweis: Wenn die Anzahl der angeforderten Ziele groß ist, kann die Implementierung die Anzahl der tatsächlich gezeichneten Ziele begrenzen und eine Warnung ausgeben, um eine Überlastung eines einzelnen Diagramms zu vermeiden; Das spezifische Verhalten unterliegt der jeweils aktuellen Version. Einzelheiten zu kleineren Anpassungen am Layout mehrerer Ziele und historischen Korrekturen finden Sie in den entsprechenden Einträgen in RELEASE_HISTORY 2.2.x.
4.2. Statische Diagramme und interaktive Diagramme
**
interactive=False(Standard): Hängt von matplotlib ab, geeignet für Batch-Plots und die Generierung statischer Dateien mithilfe von Skripten; erzwingt nicht die Installation von Plotly.interaktiv=True: Hängt von plotly ab; Wenn in Jupyter anywidget und ipywidgets verfügbar sind, können Sie normalerweise ein FigureWidget erhalten, das eine vollständigere Interaktion zwischen dem Header und den Achsen bietet; Andernfalls greift es möglicherweise auf das HTML-Wrapper-Formular zurück, das immer noch über grundlegende Interaktion verfügt, die Erfahrung unterscheidet sich jedoch geringfügig vom Widget-Pfad.
Minimalistisches Beispiel (erfordert lokal vorhandene OHLCV- oder gleichwertige Spalten; nur zu Demonstrationszwecken):
import qteasy as qt
hp = qt.get_history_data(
htype_names='open, high, low, close, vol',
shares='000300.SH',
rows=120,
as_data_frame=False,
)
fig = hp.plot() # 静态
# fig2 = hp.plot(interactive=True) # 交互(需安装 plotly 等)
Wenn das Hauptdiagramm ein Kerzendiagramm ist, zeigt das statische Diagramm eine OHLC-Zusammenfassung für die letzte Kerze auf der Zeitachse an; Das interaktive Diagramm ist standardmäßig konsistent und durch Klicken auf eine Kerze wird die Zusammenfassung auf diese Kerze aktualisiert (der Zusammenfassungstext für den Benutzer ist auf Englisch). Dieser Zusammenfassungsbereich wird nicht angezeigt, wenn kein vollständiger OHLC vorliegt.
4.3. Layout und mehrere Ziele
Overlay: Geeignet zum Vergleich der Preisbewegungen einiger weniger Ziele (z. B. zweier Aktien) auf derselben Preisskala (ob sie die Y-Achse teilen, hängt von der aktuellen Implementierung ab).
**
Stapel: Jedes Ziel (oder jede Gruppe) belegt einen separaten Unterplot, der für eine große Anzahl von Zielen geeignet ist und um zu vermeiden, dass sie im selben Koordinatensystem zusammengepfercht werden.auto: Wenn die Anzahl der Ziele gering ist, werden sie tendenziell gestapelt. Wenn die Anzahl groß ist, werden sie tendenziell in Facetten aufgeteilt, wodurch manuelle Versuche und Irrtümer reduziert werden.
Wenn die Layout-Semantik in einer späteren Version angepasst wird, hat die Beschreibung in der RELEASE_HISTORY der entsprechenden Version Vorrang.
4.4. Abhängigkeits- und Installationstipps
Statische Diagramme: erfordern im Allgemeinen matplotlib (die gleiche Umgebung, die üblicherweise mit qteasy verwendet wird).
Interaktive Diagramme: Erfordert plotly; Für ein umfassendes interaktives Notebook-Erlebnis wird empfohlen, sowohl ipywidgets als auch anywidget zu installieren. Der Versionsbereich optionaler Abhängigkeiten basiert auf der
pyproject.tomldes Projekts oder der Installationsdokumentation; In diesem Dokument werden die Versionsnummern nicht einzeln aufgeführt.
Der Name und der Erweiterungspunkt des zugrunde liegenden Rendering-Moduls dürfen nur von Entwicklern beim Lesen des Quellcodes verwendet werden. In der Benutzerdokumentation werden die Implementierungsdetails auf Dateiebene nicht näher erläutert.
4.5. Zusammenfassung
Die Datenvorbereitung erfolgt immer noch mit
get_history_data, im Einklang mit Vorheriges Kapitel; Das Plotten erfolgt mithp.plot().InteraktivundLayoutsind die beiden Schalter, die im täglichen Gebrauch am häufigsten geändert werden; Informationen zu erweiterten Parametern finden Sie in der API-Dokumentation.Informationen zu Verhaltensänderungen und Visualisierungskorrekturen finden Sie unter RELEASE_HISTORY; Für praktische Übungen lesen Sie bitte das Tutorial Using HistoryPanel to Manipulate and Analyze Historical Data.