Skip to content

wangpage/quant-ashare

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

quant-ashare

机构级 A股量化研究框架 — 融合多智能体 LLM 决策、事件驱动 Stock Radar、Barra 风格中性化、Almgren-Chriss 冲击成本建模的开源实现.

Tests Smoke Python License

不是又一个抄 Alpha158 的项目. 本项目致力于实现 头部私募在用但很少公开的圈内技巧, 覆盖从数据清洗到执行层的完整量化链路, 并配套一套事件驱动 + 多智能体 LLM 的实盘辅助决策系统.

当前状态: 圈内暗门核心模块已实装 12+, 详解见 ADVANCED_TRICKS.md; 实盘辅助侧已落地 klineshare 实时数据源、Stock Radar 新闻事件流水线、paper trade 自动账户、微信推送闭环. 实装/规划见 功能矩阵.

⚠️ 诚实定位: 本项目是研究框架 + 实盘辅助工具, 不是已验证的盈利策略. 用 klineshare 真实数据做过严格实证后的结论是 2024-2026 A股牛市中没有可落地的公开因子 alpha — 详见 真实回测.


🏗️ 架构

┌──────────────────────────────────────────────────────────────┐
│  实盘辅助决策层                                                  │
│  ┌────────────────────────┐  ┌─────────────────────────────┐  │
│  │ 多智能体 LLM 决策         │  │ Stock Radar 事件流水线         │  │
│  │ [基本面][技术][情绪][事件]│←─│ 东财快讯定时拉取 radar_pull   │  │
│  │  →[Bull vs Bear]→[交易]  │  │ → 分诊(qwen-turbo)→深挖(qwen-plus)│  │
│  │  →[风控]                 │  │ → memory.db → 简报/候选注入    │  │
│  └────────────────────────┘  └─────────────────────────────┘  │
├──────────────────────────────────────────────────────────────┤
│  因子层: Alpha158-lite + 反转/低波 + 涨停连板 + 席位网络 +        │
│          日内犹豫度 + 大盘 regime  (pandas 向量化, 喂 LightGBM)   │
├──────────────────────────────────────────────────────────────┤
│  【圈内暗门模块 — 已实装】                                        │
│  标签工程 / 微结构因子 / 因子衰减监控 / 事件屏蔽                    │
│  Barra 中性化 / 组合优化 / 数据清洗 / 主题投资 / 执行层             │
├──────────────────────────────────────────────────────────────┤
│  数据源三分:                                                     │
│   · 实时/历史行情 = klineshare.cn (主) + 东财/新浪直连 (兜底)      │
│   · 情绪新闻 = 东财个股新闻 (akshare stock_news_em)              │
│   · Radar 事件 = 东财快讯定时拉取 (radar_pull.py, 无需插件)       │
│   · 龙虎榜/资金流/基本面 = 东财 datacenter + akshare; Level2 NATS │
├──────────────────────────────────────────────────────────────┤
│  风控: 涨跌停 / T+1 / 凯利 / 回撤熔断 / PreTradeGate / Regime 乘数 │
└──────────────────────────────────────────────────────────────┘

✨ 核心特性

🧠 多智能体 LLM 决策

  • Hermes-3 风格 XML 结构化推理 (<THINKING>, <REASONING>, <REFLECTION>)
  • Bull vs Bear 多轮辩论, 由 Judge agent 最终裁决
  • 分析师并行 (asyncio), 分析师阶段延迟 ~3x; 支持第 4 位 事件分析师 (由 Radar 摘要驱动)
  • 明日操作台辩论层: 因子粗筛候选池 → 多智能体辩论否决 + 重排 + 赞同(全否决则从池补票, 绝不空榜), 并双榜 A/B(辩论榜 vs 纯因子)用命中率闭环实测有效性. daily_advisor.py --debate 开启, 默认关. 见 llm_layer/advisor_debate.py.
  • 统一多后端 _LLMBackend: Qwen / DeepSeek / DMXAPI 聚合 / Claude / GPT / Kimi / GLM / OpenRouter / 智增增 / mock
  • 后端由 --backend / LLM_BACKEND 等环境变量选择, 实际用哪个取决于 .env 里配了哪个 key. 本项目 2026-07 起主用千问 Qwen (backend qwen/qwen-plus, 读 DASHSCOPE_API_KEY); DeepSeek (deepseek-chat) 与 DMXAPI 聚合器 (dmxapi, DMXAPI_API_KEY, 一个 key 转 GPT/Claude/Gemini) 作备选. 无 Anthropic key.
  • 切 Gemini 走 DMXAPI 一行搞定: LLM_BACKEND=dmx-gemini(→gemini-3-flash-preview)/ dmx-gemini-pro(→gemini-2.5-pro)/ dmx-gpt(→gpt-4o-mini). ⚠️ Gemini 是 thinking 模型, max_tokens 需 ≥600 否则推理烧光预算返回空串.
  • TradingAgentTeam/radar 里 anthropic/claude-* 只是代码内历史默认值, 未配 ANTHROPIC_API_KEY 不生效; radar 分诊/深挖与辩论层默认均已切到 qwen.

📡 Stock Radar — 事件驱动新闻流水线

新闻源是东财全球财经快讯 (无鉴权公开 JSON), 由后台定时拉取器直接抓取, 无需浏览器插件、无需常驻 FastAPI. 后台 daemon 分诊 (qwen-turbo) + 深挖 (qwen-plus), 结果注入交易决策. 深挖判断"已 price-in"时读本地 parquet 行情缓存, code↔name 反幻觉校验走 akshare:

scripts/radar_pull.py (定时拉东财快讯 → 归一化 → add_radar_events)
                          │ 幂等写入 cache/memory.db (kind='radar_event')
                          ▼
              scripts/radar_worker.py (daemon, 轮询 needs_analysis)
                  1. triage      每条事件  qwen-turbo (event_type/entities/tradability)
                  2. gate        噪音跳过, 高价值强制深挖
                  3. deep_analyze 高价值   qwen-plus  (thesis/targets/priced_in/供应链/风险)
                          │ 写回 metadata.analysis  (含 code↔name 反幻觉校验)
                          ├─▶ radar_briefing.py    → 微信简报
                          ├─▶ radar_candidates.py  → paper trade top-K 前插/规避
                          └─▶ radar_events_helper.py → 交易 Agent 的"事件分析师"

一键拉起整条链路 (拉取器 + worker):

python scripts/start_all.py          # 或 Windows: scripts\start_all.bat

数据源可扩展 (data_adapter/news_feed.py 留了 fetch_news(sources=...) 分发壳, 日后可加财联社/同花顺). 交互式复盘见技能 .claude/skills/radar-analyze.md.

🧬 记忆与自进化

  • Memory Curator: 每笔交易后 LLM 提炼反思存 SQLite + FTS5 (cache/memory.db)
  • Skill Factory: 自动从成功交易聚类生成复用规则 (condition→action)
  • Weekly Nudge / Monthly Audit: 定期合并去重记忆、剪枝低价值反思

📊 已实装 vs 规划功能矩阵

✅ = 已有代码 + 测试/实盘调用; 🟡 = 已实装但仅测试或旁路使用; 🚧 = 骨架/规划

# 技巧 状态 大众盲点 → 本项目实现
1 标签工程 close/close → 多 horizon + vol 归一化 + CSRank + 停牌/一字板屏蔽
2 涨跌停 / 停牌屏蔽 全量训练 → 自动屏蔽 (回测 IC 虚高 20-30%)
3 Level2 微结构 alpha 🟡 OIR / VPIN / Cancel Ratio / Kyle's λ (已实装, 离线可跑; 实盘 NATS 已修连接 bug, 待真实 broker 验证)
4 冲击成本建模 固定 2bps → Almgren-Chriss + sqrt 律 (执行层实盘路由已接)
5 Barra 风格中性化 Size+Industry → CNE5 六风格因子 (分层正交 + ridge)
6 因子衰减监控 训完不管 → rolling IC + 半衰期 + 健康分自动下线
7 组合优化 🟡 Top-K 等权 → 风险平价 (实盘用) + MVO/Black-Litterman (已实装, 测试用)
8 事件屏蔽 无 → 解禁/财报/大宗自动屏蔽
9 数据清洗 幸存 / 前视 / 复权 (含小幅分红/累计漂移) + audit 报告
10 主题投资识别 🟡 纯涨幅 → 萌芽/扩散/拥挤三阶段 + 龙头排序
11 Regime 自适应 8 种市场状态分类器 + 仓位乘数 + LLM 上下文注入
12 Level2 时序保护 指数退避 / 时钟漂移监控 / 乱序检测 (离线)
13 资金流因子 主力/超大单 12 因子 (V8 已用) + 高管增减持 + 龙虎榜席位
14 涨停连板因子 16 个 A股独有因子 (连板高度/炸板率/一字板/量能压缩), factors/alpha_limit.py
15 龙虎榜游资特征 13 个 席位网络因子 (游资联动图/机构主导/接力), factors/seat_network.py

详解见 ADVANCED_TRICKS.md. 进度会随每次 release 更新.

🚀 端到端 Pipeline

  • ResearchPipeline (pipeline/research.py): 数据体检 → 标签 → 屏蔽 → 因子 → 前视扫描 → Barra → IC/衰减 → 带冲击回测 (强制过 PreTradeGate) → 报告
  • DailyTradingPipeline (pipeline/daily_trading.py): Regime → 筛选 → Agent 辩论 → 风控 → 冲击路由

📈 真实回测 — 含严格 OOS 修正记录

⚠️ 重要诚实声明: 早期版本 (V3-V5) 的"夏普 1.86 / IR 1.21"包含了 训练集 label 泄露(label horizon=30, 但训练截止 = train_end, 后 30 天 label 在真实时点不可观测). 修复 leak 后 OOS IR 跌至 -0.13 ~ +0.2 之间. 本项目当前定位为研究框架, 不是已验证的实盘策略.

演化记录(全部 walk-forward 严格 OOS)

版本 因子构成 Hold-out IR(干净) 关键发现
V1 baseline 10 大蓝筹 + 3 玩具因子 0.79(其实是纯 beta) 蓝筹无 alpha,Sharpe 来自市场
V3 500 中小盘 + 龙虎榜 5 因子 含 leak,数字不再呈报
V4 + IC 聚类去共线 + 动态滑点 框架修正
V5 + 涨停/连板 + 高管增减持 含 leak
V6 (B+ 自适应极性) + IC 时序 z-score 极性切换 +0.96 → 修复后 -0.13 leak 暴露
V7 (+ regime 因子) + 大盘动量/广度 -1.38 加 regime 反加剧过拟合
V8 (+ 主力资金流) + 超大单/大单/散户净流入 -0.75 牛市 regime 中无效

🔬 klineshare 真实数据的三轮收敛实证 (最新, 2026-07)

接入 klineshare 真实行情后, 用 Top300 成交额大盘池 (295 股, 2024-2026) 做了三轮严格实证, 结论比早期更硬:

  1. LightGBM 揉 36 个 pandas 因子, 严格防泄露 (label_cut = t - horizon): OOS IC≈0, t=-0.24 不显著 → ML 堆公开因子没 alpha, 把信号淹在噪声里.
  2. 反转族因子日频 IC 看似显著 (REV5 t=2.39, 过 Barra 中性化残差 t 甚至升到 3.53) → ⚠️ 这是重叠样本假象: 日频"未来 5 日收益"相邻重叠 4/5, IC 序列强自相关, t = mean/std×√n 把重叠当独立, t 值系统性虚高.
  3. 反转组合换非重叠周频 + 扣 sqrt 冲击成本回测: 同样 ~0.02 的 IC, t 塌到 0.97 不显著; Top30 扣费后跑输等权 55%/年; 多空 t=-0.99.

关键教训: "重叠样本 t 值虚高"是量化最常见的自欺. 判显著必须用非重叠样本 / Newey-West. IC 幅度真实 (~0.02) ≠ 统计稳健 ≠ 扣费能赚钱, 三码事. 复现脚本: walkforward_lgbm_barra.py (模型+中性化) / rev5_barra_check.py (因子中性化, 其日频 t 虚高) / backtest_klineshare.py (--factor reversal|momrev, 扣费回测).

真 alpha 在哪里(不再粉饰)

公开因子 + LightGBM + 月频选股,真实 OOS 夏普天花板 0.5-1.0. 想突破需要:

  • ✅ Wind/Choice 付费数据(¥5-20 万/年)
  • ✅ Level2 tick 数据(券商开户送) + 分钟级回测框架
  • ✅ 自监督模型(Kronos 等)取代手工因子
  • ✅ 等待 regime 切换(单边牛市里多头选股本就是 worst case)
  • ❌ 继续堆公开因子 — 已被 4000+ 量化机构挖干净

🚀 快速开始

安装

git clone https://github.com/wangpage/quant-ashare.git
cd quant-ashare
pip install -r requirements.txt

# 最小裸环境实测只需:
#   requests pandas numpy lightgbm loguru pyyaml scikit-learn
# akshare / pyqlib / streamlit / anthropic 按需再装 (见 requirements.txt 注释)

配置数据源与密钥 (.env)

仓库提供了脱敏模板 .env.example。真实 .env 保留在本地,不提交到 GitHub。

主行情走 klineshare.cn 实时 API (无需 akshare 即可跑核心研究/回测):

# .env (已 gitignore — 因为每日 cron 会 auto-push 到 GitHub)
KLINESHARE_API_KEY=tg_xxxxxxxx        # klineshare 实时行情 (主数据源)
# KLINESHARE_HOST=http://120.77.200.82  # 可选, 覆盖默认 host

# LLM (至少配一个; 本项目 2026-07 起主用 Qwen, radar/辩论默认走 qwen)
DASHSCOPE_API_KEY=sk-xxx             # 千问 Qwen (主用)
DEEPSEEK_API_KEY=sk-xxx              # DeepSeek (备选, 便宜)
# DMXAPI_API_KEY / DMXAPI_BASE_URL   # DMXAPI 聚合网关 (备选, 一 key 转 GPT/Claude/Gemini)
# ANTHROPIC_API_KEY=sk-ant-xxx       # 可选; 未配则 radar/辩论走 qwen (本部署未配)

# 推送 (Server酱 微信, 唯一在用的推送通道)
SERVERCHAN_SENDKEY=SCTxxxxxx

套餐边界 (klineshare 基础版): realtime / kline / trend / stock / corp / calendar 可用, limit_up 每日试用 2 次; lhb / hot_money / moneyflow / etf 需专业版 (基础版调用返回 403). 因此龙虎榜/资金流走 akshare/东财兜底路径.

MCP 集成: 项目根 .mcp.json 已配 market-data-api MCP server (http://120.77.200.82/mcp, X-API-Key 头), 可让 Claude Code 直接查行情/K线/涨停/龙虎榜.

⚡ 一键启动 Radar 事件流水线

删掉了旧的浏览器插件依赖 — 现在新闻由后台定时器直接抓东财快讯. 一条命令拉起「新闻拉取 + 分诊/深挖」全链路:

python scripts/start_all.py          # 或 Windows 双击 scripts\start_all.bat
# 单独调试: python scripts/radar_pull.py --once   (拉一次东财快讯写入 memory.db)

分诊/深挖需要 LLM key (默认走 DASHSCOPE_API_KEY 的 Qwen); 只拉新闻入库不需要任何 key.

🌐 启动 Web UI (推荐)

最快看到项目效果的方式. Streamlit 多页应用, 7 个交互页面:

页面 内容
📡 今日信号仪表盘 大盘 regime + 主题评分 + top-K 信号 + 资金分配
🔍 个股详情 K 线 / 因子画像 / 主题归属
🧠 Agent 辩论记录 三分析师 + Bull vs Bear + 交易员 + 风控
📈 回测与策略曲线 净值 / 回撤 / IC 衰减 / Barra 分解
💼 我的持仓 持仓监控 + 止损/冲高提醒 (持仓手工录入, 行情/资料实时)
📄 研究报告 研究 pipeline 产出的 HTML 报告
🎯 明日操作台 明日 Top-N 计划 + 买点/止损/目标 (开辩论则显示辩论榜 + 双命中率 A/B)
# 默认 real 模式: 全部页面真实数据 (klineshare + 东财 HTTP + daily_report json + 现场回测)
bash scripts/run_webapp.sh              # 或 Windows: scripts\run_webapp.bat
# 浏览器打开 http://localhost:8501

# 无网络 / 演示: 强制 mock
QUANT_WEB_MODE=mock bash scripts/run_webapp.sh

真实数据经 webapp/real_data.py 适配 (每个 provider 失败自动回退 mock)。今日信号池/主题评分/资金分配由当日 daily_report 派生, K线/资料/概念走 klineshare, regime 走东财 (涨停家数用 klineshare limit_up 按日缓存), 回测现场重跑并缓存。⚠️ 改了 webapp/*.py 模块须整个重启 streamlit 进程(浏览器刷新不重导入已缓存模块)。

🧪 测试诚实说明

测试分两层, 不要混淆:

类型 文件 数量 说明
数值正确性 (单元) tests/test_numerical_correctness.py 65 真数值断言: IC/ICIR 精确匹配, 最大回撤闭式公式, ATR 止损 3 种情况, Barra 残差正交性 (corr<0.05), AC 冲击 sqrt 律单调性, VPIN/OIR 边界, URL 占位符识别, Regime 崩盘/狂热识别, alpha 衰减监控单调性
冒烟/契约 (集成) 其他 tests/test_*.py ~120 主要验证"非空 / 字段存在 / 函数可跑通", 不做数值校对
python3 tests/test_numerical_correctness.py           # 65/65  ← 最该看的
python3 tests/test_parser.py                          # Level2 CSV 解析 60/60
python3 tests/test_phase1_xml.py                      # Hermes XML 34/34
python3 tests/test_phase2_memory_regime.py            # Memory+Regime 35/35
python3 tests/test_advanced_tricks.py                 # 6 暗门 55/55

跑真实数据研究 / 回测 (klineshare)

# 拉 Top300 成交额大盘池 + 因子筛选 + IC 合成 + OOS 验证
python3 scripts/factor_train_klineshare.py

# 严格 walk-forward LightGBM + Barra 残差 IC + 衰减
python3 scripts/walkforward_lgbm_barra.py

# 单因子扣费回测 (反转 / 动量反转), 复现"扣费跑输等权"的结论
python3 scripts/backtest_klineshare.py --factor reversal

LLM Agent 决策 (默认千问 Qwen)

export DASHSCOPE_API_KEY="sk-xxxxx"          # 千问 (主用); 或 DEEPSEEK_API_KEY 走备选
# 单只股票跑完整多智能体辩论 (默认 backend=qwen)
python3 scripts/agent_debate.py --code 600519
# 明日操作台叠加辩论层 (否决+重排+赞同, 双榜 A/B)
python3 scripts/daily_advisor.py --scope watch --top 20 --debate --dry-run

Level2 实时行情接入

离线模拟器 (parser + simulator + validator) 已完整可跑并通过测试; 实盘 NATS 客户端 connect() 的未绑定变量 bug 已修复, 但尚未对真实 broker 做端到端验证, 上线前请先用测试账号 (300750/600519) 跑通握手.

python3 tests/test_parser.py            # Level2 CSV 解析 (离线)

详细计划见 LEVEL2_LIVE_TEST_PLAN.mdtests/LEVEL2_GUIDE.md.


📁 项目结构

quant-ashare/
├── config/                    # YAML 配置 (config / level2 / qlib_workflow / user_watchlist)
├── data_adapter/          ⭐ klineshare(主) + 东财/新浪(兜底) + akshare 专用适配
│                              (fundflow / insider / lhb / announcements / theme / sentiment 源)
│                              + news_feed.py (东财快讯拉取, 替代 Radar 插件)
├── data_hygiene/          ⭐ 数据清洗暗门 (幸存/前视/复权/停牌/时钟) + audit 报告
├── factors/                   # 因子: alpha_pandas(37) + reversal(20) + limit(16) +
│                              # seat_network(13) + intraday(19) + regime(5) + 自适应极性
├── label_engineering/     ⭐ 标签工程 (多 horizon + vol 归一化 + 可交易屏蔽)
├── market_microstructure/ ⭐ OIR / VPIN / Kyle's λ / Almgren-Chriss / micro-price
├── corporate_actions/     ⭐ 解禁/财报/大宗事件 屏蔽 + 事件因子
├── barra_neutralize/      ⭐ CNE5 六风格因子 + 分层正交中性化
├── alpha_decay/           ⭐ IC 衰减 + 半衰期 + 拥挤度监控
├── portfolio_opt/         ⭐ 风险平价 + MVO + Black-Litterman
├── execution/             ⭐ TWAP/VWAP/POV + 冲击感知路由 + 时段避让 + 回测撮合
├── risk/                      # A股风控 (a_share_rules) + PreTradeGate 统一闸门
├── market_regime/             # 8 种市场状态分类器 (仓位乘数 + LLM 上下文)
├── thematic_investing/        # 主题投资识别 (萌芽/扩散/拥挤 + 龙头排序)
├── level2/                    # NATS Level2 接入 (离线模拟完整, 实盘路径待修)
├── llm_layer/                 # Hermes XML + 多智能体 + Radar 分诊/深挖 + 情绪
├── memory/                    # 交易记忆 + Skill Factory + radar 事件存储 (SQLite+FTS5)
├── analyst/              ⭐ 分析师简报层 (市场全景 + 因子聚合 → 微信简报, 含合规改写)
├── notifier/             ⭐ 推送统一出口 (notifier/wechat.py = Server酱; 飞书已下线)
├── pipeline/              ⭐ 研究 + 实盘 + 报告 (含 HTML/对比报告)
├── webapp/                    # Streamlit 7 页可视化 (mock/real 双模)
├── utils/                     # 配置加载 + 日志封装
├── scripts/                   # 一键脚本 (start_all / cron_daily / radar_pull / dazi_* 等)
└── ADVANCED_TRICKS.md    ⭐ 圈内 tricks 详解 + 上线 checklist

🔬 核心技术文档

文档 内容
ADVANCED_TRICKS.md 15 个头部私募在用的 tricks + 上线 checklist
LEVEL2_LIVE_TEST_PLAN.md Level2 NATS 盘中接入作战手册
tests/LEVEL2_GUIDE.md 本地 NATS + 生产环境接入指南
.claude/skills/radar-analyze.md Radar 事件交互式复盘技能

🔔 每日自动化 (定时任务 + 微信通知)

推送通道: 全部走 Server酱 微信 (notifier/wechat.py, SERVERCHAN_SENDKEY). 早期的飞书 / lark-cli 通道已整体下线, 代码里残留的"飞书"字样是历史命名, 实际都发到微信.

主流水线 — cron_daily.py (7 步)

每日 15:30 自动跑, 约 5-8 分钟完成 (见 scripts/cron_daily.py):

1/7 数据增量更新     (daily_data_updater.py — kline/龙虎榜/insider/fundflow 增量)
2/7 Paper Trade     (paper_trade_runner.py — 可 --use-radar 注入 radar 候选)
3/7 Watchlist 信号   (watchlist_signal.py  ← 自选池 z-score 因子)
4/7 Git Commit/Push (同步 paper trade 产物到 GitHub)
5/7 账户通知         → 微信 (NAV + 持仓 + 当日 P&L)
6/7 分析师简报       → 微信 (python -m notifier.dispatch, 市场全景 + 明日 Top-N + 昨日命中)
7/7 批量扫描         → 微信 (batch_scan --top 20 --bottom 10, 246 只候选池 + LLM 精分析)

任一环节失败会发错误告警到微信,不阻塞后续步骤. rc==10 (LLM/推送鉴权过期) 会打标跳过而非中断.

其它定时任务 (独立于 7 步主流水线)

任务 脚本 时机 作用
Radar 拉取 radar_pull.py --once 盘中每 5 分钟 抓东财快讯 → 写 memory.db
Radar daemon radar_worker.py --once 盘中每 5 分钟 消费新闻事件 → 分诊/深挖
Radar 简报 radar_briefing.py 12:01 / 14:33 / 15:37 当日事件情报 → 微信
打板监控 dazi_monitor.py 盘中常驻 大单异动扫描 (见下)
明日操作台 daily_advisor.py (Win 任务 QuantAdvisor) 14:30 尾盘更新 Top-N + 买点/止损/目标 (+ 可选 --debate 辩论层)
盘后复盘 daily_review.py (Win 任务 QuantReview) 15:20 命中率闭环 + IC 自适应因子重加权
持仓跟踪 track_picks.py 09:25→15:05 盘中触发买/止损/止盈
Leak 自检 cron_daily.py --leak-check 周日 20:00 跑 leak detector 回归

安装定时任务

Linux / macOSscripts/install_cron.sh (幂等):

bash scripts/install_cron.sh              # 安装 (含 15:30 主流水线 + radar + 周日 leak-check)
bash scripts/install_cron.sh --dry-run    # 预览
bash scripts/install_cron.sh --uninstall  # 卸载

Windows.bat + 任务计划程序, 用 scripts/harden_tasks.ps1 让任务"唤醒执行/错过即补/失败重试":

run_advisor.bat  (daily_advisor 14:30)  run_review.bat (盘后复盘 15:20)
run_track.bat    (持仓跟踪 09:25)         run_dazi.bat   (打板监控常驻)
run_webapp.bat   (Streamlit 8501)         run_weekly.bat (周报 周五 ~15:45)
powershell -File scripts/harden_tasks.ps1   # 加固 QuantAdvisor/QuantReview 任务

⚠️ 任务须设为「不管用户是否登录都运行」(LogonType S4U)。否则任务在交互式控制台会话里跑, 会话一被打扰 (关窗口 / Ctrl+C / 会话中断) 进程即被杀, 退出码 0xC000013A (STATUS_CONTROL_C_EXIT), 报告不生成。harden_tasks.ps1 只调重试设置不改登录类型, 需另设 (无需密码):

$p = New-ScheduledTaskPrincipal -UserId Administrator -LogonType S4U -RunLevel Limited
foreach ($t in 'QuantAdvisor','QuantReview','QuantTrack','QuantWeekly') { Set-ScheduledTask -TaskName $t -Principal $p }

打板监控 dazi_monitor.py — 大单异动扫描

盘中扫描"刚启动"的个股供打板参考. 模型 "BOS 大单异动指数 V3" = 量能异动 (35%) × 价格确认 (30%) × 资金确认 (25%) × 活跃度过滤 (10%), 需 ≥2 根 1 分钟连续确认后分级 S/A/B/C:

  • 量比 = 近 5 分钟量 / 前 30 分钟 5 分钟均量 (滚动基线)
  • 涨速+结构 = 5 分钟涨幅 且 站上 VWAP 且 创日内新高 (滤洗盘/派发)
  • 资金确认 = 近 5 分钟主力净流入 > 0 且 当日累计外盘占比达标
  • 活跃度 = 换手 + 近 5 分钟成交额门槛 (滤"低价股 × 大手数"假信号)
  • regime = 上证在 5 日线上用基准阈值, 弱市抬高量比/涨幅要求

数据 100% 东财免费实时接口 (快照 / 1 分钟 K / 分钟主力净流入), 推送 Server酱, 状态存 output/real_positions/dazi_state.json.


🔬 研究档案 (V6-V8 严格 OOS 实验)

scripts/run_holdout_v6.py: B+ 自适应极性 (IC z-score + 显著性过滤 + 惯性 + 横截面归一化), 暴露了早期版本的 label leak.

scripts/run_holdout_v8.py: V8 主力资金流驱动 - 集成超大单/大单/中单/小单 12 个资金流因子. 在 2025-2026 单边牛市里 IR 仍负 (-0.75), 证明: 多头选股策略在 FOMO 牛市天生劣势, 不是技术问题.

factors/adaptive_polarity.py: 4+1 层防护的因子极性自适应:

  1. IC 时序 z-score (置信度, 不是绝对值)
  2. 显著性过滤 (|z|<0.8 weight=0)
  3. 惯性 EMA (防 regime 抖动)
  4. 横截面归一化 (Σ|w|=1)
  5. IC 衰减加权 (近期权重大)

factors/alpha_regime.py: 大盘 regime 因子 (动量/广度/波动率), 时序 z-score, 不走截面 z.

factors/alpha_limit.py: 涨停/连板/炸板/一字板/启动期压缩 等 16 个 A股独有因子.

factors/seat_network.py: 龙虎榜席位网络 13 因子 (游资联动图/机构主导/接力 vs 一日游).

data_adapter/insider.py: 高管/大股东增减持事件因子.

data_adapter/fundflow.py: 主力资金流 (akshare 个股近 120 日明细, 12 因子).

scripts/paper_trade_runner.py: 每日自动化 paper trade - 维护真账户 + T+1 买卖 + 硬止损(亏 5%/破 MA5)+ 持仓档案.


🛡️ 免责声明

本项目仅供学习与研究, 不构成任何投资建议.

量化投资存在实质性风险. 任何 "95% 胜率"、"夏普 5+" 的宣传都是过拟合或话术. 真实量化 alpha 的核心是 (胜率-50%) × 盈亏比 × 高频次, 不是单次准度.

本项目自身的诚实记录: V3-V5 早期 README 写的"夏普 1.86 / IR 1.21"含 label leak, 修复后 OOS IR ≈ 0; 用 klineshare 真实数据复测后, 反转族因子的"显著"也被证明是重叠样本假象, 扣费后跑输等权. 这恰好印证了 — 任何"漂亮回测"都要严格 OOS + 非重叠样本 + 扣费验证.

实盘前必须:

  1. ✅ 至少 6 个月样本外回测 (非重叠样本 / Newey-West 判显著)
  2. ✅ 3 个月模拟盘验证
  3. ✅ 从小资金起步 (< 预计规模 10%)
  4. ✅ 严守风控规则 (最大回撤 / 熔断 / 止损)

🙏 致谢的开源项目

本项目学习了以下优秀项目的思想:


📮 贡献

欢迎 Issue / PR. 特别欢迎:

  • 新的 A股特化因子实现
  • 头部私募已公开的 tricks 补充
  • 性能优化 (向量化 / Cython)
  • 更多后端 LLM 支持 (本地 llama / vLLM)

📄 License

MIT - 详见 LICENSE 文件, 含金融软件专属免责条款.

About

机构级 A股量化系统 - Hermes 多智能体 + Barra 中性化 + Level2 微结构 + 15 个圈内 tricks 完整实现

Topics

Resources

License

Stars

13 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages