Tickflow Stock Panel: Self-hosted Quant Workbench for A-shares

New GitHub repo delivers zero-ops A-share stock selection, monitoring and backtesting powered by TickFlow with external data integrations.

Tickflow Stock Panel: Self-hosted Quant Workbench for A-shares

Project Overview

shy3130 released
tickflow-stock-panelshy3130
View on GitHub โ†’
on GitHub as a self-hosted A-share workbench. The project combines stock screening, monitoring, and backtesting in one container. It pulls from TickFlow data by default but accepts Tushare or other sources through field mapping. Free mode runs without an API key. The stack includes a Python backend with Polars, a frontend interface, and Docker Compose for deployment.

Built-in Strategies and Custom Extensions

The engine ships with 20 strategies stored as individual Python files under backend/app/strategy/builtin/. Each file uses Polars expressions for operations like MA crossovers, MACD signals, volume surges, and consecutive limit-up detection. Users define additional signals through the UI by selecting fields, operators, and thresholds; the system compiles these into executable Polars code without requiring a restart.

Two extension paths exist. An AI route accepts natural language descriptions, feeds them to an OpenAI-compatible endpoint, and writes the resulting Polars file to data/strategies/ai/ after AST validation. The manual route lets developers drop Polars files into data/strategies/custom/. Both sources appear alongside the built-ins in a single strategy store where parameters can be overridden at runtime.

Data Pipeline with Polars

Tickflow Stock Panel runs an indicators pipeline that computes roughly 30 metrics across the full A-share universe and writes the results to enriched Parquet files. The calculations cover moving averages, MACD components, RSI, KDJ, ATR, volume ratios, and limit-up flags. Because Polars executes these in a vectorized manner, the full scan completes in one pass rather than row-by-row loops.

The same pipeline supports custom columns from third-party sources. Once mapped in the configuration, the added fields become available to the signal editor and strategy files. Storage stays local, which removes external rate limits but requires disk space for the Parquet history.

Deployment and Configuration Options

A single docker-compose.yml starts the backend, frontend, and optional data volume. The .env file accepts a TickFlow key (optional for Free tier) and an AI endpoint key (optional for strategy generation). tiers.yaml controls which features appear based on the subscription level reported by the data provider.

The project explicitly avoids full broker integration or automated trading. It also omits any built-in stock recommendations. These boundaries keep the scope to analysis and backtesting only. Resource usage stays modest on a single machine because the heavy lifting occurs in Polars rather than in-memory Pandas loops.

FAQs

Does Tickflow Stock Panel require a paid data subscription? No. Free mode runs without any key, though paid TickFlow tiers unlock higher-frequency or extended fields.

Can existing Python strategies be imported without rewriting? Only after conversion to the Polars file format described in the project docs. Direct Pandas code will not load.

How are generated strategies validated before use? An AST check restricts imports to polars as pl and rejects arbitrary code execution.

---

๐Ÿ“– Related articles

Need a consultation?

I help companies and startups build software, automate workflows, and integrate AI. Let's talk.

Get in touch
โ† Back to blog