手搓量化交易系统(测试中)—— 双轨并行(主板/科创板)+ 进化闭环架构 修订:2026-08-17
一、系统功能总览
QuantForge 是一套日频量化选股 + 自动模拟交易 + 周频策略进化的完整系统,覆盖从数据到执行的十层架构:
数据层(双源热备)→ 前置过滤(全市场候选池)→ 七套选股策略
→ 技术择时 → 风控熔断 → 组合仓位 → 模拟执行 → 评价进化 → 资产管理 → 周频闭环
1. 数据与基础设施
- 双源热备:通达信本地(mootdx → 自研 .day 解析)→ AkShare/新浪 网络备用,主源故障自动切换
- Parquet 数据仓库:全市场 5578 只股票日线 + 5543 只财务数据,与通达信物理解耦
- 财报时效引擎:根治未来函数——Q1/H1/Q3/年报按法规披露日严格映射,回测审计
lookahead_safe
2. 全市场选股过滤
- 主板/科创板差异化标准(上市时长、60 日均额、股价区间、净利、商誉、ST)
- 行业白名单(申万一级 31 行业,多选)、流通市值范围、ST 过滤开关
- 科创板盘中流动性监测(30 分钟成交额预警 / 60 分钟强制减仓)
3. 七套选股策略
| 策略 | 范围 | 核心逻辑 |
|---|---|---|
| A 价值质量 | 主板+科创 | PE/PB/ROE/商誉,行业中性化 |
| B 动量趋势 | 主板+科创 | 20/60/120 日动量 + 均线多头 |
| C 突破平台 | 主板+科创 | 平台整理 + 放量突破 |
| D 回踩支撑 | 主板+科创 | 上升趋势回踩均线企稳 |
| E 低波动成长 | 仅主板 | 低波动 + 高成长 |
| F 科创成长创新 | 科创板 | 研发密度 + 营收高增 |
| G 涨停事件 | 双板 | 竞价 VWAP 买入 + 高开分层仓位(≤3% 满仓 / 3~5% 半仓 / >5% 放弃)+ 竞价止盈 |
所有因子强制申万一级行业中性化;财务因子一律走财报时效引擎。
4. 技术择时
- 沪深300 / 科创50 双轨独立判定(趋势/震荡/恐慌)
- 策略 G 情绪硬关闭:昨日涨停 <5 家或炸板率 >60% 禁开新仓
5. 风控与熔断
- 不对称 ATR 动态止损:基础系数 × (0.8 + 0.4×ATR14/ATR60中位数),叠加单笔总资金 2% 硬保护
- 全局单票上限:主板 8% / 科创 5%,多策略合并持仓聚合校验,超限按优先级降仓
- Commander 熔断:一级(指数跌≥4%+跌停>30)只卖不买;二级(≥5%+跌停>80)全冻结,需 TOTP 动态验证码解冻
6. 组合与执行
- 主板/科创板总仓独立核算 + 行业中性化分配 + 恐慌市 G 归零
- Cash Sweep:废单资金 14:50 优先加仓浮盈 0~3% 持仓,否则转 GC001 逆回购
- 模拟券商:涨跌停/停牌拦截、滑点、佣金印花税;连续跌停 2 日且封单>流通盘 5% → 估值归零应急
7. 自选股 / 废弃股池
- 日频信号选出的股票自动入自选股池(每日 09:30)
- 每日复核:不符合次日买入条件的自动移入废弃股池(记录原因)
- 两池均可手动增删、清空;废弃股可恢复
8. 虚拟账户与自动交易
- 多虚拟账户完全隔离(资金/持仓/策略配置互不影响),重名限制 + 改名/清空/删除
- 每账户独立自动交易开关:开启后每日 09:30 按该账户策略配置自动下单建仓
- 每日九环节自动运营(09:10 → 20:00)
9. 回测与进化
- 事件驱动回测引擎(T+1 执行、无未来函数审计),极端行情回放(2024-01 微盘崩盘 / 2024-10 指数急跌)
- 双门禁上架检验:夏普衰减率 ≥0.65;参数平原 ±15% 随机 50 组年化收益标准差 <2%
- 因子挖掘(全市场 IC 排行)/参数优化(最优参数搜索)
- 周频自动进化评估:每周五 16:30 自动跑绩效+IC+因子挖掘,生成周报归档
二、系统特色
- 全市场选股:5578 +只 A 股股票池
- 无未来函数:财报时效引擎 + T+1 执行审计,杜绝”纸上富贵”
- 双源热备:通达信挂了自动切网络源,数据流永不中断
- 策略 G:VWAP 竞价买入 + 高开分层仓位(黄金博弈区半仓参与)
- 人工熔断优先:极端行情 Commander 一键冻结,TOTP 验证码解冻
- 周频进化闭环:每周自动评估 → 报告归档 → 双门禁把关 → 策略迭代
- 自选/废弃股池:信号 → 入池 → 复核 → 废弃,全流程可视化
- 全中文界面:9+2 个导航页面,配置表单化,零门槛操作
三、快速开始
环境要求
- Windows 10+ / Python 3.14(3.11+ 亦可)
- 本地中信证券通达信(
C:\zd_zxzq_gm,可选——无通达信时自动走网络源)
安装
pip install -r requirements.txt
数据初始化(全市场,约 5~15 分钟)
python scripts/init_parquet.py --limit 0 # 全量 5578 只股票日线
# 财务数据(若 finance_cache 为空):
python -c "from quantforge.config import load_settings; from quantforge.dal.parquet_store import ParquetStore; from quantforge.dal.finance_engine import FinanceEngine; FinanceEngine(load_settings(), ParquetStore(load_settings())).refresh()"
启动
python -m uvicorn quantforge.webui.app:app --host 127.0.0.1 --port 8080
# 或使用运维脚本
scripts\start_server.ps1
打开 http://127.0.0.1:8080 进入统一导航界面。
四、操作说明
仪表盘
- 账户净值、今日信号数、熔断状态、最近事件总览
数据源状态
- 三大数据源健康灯(通达信本地 / Parquet 仓库 / 网络备用),最新交易日、故障切换次数
- 财报时效法规映射表(Q1 5/1、H1 9/1、Q3 11/1、年报次年 5/1)
策略信号
- 七套策略当日信号列表(全市场),G 策略显示高开分层决策
自选股
- 日频信号自动入池;立即复核按钮手动触发每日复核;手动添加代码 / 移除 / 清空
废弃股
- 复核不合格自动入池(含原因);恢复回自选 / 移除 / 清空
风控 / 解冻
- 熔断状态灯(绿/黄/红:正常/一级/二级)
- 二级熔断时:输入动态验证码(服务端生成,
config/secrets.toml的 TOTP secret)解冻 - 止损单、单票上限检查、降仓记录
组合持仓
- 主板/科创双轨仓位进度条、行业分布、Cash Sweep 记录
虚拟账户
- 新建账户(名称/资金/风险偏好/策略配置)
- 卡片操作:改名 / 清空 / 删除 / 自动交易开关(开关开启才参与每日自动交易)
- 展开看持仓明细、策略配置
评价报告
- 每周总结(账户概览/自动交易/周绩效,可查任意日期)
- 月度绩效(收益/回撤/夏普/胜率/盈亏比/换手)
- 季度因子 IC(IC 均值/ICIR/单调性)
回测 / 进化
- 标的池:全市场 5578 只复选框列表(主板/科创/北交所分组),全选/仅主板/仅科创/清空快捷按钮;支持手工输入代码(600519 / sh_600519)
- 回测任务:选策略、区间、资金、极端行情回放(2024-01 微盘崩盘 / 2024-10 指数急跌)→ 运行
- 结果:中文绩效指标表 + 净值曲线 + 成交明细(无未来函数审计报告)
- 进化双门禁检验:填样本内/外夏普 → 夏普衰减门禁;填最优参数+区间 → 参数平原门禁
- 因子挖掘:全市场因子 IC 排行
- 参数优化:搜索最优参数(可自定义参数空间 JSON)
- 运行本周评估:手动触发周频进化评估
配置
- 中文表单化配置:16 组 58+ 项(数据路径、数据源、选股过滤、策略参数、止损、熔断、费用、调度)
- 选股过滤:行业白名单(31 行业复选框,全不选=全部)、流通市值 >? / <?、ST 过滤开关
- 保存写入
config/zz_overrides.toml(增量覆盖,删除即回退默认)
五、每日自动运营流程(工作日)
| 时间 | 环节 | 内容 |
|---|---|---|
| 09:10 | 数据校验 | 通达信完整性 + 财报时效检查 + 行业中性化缓存 |
| 09:15 | 外盘预判 | 隔夜 A50/港股 → 熔断风险预判 |
| 09:25 | 竞价监控 | 策略 G 高开幅度 → 分层仓位决策 |
| 09:30 | 信号执行 | 全市场信号 → 入自选股池 → 复核 → 开启自动交易的账户自动下单 |
| 10:00-14:30 | 实时风控 | 不对称止损 / 全局超限 / 科创板流动性监测 / 熔断监控 |
| 14:50 | 调仓 | 月/季调仓 + G 未连板卖出 + Cash Sweep |
| 15:00 | 收盘更新 | 当日日线落盘 + 首板事件记录 |
| 15:30 | 绩效 | 当日绩效 + G 连板持有判定 |
| 20:00 | 预计算 | 次日信号预计算 |
| 周五 16:30 | 周频进化 | 周绩效 + 因子 IC + 因子挖掘 + 周报归档 |
六、目录结构
E:\my-project\QuantForge\
├── docs\ # 需求文档 / 架构设计 / 运维手册 / 赞赏码
├── quantforge\ # 主包(dal 数据层 / factors 因子 / universe 过滤 /
│ # strategies 策略 / timing 择时 / risk 风控 /
│ # commander 熔断 / portfolio 组合 / execution 执行 /
│ # evaluation 评价 / backtest 回测 / evolution 进化 /
│ # assets 账户 / scheduler 调度 / webui 界面)
├── config\ # 配置文件(settings/sources/strategies/risk/execution/
│ # schedule/evolution/labels 配置字典)
├── scripts\ # 运维脚本(init_parquet/sync_daily/start_stop_server/
│ # backup_data/verify_schedule/audit_config)
├── tests\ # 测试(192+ 用例:契约/故障注入/财报边界/极端回放)
└── data\ # Parquet 数据仓库(daily/finance_cache/raw_source/events)
七、常见问题
| 问题 | 处理 |
|---|---|
| 回测全 0 | 检查标的池是否勾选(默认全不选) |
| 信号页加载慢(首次 25s) | 正常,全市场计算;同日重复请求秒回(缓存) |
| 配置保存后不生效 | 计算模块需重启服务(配置页回显即时);或等每日 09:10 |
| 二级熔断冻结 | 管理员在风控页输入 TOTP 验证码解冻 |
| 通达信数据缺失 | 系统自动切 AkShare 网络源;python scripts/sync_daily.py 手动补 |
| 北交所不在策略范围 | 策略池为主板+科创,北交所数据保留可回测 |
如果 QuantForge 帮到了你,欢迎支持一下:

⚠️ 本系统为量化研究/模拟交易工具,所有信号与回测结果仅供学习研究,不构成投资建议。股市有风险,入市需谨慎。


这个系统的功能是真全啊,十层架构看得我眼花缭乱,作者是真爱折腾。不过Python 3.14都出来了?我还在用3.10呢,有点跟不上节奏了。
财报时效引擎这个设计很聪明,很多回测系统就是栽在未来函数上,看起来没问题一实盘就露馅。作者能想到这一步,说明是真吃过亏的。
双轨并行+周频进化,听起来像在做量化版的持续集成。就是不知道实际跑起来稳定性怎么样,策略自动进化的门禁阈值会不会太宽松或太严格?
策略G竞价买入这个玩法挺有意思,但高开大于5%就放弃,那遇到连续涨停的妖股是不是就永远错过了?感觉这个策略在牛市里会有点吃亏。
界面全中文这点对新手友好,但功能这么多,配置项肯定也不少,估计光是把参数理解透就得花不少时间。作者有没有打算出个配置说明文档或者视频教程?