Tickflow Stock Panel: Come Costruire il Tuo Terminale per l'Analisi Quantitativa dei Titoli
Quando inizi a esplorare il trading algoritmico e l'analisi di mercato, presto ti scontri con lo stesso muro. I terminali già pronti costano uno sproposito, oppure sono legati a cloud proprietari dove non puoi manipolare i dati grezzi da solo. Se provi a costruire il tuo Frankenstein da script Python sparsi, finisce tutto come uno zoo di notebook Jupyter che vanno in crash per esaurimento della memoria quando cerchi di elaborare un paio d'anni di storico.
Recentemente mi sono imbattuto in un progetto interessante chiamato tickflow-stock-panel (TSP in breve). È un pannello open-source self-hosted per screening azionario, backtesting e monitoraggio. Il progetto è inizialmente focalizzato sul mercato azionario cinese A-shares e su TickFlow API, ma dal punto di vista ingegneristico è costruito con molta cura. All'interno troverai uno stack moderno solido: Polars per l'elaborazione rapida di tabelle, DuckDB con Parquet per archiviazione e interrogazione, FastAPI sul backend e React pulito sul frontend.
Cosa può fare il pannello
L'autore del repository fa una dichiarazione chiara fin dall'inizio: il progetto non cerca di sostituire i terminali dei broker come Tongdaxin o Thinkorswim, e non ci sono "pulsanti magici AI per profitti garantiti." Questa è una workstation per testare ipotesi e tracciare segnali.

Se analizziamo le funzionalità, è un set solido di strumenti:
- Screening e filtraggio azionario. Include 18 strategie integrate, più puoi configurare condizioni personalizzate o generare regole tramite LLM (supporta qualsiasi API compatibile con OpenAI, come DeepSeek o Ollama locale). Grazie a Polars, la scansione dell'intero mercato su una lista di indicatori viene completata in frazioni di secondo.
- Pipeline di calcolo degli indicatori tecnici. Il sistema calcola metriche classiche on the fly (MA, EMA, MACD, RSI, KDJ, Bollinger Bands) e salva i dati arricchiti in file Parquet locali.
- Modulo di backtesting. Il motore può eseguire test storici in più modalità (analisi dei fattori con metriche IC/IR e backtesting completo della strategia). Calcola curve equity, drawdown, Sharpe ratio, tasso di successo tenendo conto di commissioni, slippage e stop-loss. I progressi dell'esecuzione vengono trasmessi al client in tempo reale tramite Server-Sent Events.
- Monitoraggio e avvisi. Puoi legare regole a strategie, livelli di prezzo o anomalie di mercato. Supporta segnali vocali nel browser e notifiche tramite webhook.

Stack tecnico sotto il cofano
L'architettura del progetto merita un'attenzione particolare. Non ci sono database relazionali gonfiati o code di messaggi pesanti qui.
┌─────────────────────────────────────────────────────────┐
│ React 18 UI │
│ (Vite, Tailwind, Lightweight Charts, ECharts, dnd) │
└────────────────────────────┬────────────────────────────┘
│ REST / SSE
┌────────────────────────────▼────────────────────────────┐
│ FastAPI Backend │
│ (Pydantic v2, APScheduler, sse-starlette) │
└──────────────┬───────────────────────────┬──────────────┘
│ │
┌──────────────▼──────────────┐ ┌──────────▼──────────────┐
│ Вычисления │ │ Хранение │
│ Polars / vectorbt │ │ DuckDB + Parquet │
└─────────────────────────────┘ └─────────────────────────┘
Lo sviluppatore ha puntato sulle prestazioni della macchina locale:
- Polars gestisce tutte le trasformazioni pesanti delle tabelle. Utilizza tutti i core CPU e non si blocca su milioni di righe, a differenza di Pandas vanilla.
- DuckDB e Parquet coprono le query analitiche. I dati risiedono localmente in formato binario compatto, letti istantaneamente senza bisogno di un PostgreSQL o ClickHouse in esecuzione.
- vectorbt viene utilizzato rigorosamente nella fase di backtesting, come libreria vettoriale collaudata per la simulazione dei trade.
- Docker con build multi-stage raggruppa frontend compilato e backend in un singolo container leggero.

Come eseguire in locale
Puoi distribuire il sistema in due modi. Se vuoi approfondire il codice sorgente e aggiungere qualcosa di tuo, la modalità di sviluppo è la più semplice.
Avrai bisogno di Python 3.11+, Node 20+, e dei package manager uv e pnpm:
# Клонируем проект и настраиваем переменные окружения
git clone https://github.com/shy3130/tickflow-stock-panel.git
cd tickflow-stock-panel
cp .env.example .env
# Запуск dev-скрипта (поднимет фронтенд на :3011 и бэкенд на :3018)
./dev.sh
La seconda opzione è Docker Compose:
cp .env.example .env
docker compose up --build
Dopo l'avvio, l'interfaccia web è disponibile su http://localhost:3018.

La configurazione base in .env è minima:
TICKFLOW_API_KEY= # Ключ данных (можно оставить пустым для базовой истории)
AI_API_KEY= # Ключ LLM (OpenAI-compatible) для автогенерации стратегий
PORT=3018 # Порт веб-сервера
Se non fai trading sul mercato cinese, il progetto è comunque interessante. L'architettura per connettere fonti dati personalizzate è documentata in docs/custom-data-source.md. Puoi alimentare i tuoi CSV, JSON, o scrivere un adapter per MOEX / Yahoo Finance / exchange crypto, riutilizzando l'interfaccia di screening pronta, i grafici e il motore di testing vettoriale.


Per chi è questo progetto
Prima di tutto, il repository sarà apprezzato dagli sviluppatori interessati a fintech e trading algoritmico.
Da un lato, è uno strumento pronto all'uso per chi cerca un sistema di monitoraggio self-hosted leggero senza il fastidio di infrastrutture extra. Dall'altro, il codebase serve come esempio chiaro di come legare correttamente FastAPI, Polars e DuckDB in un'unica applicazione reattiva con risposte in streaming e grafici interattivi.
Se hai intenzione di scrivere il tuo screener o backtester, vale la pena controllare il repository shy3130/tickflow-stock-panel almeno per i suoi approcci alla gestione dei dati.
Progetti correlati