>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

Frontend Backend Mobile DevOps AI / ML GameDev Blockchain Embedded Sicherheit
Python

So verknüpfen Sie Nachrichten mit Aktiencharts und verstehen die Treiber der Marktbewegung

Jeder, der jemals ein Trading-Terminal geöffnet hat, kennt das. Eine Aktie fällt plötzlich um 8% in einer einzigen Sitzung, der Chart zeichnet eine beunruhigende rote Kerze, und der Finanz-Nachrichtenfeed wird mit Dutzenden verstreuter Artikel überschwemmt. Um ein bestimmtes Ereignis mit einer Preisbewegung in Verbindung zu bringen, verbringt man am Ende einen halben Tag mit manuellem Suchen nach Daten.

Der Autor des Open-Source-Projekts PokieTicker hat dieses Problem für sich selbst gelöst und den Quellcode auf GitHub veröffentlicht. Das Ergebnis ist ein Tool, das Ereignisse direkt auf Candlestick-Charts legt, Nachrichten nach Thema organisiert und sie durch eine Kombination aus Sprachmodellen und klassischem maschinellen Lernen verarbeitet.

PokieTicker interface

Was die App kann

Die Benutzeroberfläche basiert auf einem interaktiven D3.js-Chart. Anstatt eines trockenen Terminals sehen Sie eine Zeitleiste, in der jeder Tag mit Nachrichten mit einem Punkt markiert ist. Wenn Sie auf einen Punkt klicken, öffnet sich ein Kontextbereich mit Details.

Die wichtigsten Funktionen, die es sich zu erkunden lohnt:

  • Interaktive Ereignismarkierung auf Candlestick-Charts. Sie können sofort sehen, an welchem Tag ein Quartalsbericht oder regulatorische Nachrichten herauskamen und wie der Preis darauf reagierte.
  • Thematische Filterung. Nachrichten werden nach Kategorie gegliedert: Gewinne, Produkte, regulatorische Maßnahmen, Managementwechsel und allgemeine Marktbedingungen.
  • Historische Analogie-Suche. Das System vergleicht den aktuellen Nachrichtenhintergrund mit vergangenen Perioden unter Verwendung der Kosinus-Ähnlichkeit von Vektor-Embeddings und zeigt, wohin sich die Aktie in ähnlichen Situationen bewegt hat.
  • Erklärung der Bewegung über LLM. Sie wählen einen Datumsbereich mit Ihrer Maus aus, und das Modell sammelt die Fakten und erstellt eine kurze Zusammenfassung, warum der Rückgang oder Anstieg stattfand.

Demo of functionality

Architektur und kosteneffiziente Datenpipeline

Die Arbeit mit Finanztexten führt oft zu hohen Rechnungen für neuronale Netzwerk-APIs. Wenn Sie jede Veröffentlichung direkt an Claude weiterleiten, ist Ihr Kontostand in ein paar Stunden aufgebraucht. Der Autor hat eine dreistufige Filter-Pipeline entwickelt, die unnötige Kosten vermeidet.

Zuerst werden Daten von der Polygon API abgerufen. Dann tritt Schicht 0 in Kraft – ein einfacher Satz von Python-Regeln, der Spam, Clickbait und nutzlose Zusammenfassungen wie „5 Aktien, die Sie im Mai kaufen sollten" herausfiltert. Dieser Schritt eliminiert etwa 17% des Informationsrauschens kostenlos.

Die verbleibenden Artikel gehen an Schicht 1. Hier wird Claude Haiku über die Batch-API in Batches von 50 verwendet. Das Modell bestimmt die Stimmung, extrahiert bullische oder bärische Argumente und formuliert den Kern der Diskussion. Die Batch-Verarbeitung kostet nur 35 Cent pro 1.000 Artikel.

Schließlich wird Schicht 2 basierend auf Claude Sonnet nur auf direkte Benutzeranfrage aktiviert, wenn ein tiefer Einblick in einen bestimmten Preisanstieg für einen ausgewählten Zeitraum benötigt wird.

So funktioniert die Vorhersage von Preisbewegungen

Neben Nachrichtenstimmung und technischen Indikatoren arbeitet ein auf XGBoost basierendes Modell. Der Autor versucht nicht, einen „Trading-Gral" zu bauen, und warnt ehrlich in der Beschreibung, dass das Projekt forschungsorientiert ist.

Der Feature-Vektor besteht aus 31 Parametern:

  1. Nachrichtenmetriken: Artikelanzahl pro Tag, durchschnittlicher Stimmungswert, Verhältnis von positiv zu negativ, gleitende Durchschnitte der Stimmung über 3, 5 und 10 Tage, plus Stimmungsmomentum.
  2. Technische Signale: Renditen über 1, 3, 5 und 10 Handelstage, Volatilitätsmaß, Handelsvolumenanomalien, RSI-14-Indikator und gleitende Durchschnittsüberschneidungen.

XGBoost-Klassifikatoren werden trainiert, um die Richtung von Preisbewegungen zu den Horizonten T+1, T+3 und T+5 vorherzusagen. Die Logik ist straightforward: Starke Nachrichten lösen eine Marktträgheit aus, die oft ein bis drei Tage anhält, besonders wenn negative Veröffentlichungen in Serie erscheinen.

Das Backend enthält auch ein experimentelles LSTM-Modul, obwohl Gradient Boosting die primäre Arbeitslösung bleibt.

Frontend (React + Vite + D3.js)          Backend (FastAPI + SQLite WAL)
+---------------------------------+      +----------------------------+
|  CandlestickChart (D3.js)       |----->|  /api/stocks/{sym}/ohlc    |
|  NewsPanel & Predictions        |<-----|  /api/news, /api/predict   |
+---------------------------------+      +----------------------------+

Schnellstart ohne API-Schlüssel-Registrierung

Ein nettes Detail: Um das Projekt lokal auszuprobieren, müssen Sie nicht sofort Polygon-Abonnements kaufen oder ein Konto bei Anthropic registrieren. Das Repository enthält bereits ein fertiges Archiv mit einer SQLite-Datenbank mit 51.000 Candles und 61.000 Nachrichtenartikeln, plus trainierte Modellgewichte.

Die Bereitstellung dauert fünf Minuten:

git clone https://github.com/owengetinfo-design/PokieTicker.git
cd PokieTicker

# Распаковываем готовую базу и модели
gunzip -k pokieticker.db.gz
tar xzf models.tar.gz -C backend/ml/

# Настраиваем бэкенд на Python 3.10+
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt

# Устанавливаем зависимости фронтенда
cd frontend && npm install && cd ..

Dienste werden in zwei Terminal-Tabs gestartet. Im ersten starten wir FastAPI:

source venv/bin/activate
uvicorn backend.api.main:app --reload

Im zweiten starten wir Vite:

cd frontend && npm run dev

Danach öffnet sich die Benutzeroberfläche im Browser unter http://localhost:7777/PokieTicker/.

Wenn Sie frische Daten von der Börse abrufen möchten, kopieren Sie einfach .env.example zu .env, fügen Sie Ihren kostenlosen Polygon-Schlüssel und Anthropic-Schlüssel hinzu, und führen Sie dann den Befehl python -m backend.weekly_update aus.

Eindrücke und Fazit

PokieTicker ist nicht so sehr als Trading-Berater interessant, sondern als Beispiel für eine gut gestaltete Full-Stack-Anwendung. Es gibt viel davon zu lernen:

  • Ein sauberes FastAPI- und SQLite-Setup im WAL-Modus, das für Hunderttausende von Datensätzen mehr als ausreichend ist.
  • Effiziente LLM-Nutzung durch vorläufige regelbasierte Filterung und Batch-API.
  • Visualisierung von Finanzdaten in reinem D3.js ohne schwere Drittanbieter-Widgets.
  • Praktische Kombination von NLP-Metriken mit klassischer Zeitreihenanalyse.

Das Repository wird für Entwickler nützlich sein, die eigene analytische Dashboards erstellen, mit Textverarbeitung für ML experimentieren oder einfach die Ursachen von Marktschwankungen verstehen möchten. Der Quellcode wird unter der permissiven MIT-Lizenz veröffentlicht.

Ähnliche Projekte