Commit Graph
4 Commits
Author SHA1 Message Date
shy3130 70e17a9fb5 优化策略监控与 AI 生成流程
- 策略监控从全市场信号扫描改为选股池变更对比(进入/移出)
- 触发记录/看板/弹窗三处统一策略通知格式
- AI 策略模板去掉硬编码信号/止损/评分,补全数据字典
- 创建策略对话框改为 AI生成/自定义编写 双 Tab
- 自定义 Tab 含文件路径说明+模板代码一键复制
2026-06-22 17:42:04 +08:00
shy3130 56e9dc66a2 fix(monitor): 修复监控中心自定义/AI 策略触发记录显示不正确的问题
监控中心触发记录此前只显示「策略监控」等通用 type 标签,缺少策略名和股票名,
看起来像只有内置策略能正常显示 (实际是 demo 数据的假象)。

根因:
1. 触发记录的标签写死为 TYPE_LABEL[source],未使用事件里已有的 rule_name 字段
2. 真实告警的 name 字段全为 null — enriched DataFrame 在 pipeline 计算后 drop 了 name 列
   (indicators/pipeline.py),导致 row.get('name') 永远返回 None
3. 策略告警的 message 空泛 (仅「策略触发」),前端高亮 regex 无法匹配

修复 (向 demo 数据质量对齐):
- 后端 MonitorRuleEngine: 新增 set_name_map(),触发时对 None 的 name 从 instruments 表回填
- 后端 _evaluate_monitors: 每轮评估前注入 symbol→name 映射
- 后端 _default_message: 策略类型改为生成「策略名」买入/卖出信号,对齐 demo 模板格式
- 前端 AlertsList: 标签优先显示规则名 (截取「策略监控 · 空中加油」→「空中加油」)

效果: 自定义/AI/内置策略统一走相同代码路径,触发记录均显示策略名+股票名+格式化消息
2026-06-22 11:33:40 +08:00
shy3130 b5780b5e30 feat: 统一监控引擎 + AlertToast通知 + 声音/角标/看板/Dev页 + 股票名称批量查询
监控引擎 (backend):
- MonitorRuleEngine 统一规则引擎,支持策略/信号/价格/行情四种类型
- JSONL 追加存储 (alert_store.py),支持分页 + 清理
- alert/monitor_rules CRUD API + seed 演示数据
- POST /api/kline/instruments/names 批量股票名称查询
- SSE strategy_alert 事件触发前端通知

前端通知体系:
- AlertToast 自定义弹窗 (Framer Motion + AnimatePresence)
- Web Audio API 合成音效 (12种预设,无需音频文件)
- 侧边栏角标 (monitorBadge.ts) localStorage 持久化未读数
- pendingSeen 机制解决 markSeen/setCurrentTotal 竞态
- 系统设置页: 通知开关 + 最大条数 + 音效选择
- 菜单设置页: 角标数字开关

监控中心 (Monitor.tsx):
- 双栏布局: 左侧实时告警列表 + 右侧规则管理
- RulesList 股票代码后显示中文名称
- RuleEditor 完整规则编辑器组件
- 告警支持查看详情 (StockPreviewDialog)

Dashboard:
- MonitorWidget: Top 10 实时告警卡片

Dev 页面:
- 一键填充演示告警 + 规则 + 分钟探测
- 可视化 SSE 事件流查看

其他:
- v0.1.19 → v0.1.28 (VERSION 从 pyproject.toml 读取)
- dev.ps1/dev.sh 添加 --host 0.0.0.0 (局域网访问)
- 修复 Screener.tsx presets.length 可选链
- README 截图表格更新 (6张) + 监控章节重写
- 删除 MinuteDataProbe 页面 (合并至 Dev)
2026-06-21 14:18:08 +08:00
shy3130 7369358d08 Initial release v0.1.19 2026-06-18 17:18:23 +08:00