Commit Graph

72 Commits

Author SHA1 Message Date
知微 046e81a202 批量重建决策树(regenerate_all误清,42只已恢复)
per_stock_reassess.py 调 strategy_lifecycle.regenerate_all()
→ regenerate_all() 没有strategy_tree逻辑,清空了所有决策树
→ 用 strategy_tree.init_default_branches() 重建42只,每只6条分支

stale_push_wlin:
  30分钟同股同操作冷却+push_cooldown.json
  ⚠️/🛒 操作标记
  港股每手股数动态获取
  半手补整阈值50%→80%
branch_scanner: 静默采集,状态变化驱动推送
2026-06-24 11:09:49 +08:00
知微 3ec5460207 stale_push_wlin: 30分钟同股同操作冷却
push_cooldown.json 记录每只股票每种操作的最后推送时间。
每次推送前检查 (code, action_type) 是否在30分钟内推过。
是 → 跳过该股(不出现在推送中)
全部跳过 → 整条消息静默不推

冷却键: {code}_{action_type}(如 300308_buy、688639_buy)
不同操作不受限:同一只股 买入→止损 隔10分钟也能推
不同股票不受限:华恒的buy不影响中际的buy

同步修复:港股每手股数香港股数(之前patch到旧文件没生效)
2026-06-24 11:01:53 +08:00
知微 e7105543da stale_push_wlin: 半手补满阈值收紧→80%
原来50%预算→1手太松了
长飞光纤:预算60,357 vs 1手112,796元,只有53%
改80%后不再误标🛒

华恒生物消失:价格21.33跌破买入区下沿21.39,正常退出
港股每手股数已在上一版通过腾讯API字段[60]实时获取
2026-06-24 10:55:27 +08:00
知微 9d3f48a502 半手补整阈值50%→90%,防止现金严重不足却标🛒
修正前:长飞光纤预算60K只有1手112K的一半,却因为
budget > lot_cost*0.5 的规则被凑成1手,标了🛒
修正后:只有预算够90%以上才补整1手
实际影响:长飞光纤现在标⚠️而不是🛒
2026-06-24 10:53:31 +08:00
知微 2657a9ef66 stale_push_wlin: 港股每手股数修正+操作标记
1. 港股每手股数从腾讯API实时获取(field 60)
   长飞光纤(06869) 1手=500股(不是之前的100股)
   港股市值计算同步修复

2. 操作符号标记:
   ⚠️ = 现金不够1手(给你看但买不了)
   🛒 = 现金够买(可以直接操作)
2026-06-24 10:51:52 +08:00
知微 e0b7f49c3a stale_push_wlin: 操作符号标记
- ⚠️ 预算不足1手(列了也没法买,但让你知道)
- 🛒 手数达标(现金够买,可直接操作)

取自 position_advice calc_position 的实际计算结果:
  lots=0 → 预算不足 ⚠️
  lots>0 → 可以买 🛒
2026-06-24 10:47:34 +08:00
知微 b229e6f0cb 推送治理:静默采集+需要操作才出声
核心原则:数据采集类脚本完全静默(做积累不做推送),
只有需要操作/需要看的才到达Dad。

改动:
1. branch_scanner 已完全静默(上一轮改的)
2. stale_push_wlin return 1 → return 0(修复错误退出码)
3. 开盘简报 deliver=local → deliver=origin(之前没到Dad)
4. 收盘简报 deliver=local → deliver=origin
5. 策略评估-每日 deliver=local → deliver=origin
6. stale_push_wlin 输出格式已包含分支信息:
   【弱势震荡→buy】价格回调到支撑区,弱势市场低吸

Dad会收到的消息:
- 自选买入提醒(9:01/12:01)← 需要操作
- 开盘简报(9:35)← 需要看
- 收盘简报(16:10)← 需要看
- 策略评估(21:00)← 需要看
- 价格触发变化 ← 需要知道
其他全部静默
2026-06-24 10:45:51 +08:00
知微 80b854b945 branch_scanner 彻底静默:自成长采集器不出操作信号
branch_scanner 是自成长数据收集器,不输出也不推送。
操作信号由 stale_push_wlin / price_monitor / 开盘收盘简报 按cron-report-format规范输出。
scanner只做三件事:
1. 每15分钟扫价格+评估分支
2. trigger_count + 1(决策树数据)
3. 更新状态快照
2026-06-24 10:39:28 +08:00
知微 68e806cfa1 branch_scanner: 状态变化驱动推送,停止15分钟噪音
核心逻辑重写:
- 不再每15分钟推30只股票的买入信号(噪音)
- 改为静默数据采集 + 状态变化检测
- scanner_state.json 记录上一轮各股最优分支
- 只有以下情况才推:
  ① 情景切换(如弱势震荡→急跌防御)
  ② 某只股票的最优分支变化(如持有→买入/止损)
  ③ 止损首次触发(P0新出现才推,不重复推)

日常运行时完全静默,决策树数据持续累积
2026-06-24 10:37:39 +08:00
知微 e1c426fb96 branch_scanner: 修price_lower遗漏+只输最优分支
1. check_condition 新增 price_lower 检查(买入区下界)
   之前 buy_dip 分支的 price_lower: >=entry_low 从未被验证
   导致跌出买入区的股票也错误触发买入信号

2. 输出改为每只股票只列最优优先级的适用分支
   之前列出所有适用分支(多分支冲突:同一只股同时止损+买入)
   优先级:止损(P0) > 回调买入(P1) > 追涨(P2) > 减仓(P3) > 止盈(P4) > 持有(P99)
   每只股票只列一项,无矛盾
2026-06-24 10:34:46 +08:00
知微 ee1849a6a3 自成长体系补齐:分支扫描+每日剪枝+决策树全覆盖+分支输出
核心改动:
1. 创建 branch_scanner.py — 每15分钟扫价格→评估分支适用性→记录trigger_count
   cron: 分支自成长-盘中 (15,30,45,00 9-15)
2. 创建 prune_branches.py — 每日21:00剪枝(触发>=5次且成功率<50% → 淘汰)
   cron: 分支剪枝-每日 (0 21 * * 1-5) — 之前是每周,频率太低
3. strategy_tree.py: _check_branch_condition 新增 price_lower 支持
   buy_dip 分支同时检查上下界(price<=entry_high AND price_lower>=entry_low)
4. 43只股票全部补全决策树(之前只有6只)
   init_default_branches 生成每只6条分支:止损/回调买入/突破追涨/减仓/止盈/持有
5. stale_push_wlin 分支输出已存在(302-315行加载策略树,437-455行评估+追加)
   下一期报告即显示:【弱势震荡→buy】价格回调到支撑区,弱势市场低吸

新增:
  南亚新材(688519) 全面分析+策略+自选
  买入区335~350 止损320 止盈400 RR=1.7
  6月从285拉至409(+43%)后急跌至331(-19%),今日反弹缩量。高PE(228)炒作品种,等回调确认支撑
2026-06-24 10:29:45 +08:00
知微 102a64d856 自成长:分支评估+剪枝+报告接入
补齐「顺势而为 环境预判 策略多分枝」体系中缺失的组件:

branch_evaluator.py(新增)— 每30min评估所有策略树分支
  1. detect_scenario() 获取当前宏观情景
  2. 对42只股票评估哪个分支当前适用
  3. 适用分支 trigger_count+1, last_triggered=now
  4. 触发>=3次且成功率<30%→标记pruning_candidate
  5. 无决策树的股票自动初始化(init_default_branches)

prune_branches.py(新增)— 每日16:30收盘后剪枝
  阈值:触发>=3次且成功率<30%→裁掉并归档到pruned_branches
  Dad说「每周太低频」→改为每日

stale_push_wlin.py(修改)— 报告每只股增加分支行:
  【弱势震荡→buy_dip】价格回调到支撑区,弱势市场低吸

cron更新:
  分支扫描(b809fcabfa5b) → 指向branch_evaluator.py, 每30min
  剪枝(a3697c108c7b) → 指向prune_branches.py, 每日16:30

自成长核心:branch_evaluator 运行时自动发现并初始化无策略树股票,
252个分支已生成, trigger_count已开始累积, 反馈循环上线
2026-06-24 10:24:11 +08:00
知微 eb86a9091e stale_push_wlin: 仓位分母改为总资产,输出具体手数/股数
仓位计算:
  分母:总资产(持仓市值+现金),从portfolio.json+strategy_staleness_report.json读取
          非之前用的现金总额
  理论仓位:仅基于RR+大盘+品种特性,不受现金限制,纯% of 总资产
  当前建议:理论占总资产%→按现金锁死→输出具体手数和股数

报告最终一行:
  仓位:理论{theo}%×总资产 | 建议{act}%({N}手({M}股,{cost}元))

Dad要求:仓位是本次操作的仓位,分母是总资产不是现金,
给出仓位后要能直接按手/股操作
2026-06-24 10:08:05 +08:00
知微 3ba2b044d7 stale_push_wlin: 推荐加理论仓位+当前建议仓位(基于现金)
每只推荐新增第四行:
  仓位:理论推荐{theo_pct}% | 当前建议{actual_pct}%({N}手≈预算)

仓位计算:
  理论 — 基于RR(8-25%) + 大盘(±20%) + 品种特性(±20%)
  当前 — 理论×多只稀释系数 + 按实际现金计算可买手数
  兜底 — 预算不够1手时推荐至少1手

Dad要求:买卖不能不写仓位,理论仓位不受现金限制,
当前建议仓位根据portfolio.json实际现金计算
2026-06-24 10:00:52 +08:00
知微 b30a5fcdde stale_push_wlin: 每只推荐含大盘/行业/个股三面分析
每只操作建议输出三段线:
  第一行:名称代码+买区+1手成本+RR+止损止盈
  第二行:大盘走向 | 行业趋势 | PE估值 | 消息面
  第三行:技术位(强撑→弱撑→弱压→强压) | 信号

数据来源:signal_factors(策略富化生成的因子列表)、
          multi_tf_cache.json(PE/EPS)、
          tech_snapshot(技术位)、
          macro_line(大盘背景)

Dad要求:推荐必须能看到操作理由的三个维度分析
2026-06-24 09:56:26 +08:00
知微 f6ee15489c stale_push_wlin: 重评段删除,只推有清晰操作信号的个股
改动:
- 移除「策略需重评」报告段 — 内部流程,Dad不需要看到
- 移除pick/watch拆分的旧逻辑 — 统一为actionable过滤
- 跳过信号含等企稳关注信号不充分neutral持有等无用描述的个股
- 无操作信号 → 静默不推
- 有操作信号 → 标准格式(含行业context+技术位+止损止盈+RR+1手成本)

Dad要求:要看到的是可以直接操作的建议,不是内部流程记录
2026-06-24 09:46:52 +08:00
知微 df43244e9c timing_signal 从长句改为短词:所有信号2-4字,因子存到signal_factors
改动:
1. 硬编码信号值缩短(L729-769):
   '量价齐升,可买入'→'买入'  '放量下跌,等企稳再入'→'观望'
   '接近支撑位,关注'→'关注'  其他一致精简
2. enrich_timing_signal不再拼合因子到signal,
   信号保持干净(仅base_signal→'买入'/'观望'),
   因子列表存入 signal_factors 字段
3. _is_buy_signal 关键词同步为 ['买入','持有','加仓','关注']
4. 分类约束 buy_signals 同步为 ['买入','加仓','可追']
5. stale_push_wlin.py NON_BUY_SIGNALS/BUY_KEYWORDS 同步

影响:所有消费timing_signal的地方都使用子串匹配(in),
      短信号兼容。实际上修复了一个旧bug——非买入信号
      如'观望'现在可以被NON_BUY_SIGNALS正确过滤
2026-06-24 09:46:15 +08:00
知微 3c9a758424 meta_growth.py 脚本:每日两次分析git log→自动注入硬编码扫描规则
- 读取过去8小时git log,按修复关键词识别新问题类型
- 匹配 PATTERN_TEMPLATES(目前6个类别,可扩展)
- 去重检查→注入到 hardcode_scanner.py 的扩展点
- 更新 growth_registry.json(问题类别注册表)
- 自检:hardcode_scanner是否存在/注册表是否可写

调度:12:45(午间注入→17:25审计用新规则)
      00:45(全天汇总→次日审计带新规则)
2026-06-24 00:15:33 +08:00
知微 abd8d5c258 元自成长改为每日两次(12:45+00:45),半天内完成闭环
12:45: 上午盘发现问题→注入新规则→17:25审计就用新规则扫
00:45: 全天修复汇总→注册表更新→次日审计带新规则

Dad要求:用上午盘的发现提升下午盘,而不是等一周
2026-06-24 00:14:41 +08:00
知微 b4af8c9927 元自成长层:meta_growth 每周扫描修复模式→自动扩展扫描规则
- scripts/meta_growth.py (NEW): 每周日22:00分析git log中的修复模式,
  识别新问题类型,向 hardcode_scanner 注入新规则
- scripts/hardcode_scanner.py (MODIFIED): 预置扩展点注释,
  meta_growth 可直接在其后追加新规则元组
- docs/SELF_GROWTH_SYSTEM.md (UPDATED): 新增第七章"元自成长层"
- cron: 元自成长-每周 周日22:00 no_agent

设计理念:自成长机制本身必须也是自成长的。
hardcode_scanner 能扫什么不是写死的——meta_growth
会从你的修复习惯中学习新的扫描类别。
2026-06-24 00:10:45 +08:00
知微 6c97870a8d add daily tool scripts: hardcode_scanner, branch_scanner, prune_branches 2026-06-24 00:04:59 +08:00
知微 e33a236bc1 自成长系统:四层循环架构文档 + 三个代码改动 + 所有日间修复
内容:
- docs/SELF_GROWTH_SYSTEM.md (NEW) — 完整的 Sense→Respond→Adapt→Improve 架构文档
- docs/SYSTEM_ARCHITECTURE.md (UPDATED) — 总索引指向新文档,cron数从14更新为31
- hk_rate.py (NEW) — HKD汇率模块,缓存+上次有效汇率自动恢复
- price_monitor.py (MODIFIED) — 价格监控注入分支评估+情景切换检测
- strategy_lifecycle.py (MODIFIED) — 策略生命周期评估上下文
- strategy_tree.py (NEW) — 情景化多分支决策引擎

日间修复(2026-06-23):
- stale_push_wlin: cash硬编码146837→读portfolio.json
- stale_push_wlin: lot_cost汇率0.93→hkd_to_cny动态
- stale_push_wlin: HK每手默认500股→Tencent API实时f[60]
- stale_push_wlin: 重评异步→串行(先重评再出报告)
- hk_rate: FALLBACK=0.87硬编码→缓存上次有效汇率
- 新增 cron: 分支扫描每30分, 分支剪枝周六, 硬编码审计17:25
- hardcode_scanner.py 每日扫描所有.py中大额数字
2026-06-24 00:04:26 +08:00
知微 44eef95718 fix: 指数K线数据获取
fetch_kline 修复两个bug:
1. _market_prefix 不认识 sh/sz/hk 开头指数代码
2. 指数code自带前缀,API key不要重复拼接
3. fqkline端点同样支持指数,不需要mkline
4. refresh_mtf_cache 加入6大指数自动缓存

上证指数(4163) MA5=4110 MA10=4053 MA20=4070 周线横盘 月线震荡上升
2026-06-22 23:53:31 +08:00
知微 4863d2c939 fix: cron prompt加入市场趋势研判为强制第一步
每条报告必须先出市场结构判断(大盘格局+行业轮动+组合影响),再分析个股。
确保不再只有个股维度,大盘和行业有独立的研究产出。
2026-06-22 23:27:42 +08:00
知微 eb8648839d feat: 全局系统审计 system_audit.py + 每日cron
system_audit.py 每日17:30自动运行,7个维度全覆盖:
1. 信号管道 — 产出vs处理量,防积压
2. 股票池 — 自选/关注/持仓的数量健康
3. 策略状态 — 过期/缺止损/偏离检测
4. 建议闭环 — pending待执行建议
5. 组合健康 — 仓位/现金水位
6. 数据管道 — 采集时效性
7. 系统服务 — Dashboard/XMPP在线

发现HIGH问题自动触发修复,问题写入report供复盘
2026-06-22 20:21:52 +08:00
知微 06b8388887 docs+fix: 生命周期管理文档 + signal_news processed标记
- docs/lifecycle-management.md 完整生命周期规范(5大对象)
  - 信号、股票、策略、建议、评估的完整状态流转
  - 自我提升循环:信号→评估→执行→对比→修正→验证
  - 当前缺口与修复清单
- signal_news 加 processed 列,处理完标记不重复
- 两个盯盘cron prompt同步更新:读未处理信号(WHERE processed=0)+标记已处理
2026-06-22 20:12:00 +08:00
知微 b32e2fd803 feat: 新增行业领涨股扫描 xiaoguo_scanner
- 新增 fetch_sector_leaders() 从 market.json 读取热门行业领涨股
- 三路并行:同花顺技术榜 + 行业领涨 + 东财热榜(502降级)
- 优先级排序:行业领涨 > 同花顺榜 > 东财热榜
- 名称→代码映射使用本地缓存,避免频繁调用akshare
- 更新文档
2026-06-22 20:00:40 +08:00
知微 b59c1f3bba feat: xiaoguo信号管道完整链路
- xiaoguo_scanner: 6看多榜+5看空榜轮换,看空榜命中持仓预警
- 鹏华财富热榜降级静默
- 盯盘cron prompt: 接入xiaoguo信号+关注列表检查
- watchlist新增status=watching区分正式自选vs关注
- 楚江新材、中谷物流加入正式自选并生成策略
- 香农芯创、科安达加入关注列表等待回调
- 新增 docs/xiaoguo-signal-pipeline.md 完整流程文档
2026-06-22 19:46:21 +08:00
知微 ce687a4216 fix: xiaoguo_scanner 榜单更新+看空榜持仓预警
- 修bug:stock_rank_cxd_ths 实为'创新低',改为 stock_rank_lxsz_ths '连续上涨'
- 新增6个看多榜(险资举牌)+ 5个看空榜(创新低/持续缩量/量价齐跌/连续下跌/向下突破)
- 看空榜自动比对持仓,命中写入 xiaoguo_risk 信号
- 东财热榜静默降级(502不可修)
- 看空榜不跳过已扫描,每轮全检
2026-06-22 19:13:55 +08:00
知微 774c2e885d fix: mofin_collect 9:30前跳过板块采集 2026-06-22 09:39:20 +08:00
知微 a8c3ec5db9 三修:建议去重+闭环跟踪+模糊用词禁令
server.py:
- /api/advice/record 加去重(同天+同方向+同摘要前40字=跳过)
- /api/advice/confirm 支持 executed 动作+自动打 evaluated 标记

cron prompts:
- MoFin盘前中监控 + 午后监控 加入 advice/record 调用指令
- 模糊用词禁令嵌入 cron prompt
2026-06-21 23:00:53 +08:00
知微 9d85601904 fix: 评估页字段名错误(evaluations→advice_evaluation) 2026-06-21 02:55:12 +08:00
知微 4eb409b51a 市场页改版:三栏展示(行业+趋势信号+小果扫描),取代旧洞察/潜力股 2026-06-21 02:47:04 +08:00
知微 70514bf542 Dashboard: 信号tab + API(signals + xiaoguo-scan),前端展示 2026-06-21 02:44:05 +08:00
知微 aa1f621b03 文档同步:合并判断+时序控制 2026-06-21 02:36:38 +08:00
知微 a2fa754e89 xiaoguo_scanner: 每只1次LLM,合审3篇,5分钟窗口无压力 2026-06-21 02:34:17 +08:00
知微 1ff0c356ab xiaoguo_scanner: 小果独立扫描线,5分钟一轮,三榜交叉发现 2026-06-21 02:28:22 +08:00
知微 4fcc516686 清理残余文件 2026-06-21 01:49:57 +08:00
知微 3dc9e5310d 去小果化:mofin_news只搜不分析,新闻由知微亲自读 2026-06-21 01:49:33 +08:00
知微 cab782bce5 fallback: 小果API不可用时降级到关键词分类 2026-06-21 01:34:22 +08:00
知微 4774b0d53f mofin_collect: 采集链脚本,盘前午后cron已就绪 2026-06-21 01:29:43 +08:00
知微 8010ba8605 时序更新:9:25第一轮,全天21轮,含港股全程+集合竞价 2026-06-21 01:22:43 +08:00
知微 f85f940364 合并二+四为一整条管道:15分周期+盯盘判断+自动入自选+Dashboard展示 2026-06-21 01:02:16 +08:00
知微 d05db31700 文档同步:正文去200字限制 2026-06-21 00:40:43 +08:00
知微 3942356a17 xiaoguo_news_processor: 正文去200字限制,全文发 2026-06-21 00:40:08 +08:00
知微 a42d564f9d 文档:小果调用内容修正(标题+正文,不限字数) 2026-06-21 00:39:00 +08:00
知微 c06e4894d9 文档:30分→10分同步 2026-06-21 00:26:56 +08:00
知微 4fc729e930 完整信号体系:5类17种信号,含严重性分级 2026-06-21 00:23:57 +08:00
知微 c9311ad31b xiaoguo_news_processor: 带全文分析5篇12秒,摘要不限字数 2026-06-21 00:05:17 +08:00
知微 ef7f7d2c25 MAX_ARTICLES=5(实测5篇12s,比3篇多5秒而已) 2026-06-20 23:41:01 +08:00