# Quant-Ai **Repository Path**: tomoo996/quant-ai ## Basic Information - **Project Name**: Quant-Ai - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-07 - **Last Updated**: 2026-08-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 量迹 Quant AI 面向普通投资者的 AI 量化平台 MVP。 ## 当前数据边界 - 指数、全部 A 股、分时、K 线、行业/概念板块及其全部成分股:东方财富公开行情,由服务端获取并短时缓存。行情页默认每 15 秒自动刷新,可切换刷新频率或手动刷新。上游对并发突发请求会主动断连,服务端因此采用串行分页、按域名冷却和镜像域名回退;K 线域名被限流时总览分时自动降级到延迟分时接口,仍失败才显示本地快照。 - 市场全景:基于全部 A 股实时统计成交额、涨跌中位数、涨跌分布、涨停/跌停近似数量,以及领涨、领跌和成交额排行。 - 回测:支持沪深北 A 股全市场、沪深 300 当前成分股、中证 500 当前成分股,以及行业/概念板块,最长可选择“含 2015 年至今”。日线先完整同步到 DuckDB,再由 CPU/GPU 批量计算。撮合使用前一交易日收盘信号、下一交易日收盘执行,显式保留现金并执行 T+1;成本按双向佣金、双向滑点、仅卖出印花税和每笔最低佣金逐笔扣除,并使用实际成交金额相对当日成交额的平方根模型追加市场冲击。成交参与率是买卖双方的硬上限:超出容量时部分成交,剩余订单滚动到后续交易日,达到有效期后取消;缺少成交额时拒绝成交,期末无法平仓的持仓按未实现损益保留。页面报告成交率、顺延、过期、T+1 阻塞、冲击成本和期末持仓,并把已实现与未实现股票贡献逐项归因。地狱模式会用严格成本、信号延迟、流动性枯竭和系统性跳空四个情景重新运行完整组合路径,并报告历史 VaR/CVaR、最差日、多日尾部损失、水下期和损失集中度。系统还使用固定参数的 5 日连续收益块生成 1,000 条一年期路径,并在同源路径上追加一次固定 12% 跳空,报告收益分位、亏损路径占比和回撤分布;该结果只用于路径敏感性诊断,不是未来收益预测。部署闸门分别列出历史证据与模拟盘、券商成交复核、异常运行流程等回测外必做项,最多允许进入前向模拟盘,不生成“可实盘”评分。结果同时保留固定隔离样本、5 年参考/1 年测试非重叠滚动前推、公式复杂度和未来数据白盒审计。AI 优化会固定优化前基线并按同口径复测。幸存者偏差、历史成分、ST/停牌、涨跌停封单和盘口队列仍会作为未解决风险明确展示。 - 数据持久化:AI 配置、因子定义、编辑结果、回测任务和回测结果保存在本机 SQLite;历史日线单独保存在 DuckDB。首次全市场回测需要同步股票池历史,后续同区间回测会直接复用 DuckDB。 - 模拟交易:支持手工模拟下单,以及按因子最新真实日线信号进行组合调仓;成交价取执行时真实最新行情,资金、持仓、运行记录和订单保存在本机 SQLite,可一键重置回初始资金。 - AI 因子:可在页面中配置 OpenAI Responses API 或兼容 Chat Completions 服务;未配置模型凭证时不生成内容,也不会回退到模板假数据。因子按趋势动量、均值反转、低波防御、流动性、风险控制、多因子复合和自定义分类管理,旧因子会按公式与说明自动归类并支持筛选。支持普通生成、专业研究生成、优化当前草稿,以及指定已保存因子和某次成功回测进行优化。批量研究工作台可一次生成并保存 2-8 个差异化专业因子,选择后批量提交回测队列并持续显示任务进度,也可按最近训练区摘要并发优化并覆盖每个原因子;选择 2-5 个因子时还能指定主因子,将配置和训练证据合并为一个组合优化草稿。回测驱动优化只向模型发送训练区摘要,隔离样本保留给人工诊断。再次优化时可把训练区内的优化前后差异提供给 AI,用于保留有效改进并修复退化指标。专业模式同时生成可证伪假设、信号逻辑、适用市场、失效条件、验证重点及可执行公式,生成后可在页面完整编辑并持久化;研究区显示完成度并支持 AI 补全,未保存编辑会在刷新或切换页面后恢复。安全公式 DSL 支持 momentum/volatility/liquidity/trend/rsi/drawdown/sharpe/turnover_change 八类指标、2-250 日多窗口,以及 abs/sqrt/log/min/max/clamp 嵌套表达式;编辑器除实时语法校验外,还会诊断重复信号、窗口覆盖、风险维度和过拟合复杂度。公式在 CPU Worker 与 CuPy CUDA 使用同一指标定义。 - 实盘交易:未配置券商开放 API 时不允许下单,也不会伪造成交。 ## 启动 ```powershell npm install npm run dev ``` 打开 `http://127.0.0.1:4173`。开发命令会同时启动前端和 `http://127.0.0.1:8787` 数据服务。 ## GPU 回测加速(可选) 需要 NVIDIA GPU、可用的 `nvidia-smi` 和 CUDA 12 或更新版本。安装脚本会按驱动版本选择带 CUDA Toolkit headers 的 CuPy CUDA 12/13 包: ```powershell npm run gpu:setup ``` 安装后重启服务,在回测页选择“自动”或“GPU”。页面会显示探测到的设备;回测结果会记录实际使用的计算后端、批量大小和 CPU 回退原因。GPU 只加速已取得日线后的滚动指标计算,首次全市场行情下载仍取决于数据源速度。 ## 生产构建 ```powershell npm run build npm run preview ``` 生产服务默认运行在 `http://127.0.0.1:8787`。 ## AI 配置 进入“AI 因子”,点击“AI 设置”,填写接口地址、模型、接口模式和 API Key 后可直接测试连接。配置保存在本机 SQLite,服务重启后会自动恢复;API 只向浏览器返回密钥末四位。数据库中的密钥未额外加密,请限制 `data` 目录的访问权限。也可以通过 `OPENAI_API_KEY`、`AI_BASE_URL`、`AI_MODEL`、`AI_PROVIDER` 和 `AI_API_MODE` 环境变量启动服务,其中环境变量优先且密钥不会写入数据库。 ## 本地数据 SQLite 数据库位于 `data/quant-ai.sqlite`,保存因子、回测任务与结果、AI 配置和模拟账户。历史日线缓存使用本机 DuckDB 列式存储(`data/quant-history.duckdb`),读写不需要整段 JSON 序列化,长区间、全市场回测更快也更省磁盘;缓存读取使用多连接并行查询,指标计算使用前缀和滚动统计避免反复切片。服务启动时会把旧版 SQLite 中的日线缓存全量迁移到 DuckDB 并回收 SQLite 空间。行情源限流或断网时,回测直接使用 DuckDB 已缓存的区间继续运行(最多缺少最近几个交易日),不会因上游不可用而中断。旧版浏览器 `localStorage` 中的 `liangji-factors-v2` 会在 SQLite 因子库为空时自动迁移;模拟账户同理,`liangji-paper-v2` 会在首次打开交易页时迁移到 SQLite,之后所有设备访问同一服务即可共享同一个模拟账户。 ## 注意 公开行情接口不提供可用性承诺,生产部署前应更换为有授权和 SLA 的行情服务。退市样本只能降低幸存者偏差;免费数据仍不能完整还原历史指数成分、历史 ST、停牌、涨跌停封单和历史市值。白盒审计会披露这些缺口,但不能凭空修复缺失数据。回测结果不代表未来收益。