美股日线选股器 — 项目概览

美股日线选股器 --- 项目概览

项目简介

美股日线选股器(US Stock Screener)是一个基于技术形态和价值指标的股票筛选工具。系统从 yfinance 获取约 200 只美股的日线数据,计算 80+ 个技术指标和形态信号,通过 FastAPI 后端和 React 前端提供交互式筛选、排序和对比功能。

系统还集成了实时行情推送(WebSocket)、预警系统(6种规则类型)、宏观指标监控、板块轮动分析、多时间周期共振策略、基本面评分体系、信号产品系统(候选池→盘中信号→模拟交易→绩效分析)和因子回测等高级功能。

技术栈

层级 技术 说明
数据获取 yfinance 免费 API,无需密钥
特征工程 pandas + numpy 技术指标计算
后端 FastAPI + uvicorn 异步 API 服务
前端 Vite + React 18 + TypeScript SPA 单页应用
数据存储 Parquet 文件 列式存储,高效压缩
信号存储 SQLite 候选池、信号、模拟仓位持久化
预警存储 SQLite 规则与事件持久化
实时数据 yfinance / 阿里云 免费(延迟)/ 付费(实时)
实时推送 WebSocket 服务端主动推送报价
K线图表 lightweight-charts 交互式技术图表
路由 react-router-dom SPA 页面路由

架构总览

复制代码
┌──────────────────────────────────────────────────────────────────┐
│                      Frontend (React 18 SPA)                        │
│  筛选面板 │ 股票表格 │ 详情抽屉 │ K线图 │ 对比分析 │ 预警中心      │
│  宏观指标 │ 板块轮动 │ 多周期预设 │ 数值筛选 │ 实时扫描器            │
│  信号中心 │ 信号绩效 │ 模拟组合 │ 回测报告 │ 形态统计               │
└─────────────────────────────┬────────────────────────────────────┘
                              │ HTTP + WebSocket (proxy :5173 → :8000)
┌─────────────────────────────▼────────────────────────────────────┐
│                    Backend (FastAPI + uvicorn)                       │
│  /api/meta │ /api/stocks │ /api/rt/* │ /api/alerts │ /api/macro     │
│  /api/sectors │ /api/pattern-stats │ /api/presets │ /ws/rt          │
│  /api/signals/* │ /api/backtest/*                                   │
│  loader.py (内存缓存) ← data.parquet (200+行 × 80+列)               │
│  history.parquet │ fundamentals.parquet │ macro/sectors parquet       │
│  RTHub (推送中心) │ AlertEngine (预警引擎) │ SQLite (规则/信号存储)    │
│  SignalEntryEngine (信号入场引擎) │ SignalProductRepository           │
└─────────────────────────────┬────────────────────────────────────┘
                              ↑ 构建时生成
┌─────────────────────────────┴────────────────────────────────────┐
│                  Data Pipeline (scripts/)                            │
│  yfinance_client → feature_engine → scorer → parquet output         │
│  rt_manager → rt_providers → rt_push_providers (实时数据)            │
│  build_macro → macro.parquet │ build_sectors → sectors.parquet      │
│  signal_candidate_pool → candidates │ signal_outcomes → MFE/MAE     │
└──────────────────────────────────────────────────────────────────┘

模块说明

模块 文档 说明
scripts/ <01-data-pipeline.md> 数据获取、特征工程、快照构建、宏观/板块数据、信号候选池
backend/ <02-backend-api.md> API 服务、查询引擎、实时推送、预警系统、信号产品、回测接口
frontend/ <03-frontend-ui.md> 筛选界面、详情、图表、对比、预警、信号中心、回测报告
demo/ <04-factor-backtest.md> Alpha101 因子回测、中性化、多空选股、多信号共振
scripts/screener/ <05-realtime-screener.md> 多因子实时选股引擎(基本面/周线/Alpha/盘中)
--- <06-deployment.md> 部署、开发服务器、测试体系、配置管理

核心功能

1. 技术形态筛选

支持 30+ 种 K 线形态和技术信号的组合筛选,包括单 K 形态、双 K 形态、三 K 形态、趋势结构、量价关系和波动率形态。

2. 高级技术指标

80+ 个技术指标覆盖 6 大类别:

类别 指标 信号列
趋势 MACD (DIF/DEA/Histogram)、ADX (+DI/-DI) 金叉/死叉、强趋势
动量 RSI-14、Stochastic (%K/%D)、CCI-20、Williams %R 超买/超卖、背离
波动率 Bollinger Bands (上/中/下/宽度)、ATR + 止损 挤压信号、触及上下轨
量能 OBV、Chaikin Oscillator、MFI-14、VWAP 量价背离、资金进出
财务健康 Piotroski F-Score (0-9)、Altman Z-Score 财务强健/财务困境
综合评分 Value-Growth Composite (0-100) 价值质量

3. 基本面评分体系

三维度基本面分析框架:

  • Piotroski F-Score:9 项财务健康指标评分(0-9 分),≥7 分标记为"财务强健"
  • Altman Z-Score:破产预警模型,<1.81 标记为"财务困境"
  • 价值-成长复合评分:估值质量 (40%) + 盈利能力 (30%) + 成长性 (30%)

4. 信号产品系统

完整的交易信号管线,从离线候选到盘中信号到绩效追踪:

  • 候选池生成:离线多因子打分,输出每日 Top 20 候选股
  • 盘中信号入场:4 重入场门控(VWAP、动量、量能、波动率)
  • 模拟交易:Paper Trading 跟踪开仓/平仓/盈亏
  • 绩效分析:MFE/MAE、多周期前向收益 (1/3/5/10 日)、胜率

5. 综合评分

基于多维度的信号评分系统(0-100 分),综合考虑技术形态、连续指标和估值水平。

6. 股票详情

详情抽屉展示完整的股票信息,包含基本面、技术指标、财务数据和风险指标。研究页面提供 K 线图、技术面分析、财务面分析和形态历史回溯。

7. 多股对比

最多 5 只股票的并列对比分析,按 7 个维度比较并高亮最优/最差值。

8. 实时行情

盘中实时数据支持:

  • 免费源:yfinance(~15 分钟延迟)
  • 付费源:阿里云金融 API(真正实时)
  • WebSocket 推送:服务端主动推送报价到前端
  • 实时排名:按成交额/涨跌幅/成交量排序
  • 异动扫描:涨幅榜、跌幅榜、成交量异动

9. 预设策略

内置 5 种选股策略(趋势突破、回调低吸、质量成长、估值修复、风险预警),一键应用筛选组合。

10. 多时间周期共振

支持日线、周线、60 分钟、30 分钟、15 分钟、5 分钟多周期分析,提供跨周期预设策略与共振评分。

11. 预警系统

6 种预警规则类型(价格变动、突破新高/新低、成交量异动、均线交叉、52 周高低),通过 WebSocket 实时推送 Toast 通知。

12. 宏观指标监控

实时展示 VIX 恐慌指数、10 年期美债收益率、美元指数 DXY、标普 500 等宏观指标,自动计算风险等级(平静/正常/风险)。

13. 板块轮动分析

11 个板块 ETF + 3 个风格 ETF 的相对强弱排名,展示动量和相对 SPY 基准的表现。

14. 因子回测与回测报告

Alpha101 因子评估和多因子选股回测系统:

  • 因子 IC/ICIR 评估与中性化
  • 多空组合绩效分析(Sharpe、回撤、Calmar)
  • 多信号共振回测(形态组合胜率统计)
  • 交易成本建模(佣金、滑点、融券成本)
  • 前端可视化回测报告页面

快速启动

bash 复制代码
# 1. 构建数据快照
python3 scripts/build_snapshot.py

# 2. 构建宏观与板块数据
python3 scripts/build_macro.py
python3 scripts/build_sectors.py

# 3. 启动后端
cd backend && source .venv/bin/activate
uvicorn main:app --reload --port 8000

# 4. 启动前端
cd frontend && npm install && npm run dev

# 或使用统一脚本
bash scripts/dev_server.sh start

数据说明

  • 股票池:约 200 只美股,覆盖科技、金融、医疗、能源、工业、消费、基建、太空、汽车等 9 个板块
  • 数据源:yfinance(免费,无需 API Key),可选阿里云(付费,实时)
  • 更新频率:手动运行 build_snapshot.py 更新快照
  • 技术指标:约 80 个,包含移动平均、K 线形态、量价关系、波动率、动量、趋势等
  • 财务指标:PE、PEG、ROE、利润率、营收增长、Piotroski F-Score、Altman Z-Score 等
  • 实时推送:WebSocket 服务端推送,支持 TickFlow / Ashen / 阿里云三种上游源
  • 预警规则:SQLite 存储,每设备最多 50 条规则,30 天事件保留
  • 信号系统:SQLite 持久化候选池、入场信号、模拟仓位和绩效追踪
相关推荐
乐观勇敢坚强的老彭1 小时前
2026全国青少年信息素养大赛(Python小学组)复赛复习讲义
python·算法·数学建模
北极星日淘2 小时前
Python代理池动态适配日淘爬虫|解决高频抓取IP封禁终极方案(含完整源码)
爬虫·python·tcp/ip
李可以量化2 小时前
自建量化回测系统完全指南 (上):四大技术栈与主流开源框架深度对比
量化交易·量化·qmt·ptrade
popcorn_min2 小时前
Breast Cancer 二分类实验:随机森林预测乳腺肿瘤良恶性
python
半只小闲鱼2 小时前
合并多个excel文件到一个文件中
前端·python·数据分析
hikktn2 小时前
ORA-01861 日期格式错误的根治方案:从 SQL 层到 Java 层的标准化治理
java·python·sql
lg_cool_2 小时前
使用conda管理python运行环境并关联vscode
vscode·python·conda
宸津-代码粉碎机2 小时前
Spring AI企业级实战|智能记忆摘要+自动遗忘机制落地,彻底解决上下文爆炸与Token冗余
java·大数据·人工智能·后端·python·spring
乘浪初心2 小时前
python调用API接口,免费API调取,学习如何调取API接口并反馈你输入的内容
开发语言·python·api·免费