- Inhaltsverzeichnis
- Beschreibung des Projektes
- Warum haben wir die Technologien verwendet, die wir verwendet haben?
- Wir haben diese Technologien verwendet, weil sie uns die folgenden Vorteile bieten:
- Organisationsstruktur unseres Python-Projekts
- Welche Herausforderungen haben wir bei der Entwicklung unserer Anwendung gemeistert?
- Welche Funktionen möchten wir in Zukunft implementieren?
- Ursprüngliche Zielsetzung der Aktien-App zu Beginn:
- Installationshinweis:
- Bedienhinweis:
- Known Issues
Unsere Aktien-App ist ein Aktienkurs-Index-Tool, das es Benutzern ermöglicht, die Kursentwicklung von Aktien verschiedener Unternehmen zu verfolgen. Die Anwendung bezieht Daten über eine kostenlose Börsen-API und speichert diese in einer Datenbank. Die Daten werden dann in einer grafischen Benutzeroberfläche (GUI) dargestellt, die es Benutzern ermöglicht, den Aktienkurs und zugehörige Informationen über die Zeit zu sehen.
Die App wurde von uns bei GitHub veröffentlicht und ist unter https://github.com/mozog001/Programmierung-KI.git zu erreichen!
Die Anwendung bietet folgende Funktionen:
- Auswahl verschiedener Unternehmen und deren Aktienkurse
- Anzeige und Ausblendung von Informationen im zeitlichen Verlauf
- Anwendung verschiedener Analysemethoden
- Export und Speicherung der Daten in einer Datenbank
Wir haben die folgenden Python-Bibliotheken, Tools und APIs verwendet, um unsere Anwendung zu erstellen:
PyQt5: PyQt5 ist ein Qt-Framework für Python, das die Entwicklung von grafischen Benutzeroberflächen (GUIs) ermöglicht.
PyQt5-tools: PyQt5-tools ist eine Sammlung von Tools, die die Entwicklung von PyQt5-Anwendungen erleichtern.
yfinance: yfinance ist eine Bibliothek für den Zugriff auf Finanzdaten.
pandas: pandas ist eine Bibliothek für die Manipulation und Analyse von Daten.
pyqtgraph: pyqtgraph ist eine Bibliothek für die Erstellung von interaktiven Diagrammen und Visualisierungen.
prophet: Prophet ist ein Zeitreihen-Forecasting-Modell.
Python: Python ist eine leistungsstarke und vielseitige Sprache, die sich gut für die Entwicklung von Datenanalyse- und Visualisierungstools eignet.
PyQt5: PyQt5 bietet eine einfache und intuitive API für die Entwicklung von GUIs.
yfinance: yfinance bietet einen einfachen Zugriff auf Finanzdaten aus einer Vielzahl von Quellen.
pandas: pandas bietet eine Vielzahl von Funktionen für die Manipulation und Analyse von Daten.
pyqtgraph: pyqtgraph bietet eine leistungsstarke und flexible API für die Erstellung von interaktiven Diagrammen und Visualisierungen.
prophet: Prophet bietet eine einfache Möglichkeit, Zeitreihen zu modellieren und zu prognostizieren.
Wir begannen mit einem Kanban-Board, um Aufgaben und Fortschritte zu verfolgen. Später wechselten wir zu einer Draw.io-Skizze, die mehr als nur eine Visualisierung war – ein abgestimmter Prototyp zur Festlegung von Arbeitspaketen.
Wöchentliche Meetings und Messenger-Abstimmungen ermöglichten uns eine effektive Kommunikation und den Austausch von Informationen. Diese Struktur half uns, das Projekt erfolgreich abzuschließen, flexibel auf Änderungen zu reagieren und effizient zusammenzuarbeiten.
Wir haben erfolgreich mehrere Herausforderungen während der Anwendungsentwicklung bewältigt. Die Integration der Börsen-API stellte eine bedeutende Hürde dar, da die Vielfalt der Funktionen eine genaue Auseinandersetzung erforderte. Die GUI-Entwicklung erforderte Experimente, um die richtige Balance zwischen Funktionalität und Benutzerfreundlichkeit zu finden.
Ein weiterer Schwerpunkt lag auf dem Abgleich der tagesaktuellen Börsen-API-Daten mit der Datenbank. Aufgrund unterschiedlicher Datenformate war die Entwicklung eines Algorithmus notwendig, der eine nahtlose Zusammenführung ermöglichte. Durch gründliche Auseinandersetzung mit den Datenformaten und einem eigens entwickelten Algorithmus konnten wir diese Herausforderung erfolgreich meistern. Dies ermöglicht uns nun die Nutzung aktueller Daten für umfassende Analysen in unserer Anwendung.
In Zukunft planen wir die Integration folgender Funktionen in unsere Anwendung:
- Unterstützung für weitere Börsen-APIs
- Implementierung von Threads, um das Einfrieren des Fensters zu vermeiden
- Automatisches Drücken der Buttons "Absolut" und "1-Woche", wenn eine neue Aktie ausgewählt wird
- Grafische Anzeige der ausgewählten Zeiträume durch Buttons, ähnlich wie bei den Analysemethoden
- Signalisierung an den Benutzer, wenn die Anwendung im Hintergrund arbeitet
- Automatisches Plotten des Graphen beim Auswahlwechsel einer weiteren Analyse-Methode
- Bezug von Daten über eine kostenlose Börsen-API
- Sammeln und Speichern der Daten in einer Datenbank
- Darstellung des Aktienkurses und zugehöriger Informationen über die Zeit
- Auswahl verschiedener Unternehmen und deren Aktienkurse über eine grafische Benutzeroberfläche (GUI)
- Möglichkeit zur Anzeige und Ausblendung von Informationen im zeitlichen Verlauf über die GUI
- Anwendung verschiedener Analysemethoden über die GUI
- Export und Speicherung der Daten in Excel-Format über die GUI
Um die für das Projekt notwendigen Requirements automatisch zu installieren, muss in das Verzeichnis navigiert werden und in folgender Code in der Kommandozeile ausgeführt werden: pip install -r requirements.txt
- Starten der main.py
- Name des Unternehmens in das Suchfeld eingeben (nur NASDAQ-Unternehmen werden unterstützt)
- Das Unternehmen im Dropdown auswählen und Enter drücken. Anschließend auf die API-Abfrage bzw. den Datenbankaufruf warten (dauert bis zu einer Minute)
- Nachdem die Daten verarbeitet wurden, sind die Weekly-Trends ersichtlich.
- Damit der Aktienkurs visuell Dargestellt werden kann, muss die Schaltfläche ABS (Absoluter Aktienkurs) selektiert werden und ein Betrachtungszeitraum gewählt werden (z.B. 6 Monate).
- Um sich weitere Analysen anzeigen zu lassen, können die Buttons SMA (Simple Moving Average) und TSM ausgewählt werden. Hinweis: Der Graph wird erst angezeigt, nachdem man einen Zeitraum auswählt.
Issue: "Importing plotly failed. Interactive plots will not work."
Solution: run pip install --upgrade plotly
Issue: Wenn bereits ein Unternehmen dargestellt wurde, wird der Graph nach Auswahl eines neuen Unternehmens nicht gelöscht.
Solution: Gewünschte Analyseverfahren auswählen und Zeitraum auswählen, sodass der Graph aktualisiert wird.