>_ DevTrendsde

Sprache

Start

Sprachen

Bereiche

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

So erstellst du ein persönliches Quant-Analyse-Terminal mit Polars und DuckDB

Jeder Entwickler, der jemals versucht hat, Aktienkurse mit Code zu analysieren, ist unweigerlich durch dasselbe Szenario gegangen. Zuerst öffnest du ein Jupyter Notebook, verbindest Pandas und ziehst historische Kerzen über eine zufällige kostenlose API. Innerhalb weniger Tage wächst das Notebook auf Hunderte unlesbarer Zellen, Indikatorberechnungen frieren für Minuten ein, und anstatt einer properen Oberfläche musst du auf Matplotlib-Diagramme schielen.

Kürzlich bin ich auf das Projekt shy3130/tick-stock-panel auf GitHub gestoßen. Der Autor hat eine vollständige Open-Source-Plattform für Quant-Analyse, Backtesting und Aktienüberwachung entwickelt, die du lokal in einem einzigen Docker-Container ausführen kannst. Das Projekt ist zunächst für den chinesischen A-Aktienmarkt zugeschnitten, aber seine architektonischen Entscheidungen und der Tech-Stack verdienen eine separate Rezension, unabhängig davon, welche Assets du handelst.

Was steckt drin und wie es funktioniert

Das Hauptproblem bei den meisten selbstgebauten Screenern ist die Performance. Wenn du gleitende Durchschnitte, MACD, RSI und Bollinger-Bänder für Tausende von Tickers in einer Schleife durch Pandas berechnest, erstickt die Maschine schnell.

In tick-stock-panel wurde dieses Problem mit einem modernen Daten-Stack gelöst:

  • Polars übernimmt parallele Indikatorberechnungen und marktweites Screening in Sekundenbruchteilen.
  • Parquet wird als lokales Speicherformat für angereicherte Tabellen verwendet.
  • DuckDB führt schnelle analytische Abfragen auf Parquet direkt auf der Festplatte durch, ohne schwere Datenbanken zu starten.
  • vectorbt wird in einem isolierten Backtesting-Modul verwendet.
  • FastAPI und sse-starlette stellen Daten bereit und streamen den Fortschritt rechenintensiver Operationen über Server-Sent Events.
  • React 18 mit Lightweight Charts und ECharts-Bibliotheken bildet eine saubere Bedienoberfläche.

Die Architektur ist kompakt: Das Backend und das gebündelte Frontend werden in einem mehrstufigen Dockerfile verpackt. Die Anwendung benötigt keine externen PostgreSQL- oder Redis-Instanzen – die gesamte Datenbank wird lokal gehalten.

Hauptfunktionen der Plattform

Der Entwickler hat die Funktionalität in vier Kernbereiche unterteilt: Filterung, Hypothesenprüfung, Marktverfolgung und individuelle Asset-Analyse.

Dashboard Strategie-Screener
Status Panel Strategies
Backtesting Faktor-Suche
Backtest Factors

Screener und integrierte Strategien

Das System enthält 18 fertige Aktienselektionsstrategien. Der Filtermechanismus läuft auf Polars: Nach Börsenschluss berechnet die Pipeline einen angereicherten Datensatz, und die Abfrage des Benutzers prüft Bedingungen über die gesamte Ticker-Tabelle. Du kannst Standardindikatoren, Volumen und Candlestick-Muster kombinieren oder eigene Signale schreiben.

Backtesting und Alpha-Faktor-Suche

Das Testen ist in zwei Modi unterteilt:

  1. Individuelle Faktorbewertung mit IC- und IR-Metrikberechnungen, Quantilrenditen und Long-Short-Spreads. Dies hilft, Rauschen herauszufiltern, bevor ein Handelssystem aufgebaut wird.
  2. Vollständiges Strategie-Backtesting mit T+1-Abwicklungsregeln, Slippage, Brokerprovisionen und Stop-Losses.

Das Faktor-Mining-Modul ist interessant implementiert. Das System sucht nach Rang-Kombinationen auf dem Trainingsdatensatz, filtert korrelierte Metriken heraus und validiert die Ergebnisse auf Out-of-Sample-Daten. Die entdeckten Regeln werden jedoch nicht blind angewendet: Der Kandidat wird in Entwürfe gespeichert und erfordert eine manuelle Bestätigung, bevor er zum Arbeitspool hinzugefügt wird.

Monitoring-Center Limit-Leiter
Monitor Limits
Sektoranalyse Watchlists
Sectors Watchlist

Echtzeit-Monitoring und Anomalien

Das Dashboard enthält ein Live-Überwachungsmodul. Du kannst Trigger-Regeln basierend auf Preisniveaus, Indikatoren oder Abweichungen von Durchschnitten festlegen. Wenn ein Ereignis eintritt, sendet das Panel einen Webhook, zeigt eine Browser-Benachrichtigung und spricht den Ticker sogar über die Web Speech API laut aus.

Integration von Sprachmodellen

Das Projekt fügte eine LLM-Integration über eine OpenAI-kompatible Schnittstelle hinzu. Du kannst Ollama, DeepSeek oder geschlossene APIs verbinden. Die Modelle erfüllen zwei praktische Rollen: das Generieren von Screener-Regelcode aus Textbeschreibungen und das Zusammenstellen eines Abendberichts mit Sektorbewegungsanalyse nach Börsenschluss.

So stellst du es bereit und startest es

Der schnellste Weg, das Projekt zu starten, ist über Docker Compose:

cp .env.example .env
docker compose up --build

Nach dem Build öffnet sich das Panel unter http://localhost:3018.

Für die lokale Entwicklung benötigst du Python 3.11+, Node.js 20 und die Paketmanager uv und pnpm:

cp .env.example .env
./dev.sh

Das Skript prüft die Umgebung, installiert Backend-Abhängigkeiten über uv und Frontend über pnpm, dann startet es FastAPI auf Port 3018 und den Vite Dev-Server auf 3011.

Die Konfiguration wird in der .env-Datei eingerichtet:

TICKFLOW_API_KEY=              # Ключ источника данных TickFlow (можно оставить пустым для базового режима)
AI_API_KEY=                    # Ключ LLM-провайдера для генерации стратегий
PORT=3018                      # Порт приложения

Eigene Datenquellen anschließen

Das Basisprojekt ist für den chinesischen TickFlow-Service SDK konfiguriert, jedoch hat der Entwickler die Datenschicht pluggable gemacht. Das Repository enthält ein Node.js-Plugin stock-sdk und Beispiele für deklarative Quellbeschreibungen über YAML.

Wenn du das Panel für MOEX, Krypto-Börsen oder Yahoo Finance anpassen möchtest, musst du nur die tägliche Bar-Provider-Schnittstelle implementieren und sie im Parquet-Format bereitstellen. Alle anderen Mechanismen – gleitende Durchschnittsberechnungen, Backtesting-Engine, Lightweight Charts-Graphen und Alert-System – werden weiterhin unverändert funktionieren.

Lohnt es sich, es zu probieren

Das tick-stock-panel-Projekt ist vor allem wegen seiner architektonischen Sauberkeit interessant. Der Autor hat schwere relationale Datenbanken zugunsten von Polars + DuckDB + Parquet aufgegeben, was das System auf einem normalen Laptop fliegen lässt.

Wenn du auf dem chinesischen Markt handelst, kann das Projekt als sofort einsatzbereites Arbeitswerkzeug verwendet werden. Wenn dein Interesse bei anderen Börsen liegt, wird der Repository-Code als exzellente Vorlage für den Aufbau eines eigenen Analyse-Terminals dienen.

Ähnliche Projekte