>_ DevTrendszh

语言

首页

语言

板块

前端 后端 移动端 DevOps AI / ML 游戏开发 区块链 嵌入式 安全
Python

Tickflow Stock Panel:如何构建自己的量化股票分析终端

当你开始深入研究算法交易和市场分析时,很快就会遇到同样的瓶颈。成品终端要么价格高昂,要么绑定了专有云服务,你无法自行处理原始数据。如果你尝试用零散的 Python 脚本自己搭建一个“弗兰肯斯坦”,最终只会变成一堆处理几年历史数据时就会内存耗尽崩溃的 Jupyter 笔记本。

最近偶然发现了一个有趣的项目叫做 tickflow-stock-panel(简称 TSP)。这是一个开源自托管的股票筛选、回测和监控面板。项目最初聚焦于中国 A 股市场和 TickFlow API,但从工程角度来看构建得非常精心。内部采用了扎实的现代化技术栈:Polars 用于快速表格处理、DuckDB 配合 Parquet 进行存储和查询、FastAPI 作为后端、前端则使用简洁的 React。

面板功能介绍

项目作者在开头明确声明:该项目无意取代通达信或 Thinkorswim 这类券商终端,也没有“保证盈利的 AI 魔法按钮”。这是一个用于验证假设和追踪信号的工作站。

Dashboard interface

从功能划分来看,这是一套扎实的工具组合:

  1. 股票筛选和过滤。内置 18 种策略,支持自定义条件配置或通过 LLM 生成规则(支持任何兼容 OpenAI 的 API,如 DeepSeek 或本地 Ollama)。得益于 Polars,在指标列表上扫描整个市场仅需不到一秒。
  2. 技术指标计算管道。系统实时计算经典指标(MA、EMA、MACD、RSI、KDJ、布林带)并将丰富后的数据保存到本地 Parquet 文件。
  3. 回测模块。引擎支持多种模式的回测(因子分析含 IC/IR 指标,以及完整策略回测)。它计算权益曲线、回撤、夏普比率,并考虑佣金、滑点和止损的交易胜率。执行进度通过服务器端推送事件(SSE)实时流式传输到客户端。
  4. 监控和告警。可以将规则绑定到策略、价格水平或市场异常。支持浏览器内语音信号和通过 Webhook 的通知推送。

Screener and strategies

底层技术栈

项目架构值得特别关注。这里没有臃肿的关系型数据库或繁重的消息队列。

┌─────────────────────────────────────────────────────────┐
                      React 18 UI                        
   (Vite, Tailwind, Lightweight Charts, ECharts, dnd)    
└────────────────────────────┬────────────────────────────┘
                              REST / SSE
┌────────────────────────────▼────────────────────────────┐
                    FastAPI Backend                      
        (Pydantic v2, APScheduler, sse-starlette)        
└──────────────┬───────────────────────────┬──────────────┘
                                          
┌──────────────▼──────────────┐ ┌──────────▼──────────────┐
       Вычисления                     Хранение         
   Polars / vectorbt             DuckDB + Parquet      
└─────────────────────────────┘ └─────────────────────────┘

开发者押注于本地机器性能:

  • Polars 处理所有重型表格转换。它充分利用所有 CPU 核心,不像原生 Pandas 那样在处理数百万行数据时卡顿。
  • DuckDB 和 Parquet 负责分析查询。数据以紧凑的二进制格式存储在本地,无需运行 PostgreSQL 或 ClickHouse 即可即时读取。
  • vectorbt 仅在回测阶段使用,作为经过验证的用于交易模拟的向量化库。
  • Docker 多阶段构建 将编译后的前端和后端打包成单个轻量级容器。

Strategy backtesting

本地运行指南

可以通过两种方式部署系统。如果你想深入源代码并自行添加功能,开发模式是最简单的选择。

需要 Python 3.11+、Node 20+、包管理器 uvpnpm

# Клонируем проект и настраиваем переменные окружения
git clone https://github.com/shy3130/tickflow-stock-panel.git
cd tickflow-stock-panel
cp .env.example .env

# Запуск dev-скрипта (поднимет фронтенд на :3011 и бэкенд на :3018)
./dev.sh

第二种选择是使用 Docker Compose:

cp .env.example .env
docker compose up --build

启动后,Web 界面可在 http://localhost:3018 访问。

Monitoring center

基础配置位于 .env 中,配置项很少:

TICKFLOW_API_KEY=              # Ключ данных (можно оставить пустым для базовой истории)
AI_API_KEY=                    # Ключ LLM (OpenAI-compatible) для автогенерации стратегий
PORT=3018                      # Порт веб-сервера

如果你不交易中国市场,这个项目仍然很有价值。连接自定义数据源的架构在 docs/custom-data-source.md 中有文档说明。你可以接入自己的 CSV、JSON,或为 MOEX / Yahoo Finance / 加密交易所编写适配器,复用现成的筛选界面、图表和向量化回测引擎。

Concept and sector analysis

Limit order tiers

适用人群

首先,对金融科技和算法交易感兴趣的开发者会欣赏这个仓库。

一方面,对于寻求轻量级自托管监控系统而不想处理额外基础设施的人来说,这是一个现成可用的工具。另一方面,代码库清晰地展示了如何将 FastAPI、Polars 和 DuckDB 正确地整合到一个具有流式响应和交互式图表的响应式应用中。

如果你一直想编写自己的筛选器或回测工具,至少值得查看 shy3130/tickflow-stock-panel 仓库的数据处理方法。

相关项目