Tickflow Stock Panel: Jak zbudować własny terminal do ilościowej analizy giełdowej
Gdy zaczynasz zgłębiać handel algorytmiczny i analizę rynku, szybko napotykasz tę samą ścianę. Gotowe terminale albo kosztują fortunę, albo są powiązane z zastrzeżonymi chmurami, gdzie nie możesz samodzielnie manipulować surowymi danymi. Jeśli próbujesz zbudować własnego Frankensteina z porozrzucanych skryptów Pythona, wszystko kończy się jako zoo notatników Jupyter, które zawodzą z powodu wyczerpania pamięci, gdy próbujesz przetworzyć kilka lat historii.
Niedawno natknąłem się na ciekawy projekt o nazwie tickflow-stock-panel (TSP w skrócie). To samodzielny panel open-source do filtrowania akcji, testowania historycznego i monitorowania. Projekt koncentruje się początkowo na chińskim rynku A-akcji i API TickFlow, ale od strony inżynieryjnej jest zbudowany bardzo starannie. W środku znajdziesz solidny nowoczesny stos: Polars do szybkiej obróbki tabel, DuckDB z Parquet do przechowywania i zapytań, FastAPI na backendzie i czysty React na frontendzie.
Co potrafi ten panel
Autor repozytorium od razu wyraźnie zastrzega: projekt nie próbuje zastąpić terminali brokerskich takich jak Tongdaxin czy Thinkorswim i nie ma tu „magicznych przycisków AI gwarantujących zyski”. To stacja robocza do testowania hipotez i śledzenia sygnałów.

Jeśli rozłożymy możliwości na czynniki pierwsze, mamy solidny zestaw narzędzi:
- Filtrowanie i selekcja akcji. Zawiera 18 wbudowanych strategii, a dodatkowo możesz skonfigurować własne warunki lub generować reguły za pomocą LLM (obsługuje dowolne API kompatybilne z OpenAI, jak DeepSeek czy lokalny Ollama). Dzięki Polars skanowanie całego rynku przez listę wskaźników zajmuje ułamki sekundy.
- Potok obliczania wskaźników technicznych. System oblicza klasyczne metryki w locie (MA, EMA, MACD, RSI, KDJ, Wstęgi Bollingera) i zapisuje wzbogacone dane do lokalnych plików Parquet.
- Moduł testowania historycznego. Silnik może uruchamiać testy historyczne w wielu trybach (analiza czynników z metrykami IC/IR oraz pełne testy strategii). Oblicza krzywe kapitału, spadki, współczynnik Sharpe'a, skuteczność z uwzględnieniem prowizji, poślizgu i stop-lossów. Postęp wykonania jest przesyłany do klienta przez Server-Sent Events w czasie rzeczywistym.
- Monitorowanie i alerty. Możesz powiązać reguły ze strategiami, poziomami cen lub anomaliami rynkowymi. Obsługuje sygnały głosowe w przeglądarce i powiadomienia przez webhooki.

Techniczny stos pod maską
Architektura projektu zasługuje na szczególną uwagę. Nie ma tu rozbudzonych relacyjnych baz danych ani ciężkich kolejek wiadomości.
┌─────────────────────────────────────────────────────────┐
│ React 18 UI │
│ (Vite, Tailwind, Lightweight Charts, ECharts, dnd) │
└────────────────────────────┬────────────────────────────┘
│ REST / SSE
┌────────────────────────────▼────────────────────────────┐
│ FastAPI Backend │
│ (Pydantic v2, APScheduler, sse-starlette) │
└──────────────┬───────────────────────────┬──────────────┘
│ │
┌──────────────▼──────────────┐ ┌──────────▼──────────────┐
│ Вычисления │ │ Хранение │
│ Polars / vectorbt │ │ DuckDB + Parquet │
└─────────────────────────────┘ └─────────────────────────┘
Deweloper postawił na lokalną wydajność maszyny:
- Polars obsługuje wszystkie ciężkie transformacje tabel. Wykorzystuje wszystkie rdzenie CPU i nie dławi się na milionach wierszy, w przeciwieństwie do zwykłego Pandasa.
- DuckDB i Parquet pokrywają zapytania analityczne. Dane siedzą lokalnie w kompaktowym formacie binarnym, odczytywane natychmiast bez potrzeby uruchomionego PostgreSQL czy ClickHouse.
- vectorbt jest używany ściśle na etapie backtestingu, jako sprawdzona biblioteka wektorowa do symulacji handlu.
- Docker z wielostopniowymi buildami pakuje skompilowany frontend i backend w jeden lekki kontener.

Jak uruchomić lokalnie
System możesz wdrożyć na dwa sposoby. Jeśli chcesz zgłębić kod źródłowy i dodać coś własnego, tryb deweloperski jest najprostszy.
Będziesz potrzebować Pythona 3.11+, Node 20+, menedżerów pakietów uv i pnpm:
# Клонируем проект и настраиваем переменные окружения
git clone https://github.com/shy3130/tickflow-stock-panel.git
cd tickflow-stock-panel
cp .env.example .env
# Запуск dev-скрипта (поднимет фронтенд на :3011 и бэкенд на :3018)
./dev.sh
Druga opcja to zwykły Docker Compose:
cp .env.example .env
docker compose up --build
Po uruchomieniu interfejs webowy jest dostępny pod http://localhost:3018.

Podstawowa konfiguracja w .env jest minimalna:
TICKFLOW_API_KEY= # Ключ данных (можно оставить пустым для базовой истории)
AI_API_KEY= # Ключ LLM (OpenAI-compatible) для автогенерации стратегий
PORT=3018 # Порт веб-сервера
Jeśli nie handlujesz na chińskim rynku, projekt jest nadal interesujący. Architektura łączenia niestandardowych źródeł danych jest udokumentowana w docs/custom-data-source.md. Możesz wprowadzać własne CSV, JSON lub napisać adapter dla MOEX / Yahoo Finance / giełd kryptowalutowych, wykorzystując gotowy interfejs filtra, wykresy i silnik testów wektorowych.


Dla kogo jest ten projekt
Przede wszystkim repozytorium docenią programiści zainteresowani fintech i handlem algorytmicznym.
Z jednej strony to gotowe do użycia narzędzie dla osób szukających lekkiego samodzielnego systemu monitorowania bez dodatkowej infrastruktury. Z drugiej strony baza kodu służy jako wyraźny przykład, jak prawidłowo połączyć FastAPI, Polars i DuckDB w jedną responsywną aplikację ze strumieniowymi odpowiedziami i interaktywnymi wykresami.
Jeśli zamierzałeś napisać własny selektor lub backtester, warto przynajmniej zajrzeć do repozytorium shy3130/tickflow-stock-panel, przynajmniej dla podejść do obsługi danych.
Powiązane projekty