Tickflow Stock Panel: Bouw Je Eigen Terminal voor Kwantitatieve Aandelenanalyse
Wanneer je je begint te verdiepen in algoritmische handel en marktanalyse, kom je al snel tegen hetzelfde probleem. Kant-en-klare terminals zijn ofwel extreem duur, of ze zijn gekoppeld aan proprietaire clouds waar je de ruwe data niet zelf kunt bewerken. Als je probeert je eigen Frankenstein te bouwen van verspreide Python-scripts, eindigt alles als een zooitje Jupyter notebooks dat vastloopt door geheugenuitputting wanneer je een paar jaar aan historische data probeert te verwerken.
Onlangs ben ik een interessant project tegengekomen genaamd tickflow-stock-panel (afgekort TSP). Het is een open-source zelfgehoste panel voor aandelenscreening, backtesting en monitoring. Het project is oorspronkelijk gericht op de Chinese A-shares markt en TickFlow API, maar vanuit technisch oogpunt is het heel zorgvuldig gebouwd. Binnenin vind je een solide moderne stack: Polars voor snelle tabelverwerking, DuckDB met Parquet voor opslag en query's, FastAPI op de backend en een strakke React frontend.
Wat het panel kan doen
De repositoryauteur geeft meteen een duidelijke disclaimer: het project probeert niet brokerterminals zoals Tongdaxin of Thinkorswim te vervangen, en er zijn geen "magische AI-knoppen voor gegarandeerde winst." Dit is een werkstation voor het testen van hypothesen en het volgen van signalen.

Als we de mogelijkheden opsplitsen, is het een solide set tools:
- Aandelenscreening en filtering. Wordt geleverd met 18 ingebouwde strategieën, plus je kunt aangepaste voorwaarden configureren of regels genereren via LLM (ondersteunt elke OpenAI-compatibele API, zoals DeepSeek of lokale Ollama). Dankzij Polars wordt het scannen van de hele markt over een indicatorlijst in fracties van een seconde voltooid.
- Technische indicatorberekeningspijplijn. Het systeem berekent klassieke metrieken on-the-fly (MA, EMA, MACD, RSI, KDJ, Bollinger Bands) en slaat verrijkte data op in lokale Parquet-bestanden.
- Backtesting module. De engine kan historische tests uitvoeren in meerdere modi (factoranalyse met IC/IR-metrieken en volledige strategie backtesting). Het berekent equity curves, drawdowns, Sharpe-ratio, winpercentage met inachtneming van commissies, slippage en stop-losses. De voortgang van de uitvoering wordt via Server-Sent Events in realtime naar de client gestreamd.
- Monitoring en alerts. Je kunt regels koppelen aan strategieën, prijsniveaus of marktanomalieën. Ondersteunt spraaksignalen in de browser en notificaties via webhooks.

Technische stack onder de motorkap
De projectarchitectuur verdient speciale aandacht. Er zijn hier geen logge relationele databases of zware message queues.
┌─────────────────────────────────────────────────────────┐
│ React 18 UI │
│ (Vite, Tailwind, Lightweight Charts, ECharts, dnd) │
└────────────────────────────┬────────────────────────────┘
│ REST / SSE
┌────────────────────────────▼────────────────────────────┐
│ FastAPI Backend │
│ (Pydantic v2, APScheduler, sse-starlette) │
└──────────────┬───────────────────────────┬──────────────┘
│ │
┌──────────────▼──────────────┐ ┌──────────▼──────────────┐
│ Вычисления │ │ Хранение │
│ Polars / vectorbt │ │ DuckDB + Parquet │
└─────────────────────────────┘ └─────────────────────────┘
De ontwikkelaar zet in op lokale machineprestaties:
- Polars verwerkt alle zware tabeltransformaties. Het benut alle CPU-cores en komt niet in de problemen met miljoenen rijen, in tegenstelling tot vanilla Pandas.
- DuckDB en Parquet dekken analytische query's. Data bevindt zich lokaal in compact binair formaat, onmiddellijk gelezen zonder dat je een draaiende PostgreSQL of ClickHouse nodig hebt.
- vectorbt wordt strikt gebruikt in de backtesting-fase, als een bewezen vectorbibliotheek voor tradesimulatie.
- Docker met multi-stage builds verpakt gecompileerde frontend en backend in één lichtgewicht container.

Hoe lokaal te draaien
Je kunt het systeem op twee manieren deployen. Als je in de broncode wilt duiken en zelf iets wilt toevoegen, is de development modus het makkelijkst.
Je hebt Python 3.11+, Node 20+, package managers uv en pnpm nodig:
# Клонируем проект и настраиваем переменные окружения
git clone https://github.com/shy3130/tickflow-stock-panel.git
cd tickflow-stock-panel
cp .env.example .env
# Запуск dev-скрипта (поднимет фронтенд на :3011 и бэкенд на :3018)
./dev.sh
De tweede optie is plain Docker Compose:
cp .env.example .env
docker compose up --build
Na opstart is de webinterface beschikbaar op http://localhost:3018.

De basisconfiguratie in .env is minimaal:
TICKFLOW_API_KEY= # Ключ данных (можно оставить пустым для базовой истории)
AI_API_KEY= # Ключ LLM (OpenAI-compatible) для автогенерации стратегий
PORT=3018 # Порт веб-сервера
Als je niet handelt op de Chinese markt, is het project nog steeds interessant. De architectuur voor het aansluiten van aangepaste databronnen is gedocumenteerd in docs/custom-data-source.md. Je kunt je eigen CSV, JSON invoeren of een adapter schrijven voor MOEX / Yahoo Finance / crypto exchanges, waarbij je de kant-en-klare screeninginterface, grafieken en vector testing engine hergebruikt.


Voor wie dit project is
Allereerst zal de repository gewaardeerd worden door ontwikkelaars die geïnteresseerd zijn in fintech en algoritmische handel.
Aan de ene kant is het een kant-en-klaar hulpmiddel voor degenen die op zoek zijn naar een lichtgewicht zelfgehoste monitoringtool zonder extra infrastructuur gedoe. Aan de andere kant dient de codebase als een duidelijk voorbeeld van hoe je FastAPI, Polars en DuckDB correct aan elkaar koppelt tot één responsieve applicatie met streaming responses en interactieve grafieken.
Als je van plan bent om je eigen screener of backtester te schrijven, is het de moeite waard om in ieder geval de shy3130/tickflow-stock-panel repository te bekijken voor de dataverwerkingsbenaderingen.
Gerelateerde projecten