>_ DevTrendsit

Lingua

Home

Linguaggi

Sezioni

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

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.

Interfaccia della dashboard

Se analizziamo le funzionalità, è un set solido di strumenti:

  1. 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.
  2. 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.
  3. 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.
  4. Monitoraggio e avvisi. Puoi legare regole a strategie, livelli di prezzo o anomalie di mercato. Supporta segnali vocali nel browser e notifiche tramite webhook.

Screener e strategie

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.

Backtesting della strategia

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.

Centro di monitoraggio

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.

Analisi del concetto e del settore

Livelli degli ordini limit

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