Commit Graph
36 Commits
Author SHA1 Message Date
shy3130 21279ecfa2 feat(lab): 自动策略实验室 — 守护复验 + 稳健选冠/权重精调 + 组合建议 + 闭环编排
在既有挖掘链路之上补齐「发布后持续验证与持续组合」闭环
(设计: docs/auto-strategy-lab-plan.md):

- P1 策略守护: 挖掘发布自动落 mining_gate 基线 (天然 OOS); 每日收盘
  数据更新后在新数据上切 K 段真实回测复验, 按稳健分对比基线判定
  健康/观察/退役三态 (段回测失败只降级观察不退役; 新数据 <30 交易日
  跳过本轮; retired 不再自动复验)。任意策略可手动入护 (尾随参考基线,
  判定只针对入护后新数据)。回测页稳健性验证新增「策略守护」子页。
- P2a 稳健选冠: 冠军排序分从外层折 Sharpe 均值改为 0.6×中位+0.4×最差
  (复用 robust_score); artifact 新增可选列 oos_worst_sharpe (v2 旧档
  兼容读取); strict 档发布额外要求最差折 Sharpe>0; 算法版本升
  mining-v3 并进数据指纹, 防止升级后 claim 幂等复用旧口径结果。
- P2b 权重精调: 冠军组合在 {0.5,1.0,1.5,2.0} 比率网格 (首因子固定
  1.0, 截面分位打分天然尺度不变) 两段式精调 — 外层测试窗选优 + 全窗
  复验退化>20% 放弃; 消耗 run 剩余预算 (不足自动跳过); 产物为独立
  签名候选行, run summary 带 refinement 摘要。
- P2d 组合建议: 守护运行时扫描健康冠军间近 126 个交易日日收益 Pearson
  相关性 (≥30 共同交易日, ≤0.7 入选); 前端人工确认后生成等权
  composite 策略 (fail-closed 建议对校验 + blake2b 幂等) 并自动以
  尾随参考基线入护。
- P3 闭环编排: lab_mined_slot_limit 偏好 (默认 10, 0=不限) 在发布
  门槛通过后校验, 名额满则新冠军停在 pending 等位;
  /api/backtest/lab/report 聚合守护/挖掘/名额战报 (前端总览卡);
  lab_schedule 单入口编排周度挖掘 + 日度守护 (失败互不阻断)。

测试: 新增 guardian 判定/运行时/存储/调度/API/组合与挖掘 v3 选冠/
精调用例; 后端全量 3224 通过, 前端 308 通过; 真实数据沙盒 E2E
(挖掘 v3 全链路 / 发布门槛 / 名额边界 / 复验语义 / 组合扫描 /
战报核对 / 性能延迟) 通过。P2c (overlay 候选) 按设计稿按需启动,
默认不做。

Signed-off-by: shy3130 <shy3130@qq.com>
2026-10-25 23:43:34 +08:00
shy3130 da9dbca422 feat(backtest): 稳健参数筛选与滚动样本外检验重构 (P1-P4)
参数排名从单窗样本内得分改为 K 段折外稳健分 R = 0.6×中位 + 0.4×最差
(设计: docs/robust-optimizer-plan.md), 四阶段全部落地:

- guards 共享护栏: 主目标白名单 + 最小交易数门槛 (fail-closed, 缺交易数
  按不达标处理), 两模式一处实现
- robust_optimizer: 等分切窗 (2-6 段, 每段≥14天) / 稳健分 / 冠军收敛诊断
  (unanimous/majority/scattered) / Top-20 全窗 IS 细化与退化率 /
  高原判据 (邻域得分衰减, 零额外回测); worker 接线 robust_optimize 任务
- 滚动样本外检验补强: 每折 OOS 最小交易数门槛 (无效折透明跳过),
  前端折预览 / 参数漂移轨迹 / 采用最新折参数
- 前端: 冠军卡 (收敛/高原徽章/乐观偏差) + K 段排名表 + 验证窗预览 +
  应用参数闭环 (POST /strategies/config, 可逆); SSE 重连与跨设备接回
- P4 摒弃旧路径: 删 /optimize/stream 与 /optimize/cancel 端点及 worker
  optimize 任务类型; 白名单全面生效 (optimizer.VALID_OBJECTIVES 收敛到
  guards; walkforward 端点校验退化目标 400)
- 附带修复: 叠加条件×矩阵路径 SignalMatrix 只读违规 (np.where 产物
  可写), optimizer_trial 轻量统计恒保留 n_trades

实测: 126 组合全市场网格 1.71× 旧版耗时 (视图复用优化自 2.01×; 差额
为引擎层每 run 固定开销, 详见方案文档第九节); 全量回归 3131 通过。

api.ts 同时带入稳健优化折预览客户端与声效语音包 API 客户端
(语音包功能随后续提交落地界面)。

Signed-off-by: shy3130 <shy3130@qq.com>
2026-10-25 20:14:10 +08:00
shy3130 c0daaa8302 docs(readme): 同步测试数与助手动作工具数
- 测试数 2400+ → 3000+ (后端 3096 + 前端 55 个测试文件)
- 动作工具 4 → 5: 补创建 AI 策略草稿; 补免确认开关说明 (默认关,
  轮次检查点安全阀不受影响)

Signed-off-by: shy3130 <shy3130@qq.com>
2026-10-25 17:40:19 +08:00
shy3130 864ad2a95c chore(contributing): 引入 DCO 贡献来源声明 + 再许可授权条款
为未来的协议切换 (MIT → AGPL-3.0) 与商业双授权做准备:

- CONTRIBUTING.md 新增第 14 节: 每次提交须带 Signed-off-by 尾注
  (git commit -s), 并授予维护者永久、不可撤销、全球范围、非独占、
  免版税的再许可权; 明确本节仅对生效日之后的提交生效, 历史贡献永久
  保持 MIT; 列出需签署正式 CLA 的情形 (职务作品/专利/大额贡献)。
- .github/workflows/dco.yml: PR 事件逐提交检查 Signed-off-by 尾注,
  跳过 merge commit; 仅检查 PR, 不阻塞 main 上的直接提交。
- README.md 贡献入口补充 DCO 提醒。

仅有 DCO 尾注不足以支撑协议切换 —— 缺少明确的再许可授权时, 维护者
只能在现有协议下分发第三方贡献, 无法完成 AGPL 化与商业双授权。

Signed-off-by: shy3130 <shy3130@qq.com>
2026-10-24 22:52:49 +08:00
shy3130 5d6ac5c736 fix(logs): 日志归拢 data/logs/ 并为桌面版 desktop.log 增加大小切割
- 新增 app/logfile.py attach_rotating_log: 统一 data/logs/ 子目录 + RotatingFileHandler + 旧位置日志一次性迁移 (目标已存在/被占用则跳过, 失败仅 warning 不阻断启动)
- desktop.py: desktop.log 由无限追加 FileHandler 改为 10MB×5 切割 (长期挂机不再无限增长); 失败页与错误提示的用户可见路径同步 data\logs\desktop.log
- main.py: backend.log 改用共享函数, 参数不变 (10MB×3), 目录随迁
- README/dev.ps1 排障路径同步; 新增 test_logging_setup.py 4 例 (迁移/冷启动/不覆盖/不可写容错)
2026-10-23 22:00:51 +08:00
shy3130 6e1c178c24 docs(deploy): 补充 host.docker.internal 访问与 data 挂载保护说明 2026-10-22 21:51:09 +08:00
shy3130 9f7d64651f update readme 2026-10-21 13:34:43 +08:00
shy3130 c2ff120581 docs(readme): 补充 dev.ps1 参数与低配机器内存说明
- Dev 模式: 列出 -NoReload / -Force / 端口参数, 说明停止要用 Ctrl-C 而
  非窗口 X, 日志落在 data/logs/, 启动前会检测同端口已有实例
- 新增「内存占用与低配机器」: 实测常驻/峰值 (默认 ~1.3GB / 1.5-1.8GB,
  POLARS_MAX_THREADS=2 降至 ~0.8GB / ~1.2GB), 2GB 机器的 .env 与 Compose
  配置建议, 以及不在 2GB 上跑回测/优化/挖掘、不多开实例的边界说明
2026-10-20 16:15:28 +08:00
shy3130 9d3ac6381d feat: 扩展数据调度与交互优化、缓存与策略性能优化
- 扩展数据: 每日/每周/每月调度 + 仅交易日, 拉取设置双层对话框, 创建/编辑弹窗统一
- 量比: 盘中按已交易分钟折算当日成交量, 修复自动/手动数值撕裂
- 策略执行: 分钟路径接入后台单飞队列, 线程池 40→100, 渐进式结果隔离
- 性能: 策略矩阵请求内缓存、策略缓存内存镜像(mtime 指纹失效)、坏策略向量化
- 前端: 分时缩略图着色改为过昨收基准线判定、数字输入草稿态、RunningHub 折扣动态化
- RunningHub: 透传忙闲时定价并展示当前时段
2026-10-19 16:45:13 +08:00
wshyandGitHub a307fcf465 Update README.md 2026-10-16 21:08:32 +08:00
shy3130 99efc808e8 docs: 补 v0.3.7 版本表与二开指南
二开指南补去内置化/叠加条件/string 参数; 安全校验描述同步 #475 后口径。
2026-10-15 12:27:59 +08:00
shy3130 af45efcf01 修复readme格式乱码 2026-10-13 22:40:05 +08:00
shy3130 25fd5a0fad fix(desktop): macOS 数据目录移出 .app 包 — 覆盖安装不再清空用户数据 + 包内旧数据自动迁移 2026-10-13 17:23:13 +08:00
shy3130 68368ac8c2 Update 2026-10-13 14:40:32 +08:00
shy3130 ecb49cbaca release: v0.3.6 — 核心+扩展架构完善版
合并 0.3.6 分支全部内容 (36 提交, 详细历史见 0.3.6 分支):

■ 数据与插件
- TdxQuant 数据源: 通达信量化接入 (实时/五档/日K/复权/分钟), tdxaidata 收进默认依赖
- 扩展表两级拉取配方: 概念/行业出厂即带完整可拉配置, 可作自定义接入参考示例
- 能力门禁日志带生效源; 标的池解析只走 instruments 维表

■ 页面扩展化
- 11 个官方页面全量迁移为单文件扩展 (custom/*/extension.tsx), 删目录即卸载
- 运行时页面包系统: 打包产物上传即挂载, 免重建宿主
- 新装用户扩展页默认隐藏, 老用户升级菜单无感

■ AI
- Responses 协议接入; 会话历史与长任务跨设备同步 (服务端注册表)
- 助手头部快捷入口 + 悬浮球拖拽 zoom 坐标系修复 + 系统设置开关

■ 界面
- 设置「关于」子菜单: 版权/更新/打赏 + 开源许可弹窗与合规声明双保险
- 侧栏两态收起、数据/AI 助手快捷行 (同步呼吸光晕)、核心/扩展 ext 标记
- 界面缩放默认 90%; 菜单设置徽标 Swiss 化; 策略池「叠加」分组
- 情绪评分口径可配置; 财务画像 5 张子表手动拉取

■ 文档与其他
- README 重构「核心+扩展」主线 + 架构图重画; 开放端点数核实为 65
- 版本号 bump 0.3.6; tdx 物化库测试夹具补 macOS dylib
2026-10-13 13:40:17 +08:00
shy3130 350ffbf612 chore(build): 精简 Dockerfile 可选构建阶段, 清理文档与引导页冗余引用 2026-10-11 15:42:55 +08:00
shy3130 918c7ade7e refactor(core): 策略与信号全面去内置化, 转为用户自定义定义
- 策略: 引擎只加载 data/strategies/{custom,ai,composite} 与研究模板目录,
  原 25 个内置策略一次性迁移为用户自定义文件(ID 不变, 引用零迁移);
  研究模板移至 app/strategy/research, 打包 spec 同步; 新装环境策略库为空
- 信号: 管线不再硬编码任何信号表达式; 涨跌停判定价成为运行时列
  limit_up_price/limit_down_price(生效价∓0.005 容差), 20 个信号转为
  data/user_data/custom_signals 定义(显式 column 沿用 signal_* 原列名);
  依赖解析/注入顺序/当日路径 prev-join 全部定义驱动; 语义统一为历史路径
  口径(顺带修正当日路径 BOLL 比较符与翘板/炸板空值两处既有偏差)
- 前端: 信号库单列表(全部可编辑), SignalPicker/监控选项/信号标签全走
  定义接口; 回测页新增免责声明(模拟性质/数据源准确性不作保证/不构成
  投资建议)
- 测试: 25 个策略夹具与 20 个信号种子入库 tests/fixtures, 受影响测试
  全部自包含化(不依赖运行目录用户数据); 77 万行 MA 死叉新旧表达式对拍
  逐行一致; 回测实跑 45 笔卖点信号出场验证矩阵链路
- 同批包含工作区既有进度: 策略结果 ext 列同日投影修复(含测试)、数据源插件、fuyao/auth/api_gateway/data_integrity 调整、README 信号库
  描述与 strategy.md 导入路径补充

验证: 后端 2592 passed(空数据目录 CI 模拟 2588 passed, 4 例为模拟环境
伪影复验排除); 前端 vitest 125 passed + tsc 0 错 + vite build 通过
2026-10-10 21:10:44 +08:00
shy3130 badab07619 feat(adj): 除权因子独立同步 + 事件明细扩列 + 按需窗口优化
- 扩列: adj_factor 表扩至 8 列(dividend/bonus/allot/allot_price/prev_close 明细, 可空), fuyao 从事件 dump 原始成分回填; merge 变更检测按 ex_factor diff>1e-9, 仅明细回填不计入受影响列表; 字段说明补齐
- 独立同步: /api/pipeline/adj-factor/run 端点(共用任务机制: 单飞+重任务槽+行情暂停), Data 页除权因子卡片设置齿轮弹窗(生效数据源/能力徽标/TickFlow 无明细提示), 因子变更个股自动 enriched 局部重算
- 按需优化: 独立同步事件窗口钳到本地日K起点(更早事件在前复权 cum/total 两侧抵消, 对已存价格零影响); fuyao 配价由全有或全无改为逐只按需(远古事件只拖累自己, 不再整轮回退单标的接口); 实测全市场因子阶段 15min+ → ~11s, 配价 3676/3676 走本地 dump 零回退
- 盘后管道步骤条显示各能力路由徽标(矩阵驱动); README 补桌面端 macOS 安装注意事项
- 测试: 明细列 merge 语义 4 例 / 独立同步联动 5 例 / 远古事件不连累全场回归; 全量回归通过(2 例历史遗留失败与本改动无关, 基线同样失败)
2026-10-07 21:45:40 +08:00
shy3130 30fcade330 docs(readme): 官网徽章移至标语下方, 配色改黑底+品牌紫 2026-10-05 22:39:30 +08:00
shy3130 b23db4ecd7 brand: 品牌统一为 TSP — 应用名/图标(浅色圆角卡, Windows/macOS 双平台)对齐 brand 资产, README 新增官网入口与标题行内嵌 logo 2026-10-05 18:45:09 +08:00
shy3130 1ecdd4acbe docs(readme): 修正「个人开源」徽章乱码 — URL 编码多出 %E4%BA%AA 致渲染为「个亪人开源」
alt 文本一直正确, 仅 shields.io URL 路径部分有误, 故 README 上显示为 5 个字的乱码徽章。乱码自 0.3.2 的 369f04d4 README 大改版引入, 经合并带入 main。已用解码与 shields.io SVG title 双重核对。
2026-09-28 12:19:30 +08:00
shy3130 a1edb94bec update readme 2026-09-27 18:47:50 +08:00
shy3130 2ef36e6ba1 docs(readme): 看板条目补充自定义布局能力说明 2026-09-26 20:52:39 +08:00
shy3130 32a42b9de4 fix(assistant): 宽表格标的列不再折行(自适应+不折行+横向滚动); 走势双图固定日K左侧/分时右侧 2026-09-26 19:21:47 +08:00
shy3130 f5d9d6af71 feat(assistant): 工具轮次检查点支持在设置→AI 手动配置 (默认100, 0=不检查, 最小5) 2026-09-26 19:04:54 +08:00
shy3130 c6c4fd2819 feat(assistant): 工具轮次 6 轮硬限改为 100 轮检查点(继续/停止选择卡)
- 到达 _TOOL_ROUND_CHECKPOINT(100) 时复用动作确认闸门(PendingRegistry+决策端点)
  弹 rounds_confirm 事件: 点「继续」重置计数再跑一个周期, 点「停止」或 120 秒
  未选则优雅收尾(notice + done, 已生成内容保留, 不再是 error)
- 前端 rounds_confirm 以合成足迹记录承载选择卡(继续/停止按钮), 复用 decideAction;
  流结束时仍悬挂的 awaiting 确认统一收敛为已取消
- 旧 test_chat_stream_stops_at_rounds_limit 改写为新契约; 新增 3 项检查点测试
  (批准继续/拒绝停止/超时停止)
2026-09-26 18:04:37 +08:00
shy3130 86a01a66e3 feat(assistant): 快捷建议 12→18 条 + 芯片按文字自适应排布
- 新增 6 条建议: 主要指数表现 / 横向对比几只股票 / 个股财务速览 /
  对比两个策略(两次确认卡回测后横向对比) / 跑一个选股策略 / 有没有任务在跑
- 建议芯片由固定两列网格改为 flex-wrap 自适应宽度, 芯片随文字长短伸缩, 每组自然成行
- README 交互设计条目同步(18 条 · 文字自适应); 测试补对比类建议与 id 唯一性断言
2026-09-26 17:24:58 +08:00
shy3130 f42bceed4b docs(readme): 助手文档与最新能力对齐 — 21 查询工具 + 扩展内容问答
- 工具数 19→21(新增 list_ext_tables / query_ext_table), 三处同步: 特性总览/能问什么/路线图
- 能问什么表新增「扩展内容」行: 扩展数据表(列表·字段·数据日期, 过滤/排序/日期范围) · 自定义策略与信号
- 交互设计补「分组快捷建议」条目(四组 12 条 + 扩展内容提示卡)
- 扩展机制行措辞校正: 「零核心文件修改」→「扩展无需改动核心」(与 AI 章节的共用触发函数说明一致)
- 快速开始示例补「我的扩展数据表里有什么」
2026-09-26 16:57:12 +08:00
shy3130 5fcc9bf064 docs(readme): 架构流程图重设计 — 横向挤压图改为五层纵向分层(消费端→网关→应用→核心域→扩展域)
- 旧 LR 图自然宽度 3144px, GitHub 830px 渲染下文字仅 ~3.4px 完全不可读
- 新图自然宽度 966px, GitHub 下有效字号 ~11px; 语义分层自上而下与开放能力版叙事一致
- 核心域三阶段管线(数据底座→计算研究→生产管道)带 enriched 口径/信号事件流向标签
- 扩展域底部通栏 5 通道横排, custom 模块星标强调 AI 助手参考实现
- 按 dagre 布局约束重构: 全下行边避免回边抬升, 去子图级边避免成员链式竖排
2026-09-26 15:42:06 +08:00
shy3130 6b233ed95f docs(readme): AI 助手章节补动作能力 — 19 查询 + 4 动作工具(确认卡)、数据健康检查、共用同步触发路径说明
- 能问什么表新增「数据健康」与「动作(须确认)」两行, 回测归入动作类
- 交互设计新增「动作确认卡」条目(完整待执行参数 + 确认/取消/120s 超时)
- 解耦说明改为如实描述: 数据补全与数据页共用核心层抽取的触发函数
- 功能总览 bullet / 对比表 / 快速开始示例问句 / 路线图行同步更新
2026-09-26 15:13:26 +08:00
shy3130 0c096632c1 docs(readme): 开放能力配真实界面截图 — Token 管理(明文一次性弹窗) + 菜单核心/扩展标注
0.3.2 的两个门面此前只有文字没有画面; 现开放能力章节顶部嵌入双图,
截图库同步补录。演示 Token 截图后已吊销。
2026-09-26 14:14:13 +08:00
shy3130 369f04d401 docs(readme): 大改版 — 网关居中的新架构叙事 + 性能前置 + 数字面板
- 头部数字面板: 61 端点 / 6 权限档 / 12 MCP 工具 / 2400+ 测试 / ms 级扫描 / 1 容器 六格大数字
- ⚡ 性能 升为一级章节并前置 (核心功能之后): 拆 '核心引擎' 与 '开放层(0.3.2 新架构)' 两表,
  每行 表现+靠什么, 全部真实口径
- 架构图彻底重画: 旧 '数据→路由→存储→计算→呈现' 纵向流水线 → 新 '消费端双通道 → 开放网关
  (认证/scope/限流/契约) → FastAPI → 核心域三簇(数据底座/计算研究/生产管道, 内嵌增量链路)
  → 扩展域五通道虚线契约消费', 事件总线经 SSE 票据回推网关的完整闭环
- 新增 '核心域/扩展域边界' 表: 8 域 vs 5 通道 + 划线依据 + 页面可替换示例
- 章节重排: 性能/架构前置, 界面预览与 AI 助手后移; 开放能力章节收窄为能力表+十行上手
- 27 个相对链接与 mermaid 结构 (subgraph/end 配对/引号/节点 id) 校验通过
2026-09-26 13:54:44 +08:00
shy3130 b8f56c7457 docs(readme): 重新设计 — 开放能力入列, 新增性能板块, 架构图补开放层
- 头部: 新增 CI / Open API / MCP 徽章, 一句话定位与标签行加入开放能力, 导航补 开放能力+性能 锚点
- 为什么做 TSP: 新增一行 '想做自己的工具只能爬页面 → 开放接口+MCP'
- 核心功能 15 卡 → 18 卡 (补 开放接口 / MCP 服务器 / AI 对话助手)
- 新增 🌐 开放能力 章节: ASCII 架构示意 + Token/六档 scope/61 端点/写闭环/SSE/MCP 能力表
- 架构图: 新增开放层 (MCP 服务器/外部程序 → 开放网关), 应用层补事件总线; 新增核心域/扩展域边界说明
- 关键机制表补 开放网关/事件总线 两行
- 新增 ⚡ 性能 表: 9 个场景的真实表现与支撑机制 (扫描毫秒级/15列存68列现算/增量分区/61端点120rpm O(1)限流/亚秒事件推送/2400+测试CI/新老CPU双内核)
- 路线图: AI助手 转 ✅, 新增 v0.3.2 开放能力版行; 文档表补 open-platform-plan/mcp-server/examples
- 快速开始首跑清单补第 7 步: 开放接口建 Token / MCP 接入
- 全部 28 个相对链接验证存在
2026-09-26 13:48:26 +08:00
wshyandGitHub f709158b2e Update README.md 2026-09-24 12:04:21 +08:00
shy3130 c37f450e28 feat: 更新 README, 新增快速预设, 调整 AI 默认上下文/输出限制
README:
- 更新顶部说明区块, 新增静态展示资源

快速预设 (设置页):
- 新增预设项, 调整官网链接与介绍文案, 高亮样式适配明暗主题
- 模型输入框支持下拉选择: 经后端代理拉取模型列表, 支持关键词过滤

AI 默认配置:
- 输出上限 8192 → 16384, 上下文窗口 64000 → 128000, 对齐当前主流模型能力
- 后端新增模型列表代理接口, 前端 api 同步封装
2026-09-24 11:39:54 +08:00
wshyandshy3130 acb44a7e1f Update README.md 2026-09-19 22:30:19 +08:00