机构级 A股量化研究框架 — 融合多智能体 LLM 决策、事件驱动 Stock Radar、Barra 风格中性化、Almgren-Chriss 冲击成本建模的开源实现.
不是又一个抄 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 乘数 │
└──────────────────────────────────────────────────────────────┘
- 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 (backendqwen/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.
新闻源是东财全球财经快讯 (无鉴权公开 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: 定期合并去重记忆、剪枝低价值反思
✅ = 已有代码 + 测试/实盘调用; 🟡 = 已实装但仅测试或旁路使用; 🚧 = 骨架/规划
| # | 技巧 | 状态 | 大众盲点 → 本项目实现 |
|---|---|---|---|
| 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 更新.
- ResearchPipeline (
pipeline/research.py): 数据体检 → 标签 → 屏蔽 → 因子 → 前视扫描 → Barra → IC/衰减 → 带冲击回测 (强制过PreTradeGate) → 报告 - DailyTradingPipeline (
pipeline/daily_trading.py): Regime → 筛选 → Agent 辩论 → 风控 → 冲击路由
⚠️ 重要诚实声明: 早期版本 (V3-V5) 的"夏普 1.86 / IR 1.21"包含了 训练集 label 泄露(label horizon=30, 但训练截止 = train_end, 后 30 天 label 在真实时点不可观测). 修复 leak 后 OOS IR 跌至 -0.13 ~ +0.2 之间. 本项目当前定位为研究框架, 不是已验证的实盘策略.
| 版本 | 因子构成 | 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 真实行情后, 用 Top300 成交额大盘池 (295 股, 2024-2026) 做了三轮严格实证, 结论比早期更硬:
- LightGBM 揉 36 个 pandas 因子, 严格防泄露 (
label_cut = t - horizon): OOS IC≈0, t=-0.24 不显著 → ML 堆公开因子没 alpha, 把信号淹在噪声里. - 反转族因子日频 IC 看似显著 (REV5 t=2.39, 过 Barra 中性化残差 t 甚至升到 3.53) →
⚠️ 这是重叠样本假象: 日频"未来 5 日收益"相邻重叠 4/5, IC 序列强自相关,t = mean/std×√n把重叠当独立, t 值系统性虚高. - 反转组合换非重叠周频 + 扣 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, 扣费回测).
公开因子 + 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.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线/涨停/龙虎榜.
删掉了旧的浏览器插件依赖 — 现在新闻由后台定时器直接抓东财快讯. 一条命令拉起「新闻拉取 + 分诊/深挖」全链路:
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.
最快看到项目效果的方式. 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# 拉 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 reversalexport 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离线模拟器 (parser + simulator + validator) 已完整可跑并通过测试; 实盘 NATS 客户端 connect() 的未绑定变量 bug 已修复, 但尚未对真实 broker 做端到端验证, 上线前请先用测试账号 (300750/600519) 跑通握手.
python3 tests/test_parser.py # Level2 CSV 解析 (离线)详细计划见 LEVEL2_LIVE_TEST_PLAN.md 与 tests/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 通道已整体下线, 代码里残留的"飞书"字样是历史命名, 实际都发到微信.
每日 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/推送鉴权过期) 会打标跳过而非中断.
| 任务 | 脚本 | 时机 | 作用 |
|---|---|---|---|
| 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 / macOS — scripts/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 }
盘中扫描"刚启动"的个股供打板参考. 模型 "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.
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 层防护的因子极性自适应:
- IC 时序 z-score (置信度, 不是绝对值)
- 显著性过滤 (|z|<0.8 weight=0)
- 惯性 EMA (防 regime 抖动)
- 横截面归一化 (Σ|w|=1)
- 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 + 非重叠样本 + 扣费验证.
实盘前必须:
- ✅ 至少 6 个月样本外回测 (非重叠样本 / Newey-West 判显著)
- ✅ 3 个月模拟盘验证
- ✅ 从小资金起步 (< 预计规模 10%)
- ✅ 严守风控规则 (最大回撤 / 熔断 / 止损)
本项目学习了以下优秀项目的思想:
- microsoft/qlib - AI 量化平台基石
- akfamily/akshare - A股免费数据源
- NousResearch/hermes-agent - XML 结构化推理
- HKUDS/AI-Trader - 多智能体辩论
- AI4Finance-Foundation/FinRL - 强化学习金融
- hsliuping/TradingAgents-CN - 中文金融 agent
欢迎 Issue / PR. 特别欢迎:
- 新的 A股特化因子实现
- 头部私募已公开的 tricks 补充
- 性能优化 (向量化 / Cython)
- 更多后端 LLM 支持 (本地 llama / vLLM)
MIT - 详见 LICENSE 文件, 含金融软件专属免责条款.