Eine interaktive Anwendung zur Visualisierung und Analyse von Zeitreihen-Finanzdaten mit Unterstützung für mehrere Zeiteinheiten und zukünftiger Live-Daten-Integration.
++ Quelle: Bild mit Microsoft Ki-Bildgenerator ++
- Übersicht
- Funktionen
- Installation
- Verwendung
- Datenformat
- UI-Komponenten
- Farbschemata
- Live-Daten-Integration
- Projektstruktur
- Entwicklungsplan
- Fehlerbehebung und FAQ
- Ablaufvorschau
Diese App ermöglicht die Visualisierung von Finanz-Zeitreihen (M1 bis M30) in einem interaktiven Liniendiagramm. Daten werden aus tab-getrennten CSV-Dateien eingelesen, transformiert und in einem konfigurierbaren Cache gespeichert. Mit der optionalen Live-Daten-Funktionalität können auch Echtzeit-Updates angezeigt werden.
- Visualisierung mehrerer Zeiteinheiten: Gleichzeitige Darstellung von M1, M2, M3, M4, M5, M6, M10, M12, M15, M20 und M30 (weitere sollten möglich sein) Zeitreihen in einem Chart
- Interaktive Charts: Zoomen, Schwenken und Hover-Informationen mittels Plotly
- Flexible Datumsfilterung: Auswahl beliebiger Zeiträume innerhalb der Datenverfügbarkeit
- Anpassbare Farbschemata: Drei vordefinierte Farbschemata zur visuellen Unterscheidung der Zeitreihen
- Intelligentes Caching: Speicherung transformierter Daten mit automatischer Bereinigung
- Live-Daten-Option: Erweiterbarkeit für Echtzeit-Datenstreams aus verschiedenen Quellen
- Exportfunktionen: Export der Diagramme als Bild oder interaktives HTML
- Python 3.8 oder höher
- Betriebssystem: Windows, macOS oder Linux
Die einfachste Methode zur Installation ist die Verwendung unseres Setup-Skripts, das automatisch eine virtuelle Umgebung erstellt und alle Abhängigkeiten installiert:
- Klonen oder laden Sie das Repository herunter
- Öffnen Sie ein Terminal/Kommandozeile im Projektverzeichnis
- Führen Sie folgenden Befehl aus:
- Unter Window starten Sie die setup.bat Datei für eine automatische Installation
python setup/app_setup_environment.py- Nach Abschluss der Installation können Sie die Anwendung mit einem der generierten Startskripte starten:
- Windows: Doppelklick auf
start_app.batoder im Terminal:start_app.bat - macOS/Linux: Im Terminal:
./start_app.sh
Falls Sie die Abhängigkeiten manuell installieren möchten:
pip install -r setup/requirements.txtoder:
python setup/app_install_dependencies.pyDanach können Sie die Anwendung direkt starten:
python StartApplication.pyDiese Anwendung verwendet tkinter, das Standard-GUI-Toolkit für Python. Tkinter ist normalerweise Teil der Python-Standardinstallation, in einigen Fällen muss es jedoch separat installiert werden.
Wenn Sie eine Fehlermeldung wie ModuleNotFoundError: No module named 'tkinter' erhalten, müssen Sie tkinter für Ihr Betriebssystem installieren:
Windows
Auf Windows ist tkinter normalerweise in der Standard-Python-Installation enthalten. Wenn es fehlt:
- Deinstallieren Sie Python
- Laden Sie Python erneut herunter und installieren Sie es
- Stellen Sie sicher, dass Sie während der Installation "Alle Optionalen Features" auswählen
Ubuntu/Debian Linux
sudo apt-get update
sudo apt-get install python3-tkFedora Linux
sudo dnf install python3-tkintermacOS mit Homebrew
brew install python-tkUm zu prüfen, ob tkinter korrekt installiert ist, führen Sie in Ihrer Kommandozeile aus:
python -c "import tkinter; tkinter._test()"Nach dem Start der Anwendung:
- Laden Sie über den Datei-Upload ihre Zeitreihen-Daten hoch - Schema weiter unten beachten
- Setzen Sie nach dem Upload Ihrer Daten den gewünschten Zeitraum mit dem Datumsfilter
- Aktivieren Sie die Zeiteinheiten, die Sie visualisieren möchten (M1-M30)
- Wählen Sie ein Farbschema über den Button Einstellungen für Ihre persönliche Darstellung
- Nutzen Sie die interaktiven Funktionen des Charts wird im Browser angezeigt (Zoomen, Schwenken, Hover)
- Bei Bedarf exportieren Sie das Diagramm als Bild oder HTML
Die App verarbeitet tab-getrennte CSV-Dateien mit folgendem Namensformat:
Symbol_Zeiteinheit_Startdatum_Enddatum.csv
Beispiel-Dateiname: DE40_M1_202410010102_202503272358.csv
- Symbol: DE40 (Deutscher Aktienindex)
- Zeiteinheit: M1 (1-Minuten-Intervall)
- Startdatum/-zeit: 2024-10-01 01:02
- Enddatum/-zeit: 2025-03-27 23:58
DATE: DatumsinformationTIME: ZeitinformationOPEN: EröffnungskursHIGH: Höchstkurs im IntervallLOW: Tiefstkurs im IntervallCLOSE: SchlusskursTICKVOL: Tick-VolumenVOL: HandelsvolumenSPREAD: Spread
date: Datum (entspricht DATE)time: Zeit (entspricht TIME)open: Eröffnungskurshigh: Höchstkurslow: Tiefstkursclose: Schlusskursdirection: Richtungsindikator (buy=grün, sell=rot)- Berechnet aus Vergleich von 'open' und 'close'
- buy (grün): wenn close > open
- sell (rot): wenn close < open
daytime: Kombiniertes Datums-/Zeitfeld aus DATE und TIME
- Größe: 1200x800 Pixel (skalierbar)
- Können Sie über die Einstellungen anpassen
- Layout: Grid-System
- Dateiauswahl-Upload
- Datumsauswahl mit Zeitfiltern
- Einstellungen für den Importvorgang und die Farben
- Checkboxen für M1, M2, M3, M4, M5, M6, M10, M12, M15, M20, M30 Zeiteinheiten
- Farblich kodierte Labels
- Auswahl/Abwahl-alle Optionen
- Anzeige der erstellten Charts zum Öffnen über den Browser
- Dynamische Legende über die erstellten Charts
Die App bietet drei verschiedene Farbschemata zur klaren Unterscheidung der Zeitreihen:
- M1: Dunkelrot (#8B0000)
- M2: Rotbraun (#A52A2A)
- M3: Lachsrot (#CD5C5C)
- M4: Rot (#FF0000)
- M5: Orange-Rot (#FF4500)
- M6: Tomatenrot (#FF6347)
- M10: Orange (#FFA500)
- M12: Goldgelb (#FFD700)
- M15: Grün (#00A000)
- M20: Blau (#0000FF)
- M30: Violett (#800080)
- M1: Hellstes Blau (#E6F3FF)
- M2: Sehr helles Blau (#CCE7FF)
- M3: Helles Blau (#B3DBFF)
- M4: Mittleres helles Blau (#99CFFF)
- M5: Mittleres Blau (#80C3FF)
- M6: Kräftiges Blau (#66B7FF)
- M10: Königsblau (#4169E1)
- M12: Dunkelblau (#0000CD)
- M15: Hellgrün (#90EE90)
- M20: Mittelgrün (#2E8B57)
- M30: Dunkelgrün (#006400)
- M1: Sehr helles Türkis (#E0FFFF)
- M2: Helles Türkis (#AFEEEE)
- M3: Mittleres Türkis (#40E0D0)
- M4: Türkis (#00CED1)
- M5: Mitteldunkles Türkis (#20B2AA)
- M6: Dunkles Türkis (#008B8B)
- M10: Koralle (#FF7F50)
- M12: Tomatenrot (#FF6347)
- M15: Karmesinrot (#DC143C)
- M20: Indischrot (#CD5C5C)
- M30: Burgunderrot (#800000)
Die Farbschemata sind in der Datei resources/color_schemes.json definiert und können bei Bedarf angepasst werden.
Die App unterstützt die Integration von Live-Daten, wodurch Echtzeit-Updates zu den visualisierten Zeitreihen möglich sind.
- Lokaler Datei-Watcher
- Websocket-Verbindung zukünftige Entwicklung
- REST API-Polling zukünftige Entwicklung
- Verbindungstyp
- Aktualisierungsrate (1s, 5s, 10s, 30s, 60s) zukünftige Entwicklung
- Quellspezifische Einstellungen zukünftige Entwicklung
- Statistische Daten
- Live-Daten zukünftige Entwicklung
- Automatisches Scrolling für neueste Daten - (Dateiwatcher als erste Entwicklungsstufe)
Für eine effiziente Datenverarbeitung implementiert die App ein intelligentes Cache-System:
Für jede CSV-Datei wird eine entsprechende JSON-Metadatendatei erstellt:
{
"filename": "DE40_M1_202410010102_202503272358.csv",
"symbol": "DE40",
"timeframe": "M1",
"start_datetime": "2024-10-01T01:02:00",
"end_datetime": "2025-03-27T23:58:00",
"last_accessed": "2023-11-20T15:30:00",
"cache_expiry": "2023-12-20T15:30:00",
"stats": {
"min_value": 15678.5,
"max_value": 16982.3,
"avg_value": 16245.7,
"buy_count": 3542,
"sell_count": 3245
},
"color_settings": {
"line_color": "#FF0000",
"scheme_name": "spectrum"
}
}zeitreihen-app/
├── README.md # Diese Dokumentation
├── StartApplication.py # Hauptanwendungsdatei
├── start_app.bat # Startskript für Windows (generiert)
├── start_app.sh # Startskript für macOS/Linux (generiert)
├── config/
│ ├── metaplot.json # Speicherung der Plotdaten
│ └── config.json # Allgemeine App-Einstellungen
├── modules/
│ ├── ConfigWindow.py # CSV-Einlesung, Caching, Datentransformation
│ ├── DataImporter.py # Verarbeitung der CSV-Dateien
│ ├── MetadataManager.py # Handling von spezifischen Metadaten
│ ├── PlotChartline.py # Plotly-Integration, Chart-Erstellung
│ └── UIComponents.py # Tkinter-UI-Komponenten
├── setup/
│ ├── app_install_dependencies.py # Hilfsskript zur Installation von Abhängigkeiten
│ ├── app_setup_environment.py # Einrichtungsskript (virtuelle Umgebung)
│ └── requirements.txt # Abhängigkeiten
├── cache/
│ ├── data/ # Gespeicherte CSV-Dateien
│ └── meta/ # Metadaten-JSON-Dateien
└── resources/
└── color_schemes.json # Vordefinierte Farbschemata
- Projektstruktur aufsetzen
- Daten-Einlesungs-Funktionen implementieren (CSV-Einlesung, Caching)
- Bestenfalls Ordner auswahl und Liste der CSV Dateien verarbeiten (Batch)
- Basis-UI mit Tkinter erstellen
- Plotly-Visualisierungsmodul implementieren
- Integration in Tkinter-Oberfläche
- Interaktivität und Farbschemata
- Datenverarbeitungs-Pipeline implementieren
- Datumsfilterung und -auswahl
- Cache-Management
- Live-Daten-Handler-Modul implementieren
- Verbindungseinstellungen-Dialog
- Integration in die Hauptanwendung
- Fehlerbehandlung und Robustheit
- Performance-Optimierungen
- Benutzerfreundlichkeit und Dokumentation
F: Die Anwendung startet nicht und zeigt einen ImportError
A: Stellen Sie sicher, dass alle Abhängigkeiten korrekt installiert sind.
Führen Sie python setup/app_install_dependencies.py aus oder verwenden Sie das Setup-Skript erneut.
F: Die Charts werden nicht angezeigt
A: Prüfen Sie, ob die ausgewählte CSV-Datei dem erwarteten Format entspricht und gültige Daten enthält.
F: Änderungen der Farbschemata werden nicht angewendet
A: Nachdem Sie Änderungen an resources/color_schemes.json vorgenommen haben, starten Sie die Anwendung neu.
F: Das Setup-Skript schlägt fehl
A: Stellen Sie sicher, dass Sie Python 3.8 oder höher installiert haben und ausreichende Berechtigungen für die Installation besitzen.
F: Wie aktiviere ich die virtuelle Umgebung manuell?
A:
- Windows:
zeitreihen_venv\Scripts\activate - macOS/Linux:
source zeitreihen_venv/bin/activate
F: Meine CSV-Dateien werden nicht erkannt
A: Überprüfen Sie, ob der Dateiname dem Format Symbol_Zeiteinheit_Startdatum_Enddatum.csv entspricht und die Datei tab-getrennt ist.
F: Wie erstelle ich kompatible CSV-Dateien?
A: Stellen Sie sicher, dass Ihre Datei mindestens die Spalten DATE, TIME, OPEN, HIGH, LOW, CLOSE enthält und tab-getrennt ist.
F: Die Anwendung wird bei großen Datensätzen langsam
A:
- Reduzieren Sie den ausgewählten Zeitraum
- Deaktivieren Sie nicht benötigte Zeiteinheiten
- Stellen Sie sicher, dass die optionalen Leistungs-Abhängigkeiten (orjson, pyarrow) installiert sind
Hinweis: Dieses Projekt wird aktiv weiterentwickelt. Bei Fragen oder Problemen erstellen Sie bitte ein Issue im Repository oder kontaktieren Sie das Entwicklungsteam.
