v2629/4 20:30消息面数据盘后更新(9/4 20:30):新增9条:搜索9月4日盘后到20:30的重要财经新闻,整理成 news.json 全字段入库(id+board+title+type+brief+inds,BUG-016 6字段铁律强化——所有新条目均含 inds 行业影响矩阵防 renderHome TypeError):①social×1:A股9月4日放量收跌沪指-0.30%报3930.12点、成交2.03万亿放量2718亿,猪肉/白酒/种植业/农林牧渔逆势领涨(罗牛山等多只猪肉股涨停),半导体/存储芯片/CPO/电子化学品领跌,本周沪指-0.56%、深成指-3.13%、创业板指-4.03%、科创50跌5.1%(猪肉/农业【强】+白酒/消费/半导体【中】);②policy×4:证监会发布私募募集新规征求意见稿七章四十五条(卖者尽责买者自负、严禁保本保收益、禁止拆分份额、穿透监管,私募基金/金融监管【强】+券商【中】)、央行公告9月7日开展5000亿元3个月期买断式逆回购9月到期等量续作(银行/流动性【强】+债券【中】)、工信部印发《人工智能中小企业创业支持计划(2026—2028年)》三年新培育创新型中小企业1万家以上专精特新小巨人2000家(人工智能/专精特新【强】+算力/数字经济【中】)、七部门印发《数字化绿色化协同转型发展方案(2026—2030)》探索800V高压直流供电算力架构超百千瓦单机柜部署(算力/数据中心【强】+电力设备/数字经济【中】);③industry×4:OpenAI发布GPT-6 Astra端到端智能体A股AI应用走强硬件重挫浪潮信息跌停蒸发127亿(人工智能/AI应用【强】+算力/半导体【中】)、美光拟年底前新增6万片/月HBM产能HBM4扩产加码(HBM/存储芯片/半导体【强】)、深交所近2月发布7条创系列指数16只创系列ETF申报获批首募上限200-500亿(创业板【强】+芯片/人工智能【中】)、中国船舶签10艘8200车LNG双燃料汽车运输船订单逾10亿美元盘中涨停(船舶制造【强】+军工/航运【中】)。滚动10天窗口清理0条(最旧2026-08-25仍在窗内)。版本 v261→v262(六处同步),已部署。
v2619/4 13:00修复「日线自适应兜底单股 hang 死 buy 扫描+锁未清理」根因 + 手动补跑消息面/买点扫描:①【根因】09-03 15:30 buy 卡在「日线自适应兜底」单股 K 线拉取(socket hang 不响应),进程 hang 19 小时被 OS 杀掉时 finally 未执行、锁未释放,阻塞后续 09-04 12:00 前所有 buy;调度器层也受波及漏跑 09-03 20:30 news + 09-04 凌晨~11:30 全部 buy。②【修复·彻底】pipeline.py 单股补拉 1500 根加 30s 硬超时(ThreadPoolExecutor.submit + future.result(timeout=30),超时即跳过该股)+ run.py atexit + SIGBREAK handler 注册解锁(任何方式退出都释放 + 关 Node 常驻进程,taskkill /F 仍靠 TTL 75 分钟兜底)。③【补跑】news.json 新增 12 条(intl×2 美股 9/3 涨/油价金价同步上涨 + industry×3 央行 9/4 逆回购零操作/创业板芯片指数 970096 发布/长江存储 IPO 进入问询 + policy×5 工信部等 10 部门中小企业十五五规划/金融监管总局保险公司资产负债管理办法/商务部商品消费扩容升级 20 条/医保局 DRG/DIP 3.0 机器人手术单独分组/市场监管总局电子坐便器 CCC 认证 10/1 强制执行 + social×2 A 股 9/4 午盘沪指+0.35%/9/3 收盘沪指+0.02% 报 3942 点)+ 滚 10 天窗口清理 messages 7 条+policies 3 条。版本 v260→v261(六处同步),待部署。
v2609/3 15:35说明中心补「模式一/模式二」辅助观察卡 + 引擎「破坏」措辞对齐原文:①【说明中心 app5】「MACD 辅助判断」卡片补充辅助判断卡三种形态分流(四周期共振→两行共振卡 / 模式一→五行卡锚定 B段回拉0轴 / 模式二→五行卡锚定同级别分解),并新增「模式一/模式二 五行卡」专节——5 行(①面积 ②黄白线 ③柱子最高高度 ④背驰 ⑤盘整背驰)× 操作级别+次级别两级,严格对齐第24/25课背驰三判据(满足其一即成立、两个以上更确定);②【引擎 chan-engine.js + 说明中心】「破坏」定义措辞由「离开段突破边界」改为「次级别走势类型离开中枢 + 次级别走势类型回抽不回中枢」(对齐第18课定理三「中枢破坏=一个次级别走势离开中枢后,其后的次级别回抽走势不重新回到中枢内」+ 第20课26段)。回归 183 项全绿。
v2599/3 13:02修复「现价在中枢内却误标三买/三卖」(老问题根治):002517 30F 现价17.00 已处中枢#3(14.90~17.48)内部却仍标「三买」——根因是 app2 旧引擎三类买卖点判定与统一引擎 detectAll 口径分叉:①zsExitIdx 离开笔搜索起始索引 z.biEnd off-by-one,会把中枢构成末笔误当离开笔(002517 中枢#4 biEnd=159 被误判 ei=159,应为 biEnd+1→161);②bsPointMarks 遍历全部中枢,把早已离开的老中枢的历史三买/三卖永久标在图上(中枢#1 历史三买标记价10.85 被当成当前信号);③闭边界不统一(回试低点用 >ZG、反弹高点用 <ZD,漏掉 =ZG/=ZD 边界)。修复:bsPointMarks 三类买卖点只对「最近一个中枢」判定(与统一引擎 lastZs 同口径)+ 现价离开校验(三买现价>ZG、三卖现价<ZD)+ 闭边界 ≥/≤;zsExitIdx biEnd→biEnd+1;mode1Signals 三买三卖同补闭边界+现价校验。回归 177 项全绿。
v2589/3 11:35模式1/模式2 辅助判断卡(5行×操作级别+次级别两级,严格对齐108课背驰三判据):①【引擎】buy1/sell1 的 div 补 peak_b/peak_c(第25课「伸长的高度不能突破前高/前低」判据③)+ zs_count 中枢数(区分标准背驰≥2中枢 / 盘整背驰1中枢,第24课356行/第27课);②【前端 app1】新增 beiChi5CardHtml 五行辅助卡——第1行面积(第24课 C段面积<A段)、第2行黄白线(第25课 DIF不创新高/低=背离 + 第24课 B段黄白线回拉0轴前提)、第3行柱子最高高度(第25课判据③)、第4行背驰(趋势≥2中枢=标准背驰)、第5行盘整背驰(1中枢),按「操作级别+次级别」两级展示(次级别用于小级别做短差);③【分流】holdCardHtml 按 cardType 分流——srcType=four→共振版(保留原 macdAuxHtml)、mode1→模式一(锚定中枢回拉0轴)、mode2→模式二(锚定同级别分解),顶部 meta 加卡片类型标签(四周期共振版/模式一·中枢买卖点/模式二·同级别分解);④背驰成立关键词按买卖方向配色(顶背驰=绿、底背驰=红,A股习惯);⑤test_regression.js 加 BUG-022 守护(peak_b/peak_c + zs_count + 五行卡 + 分流)。回归 177 项全绿。
v2579/3 10:45跳空缺口默认为1笔 + 最强三买/三卖(趋势+盘整最用力破坏):①【跳空缺口】segs 端点加 level 三值字段('seg'/'bi'/'gap'),跳空缺口按「默认为1笔」(bi=1) 处理、level='gap' 供前端渲染蓝色虚线(与普通1笔蓝实线区分);②【最强三买 buy3s】三买判定加「离开段中枢数」分析,离开段=次级别趋势(≥2中枢)+回试段=次级别盘整(1中枢)=趋势+盘整最用力破坏(第18课定理三),已形成输出 buy3s、预三买高预警输出 pending_buy3s;③【最强三卖 sell3s】三卖对称实现;④【前端】app2 筛选加「最强三买」按钮(与最强买点并列)、app3 已形成/预形成 tab 加最强三买、pipeline _TYPE_ORDER/_TYPE_NAME 加 buy3s/sell3s;⑤ORIGIN_MAP.md 补第18课定理三最强破坏+缺口默认为1笔,test_regression.js 加 BUG-021 守护。回归 170 项全绿。
v2569/3 10:25三买三卖离开段/回试段级别校验(次级别走势类型=线段≥3笔):①查证原文——第18课定理三「中枢破坏=一个次级别走势离开中枢后,其后的次级别回抽走势不重新回到中枢内」+第20课26段「次级别走势类型离开+次级别走势类型回试」,并确认第18课「趋势+盘整、趋势+反趋势、盘整+反趋势」三组合中趋势+盘整是最用力破坏(回试是「次级别走势类型」、非「次级别以下」);②【引擎层】coreAnalyze 给 segs 端点加 bi 笔数字段;三买 leaveCands/pullbacks、三卖 leaveCands/rebounds 四处均加 bi≥3 过滤——1笔突破ZG / 1笔回试 是「次级别以下」非「次级别走势类型」,不再构成三买三卖;③三买标记位置对齐为「回试段(完整线段)最低点」而非「回试那一笔最低点」;④ORIGIN_MAP.md 补第18课定理三+趋势+盘整口径,test_regression.js 加 BUG-020 源码守护。回归 168 项全绿。
v2559/3 10:00连接段 a/b 三态渲染 + 辅助判断卡按钮位置调整:①【引擎层】renderStructure 的 enter/leave 加 level 三值字段——'seg'(次级别,≥3笔线段)/ 'bi'(次级别以下,一笔/两笔)/ 'gap'(跳空缺口,相邻两根K线跳空);②【渲染层】app2 观察卡片 + app4 大盘按 level 三态渲染:seg→橙色线段、bi→蓝色(笔)、gap→蓝色虚线,LEGEND 加「蓝色虚线=跳空缺口」;③【插队任务】app1 辅助判断卡「重新分析」按钮从卡片底部移到标题行居中(与「辅助判断卡」同一行);④level 为纯展示字段、不影响买卖点判定(回归 166 项全绿)。⑤探测 16 只股票日线:连接段 seg 29 / bi 7 / gap 0(跳空缺口日线少见,多现于一字板/分钟线)。
v2549/3 09:30中枢升级口径确认 + hasSub 试做后回滚:①用户确认「中枢升级」(延伸≥9段 / 前后中枢区间重叠升级为更大级别)买卖点按「同级别操作」维持现状(照常给,不「舍弃」),引擎零改动。②hasSub(标记「中枢构成段含次级别以下段」)试做后经用户纠正回滚——用户点明:讨论主题是「连接两个中枢的连接段 b 的级别」(第18课:连接段可以是次级别以下、一笔甚至缺口),与中枢构造无关;且「前3段笔数<3 本就不是次级别走势类型、不能构成中枢」,故标记中枢构成段这个动作方向错误、已撤销。③连接段级别区分仍由 v252 的 sub 字段 + 字母′标记承载(完整线段画橙色、次级别以下不画线段由蓝色笔覆盖、字母加′)。
v2539/3 08:37消息面数据盘前更新(9/3 8:30):新增9条:搜索隔夜到今晨的9条重要消息,整理成 news.json 格式全字段入库(id+board+title+type+brief+inds,BUG-016 6字段铁律强化——所有新条目均含 inds 行业影响矩阵防 renderHome TypeError):①policy×2:央行行长潘功胜G20发声「持续推进货币政策框架转型,继续实施适度宽松货币政策」(银行/金融监管/人民币【强】+全球宏观/债券【中】)、三部委联合启动智能应用服务商培育行动2027年底不少于3000家工信部牵头(AI应用【强】+算力【中】);②intl×3:隔夜美股三大指数集体收涨戴尔涨15.81%英伟达涨3.21%纽约联储主席威廉姆斯暗示9月无需加息(美股/AI算力【强】+全球宏观【中】)、油价3连涨WTI收+0.88%报91.01美元/布油+1.04%报95.63美元布油创7月24日以来新高(原油【强】+油气/化工【中】)、黄金纽约尾盘反弹现货黄金+1.39%报4389美元/盎司白银+1.97%ADP小非农仅增3.8万打压加息预期(黄金【强】+白银/美元【中】);③industry×3:美国考虑对进口半导体加征新一轮关税卢特尼克称在美国本土建厂无需缴纳关税(半导体【强】+自主可控/出口【中】)、燧原科技启动回拨机制网上中签率0.02455%初步有效申购倍数超100倍(AI算力/IPO【强】)、三安光电控股股东债权人撤回破产重整申请破产风险暂时解除(LED/化合物半导体【强】+破产重整【中】);④social×1:9月2日A股缩量普跌沪指-0.97%报3941.39点/创业板-2.39%成交降至1.82万亿近3900只个股收跌(A股大盘【强】+成交量【中】)。滚动10天窗口清理0条(最旧2026-08-24仍在窗内)。版本 v252→v253(六处同步),已部署。
v2529/3 01:30线段级别修正:次级别以下(一笔/两笔)不再画成线段:用户指出「b 段可能就是一笔,跳空缺口是极端情况」,按原文第18课连接段可以是次级别以下(一笔甚至缺口),不能统一当次级别走势类型(线段)。探测发现引擎 segList 里本就存在「1 笔」的伪线段(如上证日线 xd#0/xd#8 笔数=1、isSure=false),但渲染时被统一画成橙色线段。修复:①【引擎层】chan-engine.js renderStructure 给 enter/leave 加 sub 字段(笔数<3=次级别以下,按第18课连接段可为次级别以下);②【渲染层】renderLevelSVG 画线段 xd 时跳过笔数<3 的段(次级别以下),由蓝色「笔」折线覆盖;③enter/leave 字母标记加 ′(如 a′=一笔进入段),LEGEND 加「字母′=次级别以下」说明。颜色方案(自定,最合理):线段=橙色 #f97316(次级别走势类型主线)、笔=蓝色 #1a56db(底层)、中枢框=金橙 #c98b00(虚线)、进入段字母 a=灰、离开段字母 b/c/d=紫。验证:上证日线 9 线段→跳过 2 根 1 笔伪线段→7 根完整线段+14 价位标注,正确。回归 166 项全绿。版本 v251→v252(六处同步),已部署。
v2519/3 01:15去掉中枢进入段/离开段重复加粗线 + 字母配色统一:用户指出「灰色进入段线下面还压着一根橙色线,灰色线本质就是线段、应该是橙色」。根因:进入段/离开段(z.enter/z.leave)和线段 xd 用同一套笔索引,本身就是线段,但渲染时又用灰/紫加粗线覆盖画了一遍,造成双层+颜色冲突。修复:①删除进入段灰线(stroke=#64748b)、离开段紫线(stroke=#9333ea),线段统一橙色 R.xd;②只保留 a/b/c/d 字母做 a+A+b 形态标记(进入段灰 #64748b、离开段紫 #9333ea,与 LEGEND 图例一致)。③顺带查证原文「b 段甚至可以是缺口」——第33课/29课/18课/37课/56课均有原文(缺口=最低级别走势类型,b 级别≤c),已记录为引擎已知边界(当前按线段近似,缺口极端场景暂不特殊化,待实际案例再定)。版本 v250→v251(六处同步),已部署。
v2509/3 01:05修复中枢「进入段/离开段」line+字母不可被图层按钮隐藏:用户反馈点图例「线段/笔」按钮时,中枢的紫色离开段 b 字母 + 灰色进入段线都无法隐藏(其他图也有同样问题)。根因:renderLevelSVG 渲染中枢进入段/离开段时,line 标签没加 class(只有 stroke),字母只有 class="annot"(只受「隐藏标注」控制、不受「线段/笔」控制)。修复:①进入段灰色 line 加 class="bi"(受「笔」按钮控制);②离开段紫色 line 加 class="xd"(受「线段」按钮控制);③进入段字母 a 加 class="bi annot"(同时受「笔」和「隐藏标注」控制);④离开段字母 b/c/d 加 class="xd annot"。app2 观察卡片 + app4 大盘技术走势同步改。纯 UI class 加固,不影响判定。运行时验证 class 正确加上。版本 v249→v250(六处同步),已部署。
v2499/3 00:50K线结构图中枢标注缩小+区间信息挪到右上角(不遮盖K线):用户反馈图上中枢文字(原「字母+ZD~ZG区间」font-size 20 大字体)太大会遮盖 K 线。改法:①图上中枢框位置只标简短字母 A/B/C(保留 a+A+b 形态标记),字号 20→12、去掉区间数字;②完整区间信息「中枢A:ZD~ZG / 中枢B:ZD~ZG」挪到右上角空白(font-size 11 右对齐,每中枢一行);③LEGEND 图例保持 A/B/C=中枢。app2 观察卡片 + app4 大盘技术走势两处同步改(同一套 renderLevelSVG)。运行时验证:上证 800 根日线产出中枢 A/B,图上框标 A/B、右上角信息区「中枢A:3168.57~3174.27 / 中枢B:3794.68~3995.18」,旧大字号已消除。版本 v248→v249(六处同步),已部署。
v2489/3 00:30修复大盘技术走势「数据获取失败」+ 平台稳定性保障 + 全局错误兜底:①【修 bug(v246 引入)】大盘分钟线 v246 误改成新浪 CN_MarketData.getKLineData 直连(HTTP 200 但无 Access-Control-Allow-Origin 头,浏览器前端 fetch 被 CORS 拦截 → Promise.all 整体 reject → 显示「数据获取失败」)。回退到 fetchIndexBars(东财→腾讯 mkline 回退链,320 根),删除死函数 fetchIndexMinBars。前端可用指数分钟线只有腾讯 mkline(ACAO:*,320 根);更多历史根数靠 min_history.py 后端累积。②【全局错误兜底】5 个 APP(app1/app2/app3/app4/app5)统一加 window.onerror + unhandledrejection 捕获,防「一处崩溃→整页白屏无提示」。③【凌晨巡检增强】补 4 处盲点:CORS 铁律(数据源必须测 ACAO 头,不只 HTTP 200)、取数窗口修正(30F/5F 前端 320 非 5000)、数据文件新鲜度自动重建、全局兜底检查。回归 165 项全绿。版本 v247→v248(六处同步),已部署。
v2479/3 00:104 APP 深挖扫描:修复 11 处高危崩溃 + 12 处显示异常:①app1:load 里 records/reviews/targets 加 Array.isArray 校验+过滤 null(防 localStorage 非数组/含 null 启动即崩)、renderList/renderHistory 的 stockName.toLowerCase 加 String()||'' 兜底、planTexts/pendingPlanItems/planDetailHtml 对 null 元素兜底、fmt 加 isFinite 兜底(undefined/NaN 显示 — 而非 NaN)。②app2:renderCzscSectors 的 class_avg/delta_5 加 isFinite 兜底(缺字段崩)、scanCardHTML 的 typeName 加 ||'' 兜底、renderMarketRefBox 的 signal_price/price 改 fmt。③app3:drawStructureChart 的 structures[code][lv] 加 null 兜底、getPendingOps 加 Array.isArray 校验、buyCard type.replace 加 String()、stockIndex pools 加 ||[]。④app5:paintLearn 的 tbl[lv]/row 加 null 兜底(Object.keys(null) 崩)、best.rate/hold、st.tested 加兜底(显示 NaN/undefined)。回归 163 项全绿。版本 v246→v247(六处同步),已部署。
v2469/2 23:55大盘技术走势对齐观察卡片 + 指数分钟线5000根 + 指数历史库:①【对齐】app4 大盘技术走势原来用旧引擎接口 analyze()+自写蜡烛图/文案(趋势/均线/量能),与观察卡片(renderStructure 完整契约)不一致。现将 app2 观察卡片的整套结构渲染系统(renderLevelSVG/analyzeLevel/levelConclusion/chanStructure/calcMACD/provisionalMove/biBeiEvents/zsBeiEvents/zsExitIdx/strictTrendOK/bsPointMarks + LEGEND + kzoom CSS + 缩放图层事件)迁移到 app4,大盘技术走势三级 K 线结构图(中枢/线段/笔/买卖点/MACD)和三级结构结论(笔/线段、中枢、背驰、支撑压力)与观察卡片完全同源同口径;删除旧死代码 techKlineSVG+techAnalyze。②【拉取量】大盘分钟线 30F/5F 从 320 根 → 5000 根(新浪硬上限,新增 fetchIndexMinBars 走新浪指数源),日线保持 800+1500 兜底。③【历史库】min_history.py 新增 INDEX_SYMBOLS(上证/深成/创业板/科创50/北证50)+ 指数优先抓取逻辑,每日 2:30 全量增量抓指数分钟线,与个股同库累积。版本 v245→v246(六处同步),已部署。
v2459/2 23:40app4 深挖扫描:3 处健壮性加固:①renderMarket 开头检查加 `!MARKET.dates||!MARKET.dates.length`(防 localStorage 旧结构缺 dates 时 .slice 崩);②renderMarket 的 t 字段兜底——topBoards/downBoards/moneyTop/movers/lhb/drivers 逐个 `if(!Array.isArray(t[k])) t[k]=[]`(防旧 MARKET.today 缺数组字段时 .map 崩整页);③大盘归档 detail 字段加 esc(防 HTML 特殊字符注入/显示异常)。均为边界情况防御性修复,当前数据下不影响,防 localStorage 旧数据/字段缺失时崩溃。版本 v244→v245(六处同步),已部署。
v2449/2 23:28修复板块内容不显示 + 简化状态栏为数据版本时间:①根因(板块内容空白):昨晚盘后补漏的 4 条消息(inc_20260902_2230_1~4)只有 id/board/title/type/brief、缺 inds 字段,而 renderHome 第 702 行 `m.inds.map(...)` 未兜底,抛 TypeError 导致整个 boardList 渲染中断、四板块点开全空白。修复:给 4 条消息补 inds 字段(银行/流动性/债券/金融监管/券商 按强度标注)+ renderHome 改 `(m.inds||[]).map` 兜底(防未来再有缺字段消息崩整页)。②简化状态栏(用户要求"直接写数据版本更新时间,别写正在获取定时计划"):消息总览 ubTitle「服务器定时更新」→「数据版本」、ubSub 只显示 STORE.updatedAt(失败时加「⚠ 最近一次定时更新失败」);市场总览 mkTitle→「行情更新」、mkSub 显示 MARKET.updatedAt(快照兜底显示 market.json updatedAt);删除 SCHED_FETCHED 三态过渡文案 + calcNextTime 死代码。版本 v243→v244(六处同步),已部署。
v2439/2 23:18修正情况2大结论文案"接近0轴"夸大描述:原文案"操作级别红柱持续缩短到接近0轴 + 黄白线走平/拐头/交叉,动能衰竭确认,马上离场"——其中"接近0轴"代码里未量化(opMomWarn 只判"缩短"、opFlat 只判"红柱时黄白线走平/拐头",未做 hist 绝对值阈值判断)。改为"操作级别红柱持续缩短 + 黄白线走平/拐头(红转空),动能衰竭确认,马上离场"——文案与代码实际判定完全一致。仅文案变更,行为不变。版本 v242→v243(六处同步),已部署。
v2429/2 23:05修复 app4 消息总览「暂无定时计划」误导文案:①root cause:refreshUpdateBar 在 VERSION.schedules.news 取不到时直接显示「暂无定时计划」,但首屏 800ms 内 fetch 还没回、fetch 失败时数据版本号还能从 STORE 拿到——文案「暂无」会让人误以为定时任务没了。②改 display 文案:分三态——s 拿到→「✓上次执行·下次...」/首屏尚未拿到→「⏳ 正在获取定时计划…·数据版本...」/fetch 已完成但仍拿不到→「⏳ 定时计划获取失败(数据已更新)·数据版本...」;③新增 SCHED_FETCHED 全局变量,checkUpdate 的 .then 取到 schedules 时置 true、.catch 也置 true(避免永久卡在「正在获取」)。仅文案变更、行为不变。版本 v241→v242(六处同步),已部署。
v2419/2 22:54删除消息总览摆设「手动更新」按钮:①消息总览的「手动更新」按钮(checkUpdate(true))不能触发后端生成新数据、只能拉取已生成的 news.json,与每 30 分钟自动 checkUpdate 做的事完全一样,纯摆设且误导——删除按钮 + ubManual 文案 + refreshUpdateBar 的 MANUAL_TS 分支;②市场总览的「手动更新」按钮(refreshMarket,实时拉东财,盘中有实际价值)保留;③checkUpdate 函数清理 manual 死代码(按钮删后 manual 恒 false),改为纯自动检查(checkUpdate() 无参,页面加载 + 每 30 分钟自动跑);④市场总览 mkManual 文案「随工作台「手动更新」同步刷新」→「点「手动更新」立即拉取最新行情」。版本 v240→v241(六处同步),已部署。
v2409/2 22:44app4 两个手动按钮统一命名「手动更新」:①消息总览按钮「刷新数据」+ 市场总览按钮「手动刷新」统一改名为「手动更新」(两处在不同 tab 不冲突);②相关文案统一「我的手动更新」「正在手动更新…」「手动更新成功/失败」(去掉 v239 改的「刷新」语义,但保留删除误导句「定时版将同步本次结果」);③说明两个按钮逻辑差异——市场总览「手动更新」=前端直接实时拉东财第三方(真实时拿到最新行情),消息总览「手动更新」=拉取服务器 news.json(AI 定时生成,只能拿已生成的最新)。版本 v239→v240(六处同步),已部署。
v2399/2 22:38app4 消息总览「手动更新」按钮文案改准确(刷新语义):①根因——「手动更新」按钮真实行为只是 fetch 服务器现有 news.json 全量覆盖本地显示,并不能触发后端生成新数据(那是盘前/盘后定时任务做的),原命名「手动更新」+ 文案「定时版将同步本次结果」误导用户以为点一下会生成新数据;②修复——按钮「手动更新」→「刷新数据」,状态栏/「我的手动更新」→「我的刷新」,去掉「定时版将同步本次结果」误导句,toast「手动更新成功/失败」→「刷新成功/失败」;③变量名 MANUAL_TS/MKEY_MANUAL 保留(避免 localStorage 键变更破坏已有数据)。仅文案改动,行为不变。版本 v238→v239(六处同步),已部署。
v2389/2 22:30消息面 20:30 漏跑排查 + 拆分调度任务 + 手动补漏:①根因排查——消息面定时任务原 rrule 用 BYHOUR=8,20 多值(唯一用此写法的任务),调度器 20:30 这次完全未触发(last_run 仍是 8:56,next_run 跳到 20:30 后未执行直接跳到次日 8:30);②一次性解决——把原任务拆分成两个独立 automation:盘前「消息面数据盘前更新(8:30)」BYHOUR=8 + 盘后「消息面数据盘后更新(20:30)」BYHOUR=20(多值改单值绕开调度器潜在 bug);③今晚 20:30 手动补漏——WebSearch 真实抓到 9/2 央行 8 月流动性投放情况/9/2 净回笼 5985 亿/资金面 DR001+0.2BP/一级市场招标 4 条盘后消息,news.json 滚动清理 8 条 8/22-8/23 过期;④prompt 加强失败必写 last_status=fail(哪怕搜索没结果),方便用户通过 last_run 时间戳看到漏跑。版本 v237→v238(六处同步),已部署。
v2379/2 22:13清理辅助卡死代码(macdMomentum/divTextOf/momTextOf):①删除 macdMomentum 死变量(dif/dea/curD/curE/bothAbove/bothBelow/pos/cntG/cntR 计数循环)——v229 重构后这些变量不再被任何 return 分支使用;②删除颜色翻转分支 cntG>=2/cntG>=3、cntR>=2/cntR>=3 死分支(触发条件 cur<0&&prev>0 限定"翻转第一根",cnt 恒=1,多根档永不触发);③删除 divTextOf 的 upperA 死参数、momTextOf 的 level 死参数(函数体内零引用)。行为完全不变(单元测试 6 场景输出一致)。回归测试 159 项全绿。
v2369/2 22:03继续扫描修复预一买/预一卖 maxIdx1 漏过滤同号柱:①完整扫描第二处发现——chan-engine.js 预一买/预一卖的 maxIdx1 循环用 Math.abs(macd.hist[mi1]) 不分红绿取绝对值最大,而同文件 segStatsDown/Up 正确带 if(h<0)/if(h>0) 只数同号柱,两处口径不一致;②后果:离开段内有反弹异色柱(且绝对值更大)时,maxIdx1 定位到异色柱→peaked1 误判「见顶」+ halfArea1 面积漏算→预一买/卖可能误触发背驰;③修复:maxIdx1 循环加同号柱过滤(预一买只数绿柱/预一卖只数红柱),与 segStats 同源;④test_regression.js 新增 BUG-014 源码守护 + BUG_LOG 入库。回归测试 158 项全绿。
v2359/2 21:46完整扫描修复「动能延续」方向颠倒 bug(judgeSupDir 误判):①按用户要求对今晚三行重构+背驰+凹字形全套改动做完整扫描,挖出严重 bug——macdMomentum 的 `_dir=(_sgn>0)?'warn':'ok'` 静态按柱子颜色给 state,导致「动能延续」(红柱仍在增长/绿柱仍在伸长/尚未见顶见底/凹字形二次冲高中)被误带买卖方向,judgeSupDir 靠 mom.state 判方向时把「红柱增长(多头延续)」误判成 bear 转空、「绿柱伸长(空头延续)」误判成 bull 转多,大结论买卖方向颠倒;②修复:三处「动能延续」返回 state 改 undefined(凹字形增速未放缓/高级别未peaked/低级别尚未见顶),让 judgeSupDir 落到 cur.color 延续分支;「动能衰竭/反转」state 保留;③顺带修绿转红计数循环 `i2++`→`i2--` 笔误(此前因 prev 异色截断 cntR 恒=1 无功能影响,属隐患);④test_regression.js 新增 BUG-013 源码守护 + BUG_LOG 入库。回归测试 158 项全绿。
v2349/2 21:40情况2「马上离场」大结论强化 + 修正 opDivWarn 过宽:①用户确认「红柱持续缩短到接近0轴 + 黄白线走平/拐头/交叉 → 马上离场」要加(此前只判「考虑卖出」);②实现:大结论新增 opMomWarn&&opFlat(红柱缩短 + 黄白线走平/拐头向下)→ 马上卖出,优先级置于 bearWeak/bull 之前(本级别强反转信号不因高级别弱转空而降级为「考虑卖出」);③顺带修正 opDivWarn 潜在 bug——原 `opDiv2.state==='warn'` 会把 level:'consider'(考虑背驰,黄白线同向的弱信号)也算成顶背驰,改为 `level==='bei'&&state==='warn'`(只命中背驰确认)。回归测试 157 项全绿。
v2339/2 21:15凹字形检测加凹槽深度门槛(过滤微小波动误判):①凹字形检测此前用严格局部峰谷(无门槛),柱子微小回撤又涨(回撤2%~4%)也会被判成凹字形、误走「伸长高度比较」判据;②修复:detectConcave(辅助卡)/ detectConcaveSeg(引擎)加凹槽深度门槛——凹槽底须比第一峰回撤>15%(|valley|<firstPeak×0.85)才算真凹字形,否则走常规面积×2逻辑;③验证:回撤20%判凹字形、回撤2%/4%微波动被过滤、边界15%严格判断;回归测试 157 项全绿。
v2329/2 21:06补全凹字形检测到「进行中笔」面积估算(引擎最后一处×2):①v230 凹字形修复覆盖了预一买/预一卖,但 renderStructure 里「进行中笔」的 area=halfBi×2(供笔背驰提前预警)还有一处没加凹字形检测;②修复:该处×2 前加 detectConcaveSeg 检测,凹字形时跳过×2、改用真实累计面积(保守低估整段),避免误报笔背驰;③至此引擎内全部「最长柱×2」位置(segStatsDown/Up、进行中笔、预一买、预一卖)均已覆盖凹字形处理。回归测试 157 项全绿。
v2319/2 20:55修复 v229 遗留 bug:macdDivergence 丢失 state 字段致「顶背驰」信号在大结论失效 + 情况2离场强化:①根因——v229 三行重构时 macdDivergence 返回值从 {state:'warn'/'ok'} 改成了 {level:'bei'/'consider'},但大结论的 opDivWarn(opDiv2.state==='warn') 和买入提醒 okLv(a.div.state==='ok') 判断没同步更新,导致「顶背驰/底背驰」信号在实时分析大结论里彻底失效、只剩「红柱缩短」在驱动卖出;②修复:macdDivergence 所有 level:'bei'/'consider' 返回值补 state 字段(红柱=顶背驰=warn卖出、绿柱=底背驰=ok买入),level:'hold' 保持无 state;③情况2强化(用户「持续缩短到0轴+黄白线走平/拐头/交叉→马上离场」):大结论新增 opDivWarn&&opMomWarn(顶背驰确认+红柱持续缩短)→ 马上卖出(此前只判「考虑卖出」);④验证:红柱背驰 state=warn/绿柱背驰 state=ok/未背驰无state,回归测试 156 项全绿。
v2309/2 20:40MACD凹字形盲点修复:改用禅师「伸长高度不能突破前高」判据:①用户发现——柱子「先增长→缩短→再增长」的凹字形会让「最长柱×2」面积估算失效(凹槽破坏对称假设、取全局最大峰会误判二次发力为见顶);②新增凹字形检测 detectConcave(辅助卡)/ detectConcaveSeg(引擎),识别「第一峰→凹槽→二次增长」结构;③凹字形时改判:增速放缓(最长柱已出现)后——二次冲高/下探未过第一峰→二次衰竭离场;过第一峰但未过前一同色块最高柱→背驰离场;过前高→未背驰持有观察(新增 .hc-kw-hold 灰字);④辅助卡 macdMomentum/macdDivergence + 引擎 segStatsDown/Up 增 peak 字段、预一买/预一卖(pending_buy1/sell1)对称加凹字形分支,红柱=冲高/前峰/前高、绿柱=下探/前谷/前低;⑤黄白线0轴上下切换暂不纳入(用户确认太复杂先不加)。回归测试 156 项全绿。
v2299/2 19:15辅助观察卡改三行:面积动能 + 黄白线 + 背驰(面积+黄白线两因素综合):①用户纠正——背驰/盘整背驰应「面积+黄白线」两因素共同决定,此前 v228 把黄白线去掉了是错的;②改三行:第一行「单块MACD面积」输出柱子动能(红柱增速已变慢/绿柱已缩短/红柱已见顶/绿柱已见底→动能衰竭;仍在增长/伸长/尚未见顶/见底→动能延续);第二行「黄白线」输出方向(红柱:拐头向下→趋势反转/走平→趋势走平/向上→趋势延续;绿柱对称:向上→反转/走平→走平/向下→延续);第三行「背驰/盘整背驰」综合面积+黄白线——动能衰竭+面积缩小+黄白线走平/拐头→背驰/盘整背驰(红字 .hc-kw),动能衰竭+面积缩小+黄白线同向→考虑背驰(黄字 .hc-kw-consider),否则无背驰;③新增 trendTextOf(黄白线方向)+ 新增 .hc-kw-consider 黄字 CSS;macdDivergence 返回 level:'bei'/'consider';④divTextOf 简化兜底为「无背驰/盘整背驰」,颜色翻转多级别共振判定移到第一行 momTextOf 已处理。不涉及 chan-engine.js,回归测试 156 项仍全绿。
v2289/2 18:50背驰/盘整背驰 与 单块MACD 口径统一:①用户反馈 v227 调换两行顺序后,两行判定仍打架——龙旗科技截图:30F 单块MACD「增速已变慢——背驰」但背驰/盘整背驰「未触发」(黄白线没背离→pullOk=false→返回null);5F 单块MACD「尚未见底——动能延续」但背驰/盘整背驰「出现盘整背驰」(实际累计面积已小);②根因:macdDivergence 要求 areaOk AND pullOk(黄白线背离)双条件,单块MACD 只看面积;3)修复:app1 macdDivergence 去掉 pullOk 要求(与单块MACD 统一只看面积),同时加「当前柱就是最长柱(peakIdx===last.end)时不报」的判断(与单块MACD「尚未见顶/见底——动能延续」口径一致);输出文案去掉「黄白线背离(DIF未创新低/高)」部分(与单块MACD 的「面积%」口径一致);4)结果:30F 两行同报背驰/未背驰、5F 两行同报尚未见底、1F 两行同报已见底——不再打架。不涉及 chan-engine.js,回归测试 156 项仍全绿。
v2279/2 18:45辅助观察卡两行顺序调整:单块MACD 置顶、背驰/盘整背驰 第二行:①用户要求把「单块MACD」行放第一行、「背驰/盘整背驰」行放第二行(原顺序相反);②实现:app1 辅助观察卡渲染循环里,把 hc-lv-row 两行的拼接顺序对调——第一行改 momTextOf(单块MACD)、第二行改 divTextOf(背驰/盘整背驰);③仅展示顺序变化,判定逻辑/染色/文案均未动。不涉及 chan-engine.js,回归测试 156 项仍全绿。
v2269/2 18:25单块MACD:高级别(增速变慢)也判背驰 + 红绿对应见顶/见底:①用户纠正 v225 的两个漏判:(a) 高级别增速变慢只给「注意见顶/见底」纯提示而没判背驰——按逻辑既然"柱子增速已变慢"就应该和低级别见顶一样判背驰(面积比较),给明确结论;(b) 红柱子应统一为「尚未见顶」、绿柱子为「尚未见底」——代码里 `_sgn>0?见顶:见底` 已对但用户要确认对应;②修复:高级别分支(_peaked=true)txt 改为 `(_bei?'背驰':'未背驰')+_note`(与低级别同口径,面积变小=背驰、变大=未背驰);_note 变量定义上移外层(_dir 后),避免块作用域被高级别分支用到 undefined;3)5F 显示「尚未见底」逻辑正确(当前柱就是最长柱、下一根未确认无法判见顶,自然不判背驰);4)红绿见顶见底对应保留:红柱=_peakWord「见顶」(上涨动能到顶)、绿柱=_peakWord「见底」(下跌动能到底)。不涉及 chan-engine.js,回归测试 156 项仍全绿。
v2259/2 18:20单块MACD 行改输出「状态+结论」(去掉口径解释):①用户纠正 v223 的口径——之前写的是「(高级别·强度变慢即报)/(低级别·见顶确认才报)」这种解释,用户要的是能辅助判断的结论;②修复:app1 macdMomentum 重写同色柱分支——高级别(D/30F)最长柱已出现输出「MACD柱子增速已变慢——注意见顶/见底」,未出现输出「MACD柱子仍在增长」;低级别(5F/1)最长柱出现+下一根缩短确认输出「MACD柱子已见顶/见底——背驰/未背驰(本段面积约前段N%)」,面积变小=背驰、面积变大=未背驰(复用 macdDivergence 同款切段+前半段×2面积估算口径),未见顶输出「MACD柱子尚未见顶/见底」;颜色翻转分支(红转绿/绿转红)保留;momTextOf 去掉 basisHint 相关逻辑;③方向染色不变(红柱=卖出绿字、绿柱=买入红字)。不涉及 chan-engine.js,回归测试 156 项仍全绿。
v2249/2 18:05市场总览页加手动刷新按钮 + 龙虎榜实时标签修正:①用户反馈市场总览页「update-bar 不刷新、实时标签错乱」:根因——市场总览 update-bar(app4 view-market)没有手动刷新按钮(消息面工作台有),用户无法主动触发 refreshMarket,只能刷新消息面时顺带;龙虎榜 dateBadge 永远传 false(黄色快照)但其实是实时拉到的当天数据(lp.lhb 非空),标签错标;②修复:市场总览 update-bar 加「手动刷新」按钮(onclick="refreshMarket(true,true);toast('…正在实时拉取…')");龙虎榜 dateBadge 第一参改 `!!lp.lhb`——实时拉到时显示蓝色「实时当天」标签、未拉到时仍黄色「快照」;③影响:仅 app4 UI 改动,不涉及 chan-engine.js/数据结构/判定逻辑。回归测试 156 项仍全绿。
v2239/2 17:50辅助观察卡「单块MACD」按 v203 口径分级别标注(强度变慢/见顶确认):①用户要求把昨天提的「MACD柱子增加速度变慢」问题按级别两套逻辑体现到辅助观察卡「单块MACD」行,并说明口径;②根因:app1 macdAuxAdvice 调用 macdMomentum(macd) 时漏传 level,导致 4 级别共用一套判定,违反 v203「高级别用强度变慢(最长柱出现即报,灵敏提前)、低级别用见顶(最长柱+下一根缩短才报,避免假背驰)」分档口径;③修复:macdAuxAdvice 改 `mom: macdMomentum(macd, level)` 传 level;macdMomentum 加 level 参数——高级别(D/30F)保持原灵敏度(前后两根缩短即报)、低级别(5F/1)新增 `prev<=prev2` 约束(要求连续两根缩短才报,即「见顶确认」),返回对象增 basis/basisHint;momTextOf 加 level 参数,「单块MACD」触发判定时文案末尾追加「(高级别·强度变慢即报)」/「(低级别·见顶确认才报)」短注,让人一眼看出当前用的是哪套口径;④判定逻辑未变(仍基于前后两根柱子缩短),仅按级别收紧低级别的灵敏度+文案透明化。不涉及 chan-engine.js,回归测试 155 项仍全绿。
v2229/2 17:35K线结构图线段端点加价位标注(可显示/隐藏):①用户要求在线段起点/终点加价位、可显隐;②实现:app2 renderLevelSVG 线段绘制循环里给每个线段起点(端点下方 y+14)与终点(端点上上方 y-6)各加一个价位文字(class="xd-price",字号11、颜色随线段——模式一橙#f97316/模式二青#0d9488,用 fmt 保留2位小数);③图层开关:K线图顶部工具条新增「价位」按钮(data-layer="price"),复用既有 .kzoom.hide-xxx 图层机制——点击切换隐藏/显示(CSS 新增 .kzoom.hide-price .xd-price{display:none}),与中枢/线段/笔开关并列;④不涉及 chan-engine.js 判定逻辑,仅 app2 渲染层改动。回归测试 155 项仍全绿。
v2219/2 16:55市场扫描(app3)修复「预形成」混入卖点 + 预买点按钮改「低预警/高预警」:①根因:isSellType 用 type.indexOf("sell")===0 只匹配以 sell 开头的 type,漏判 pending_sellX(type 以 pending_ 开头)——547 个预形成卖点(一卖29/二卖3/三卖515)混入买点列表,致「预形成」tab 显示 1159(实为买点612+卖点547),用户疑问「你算的612但APP显示1159」;②修复:isSellType 改 type.replace(/^pending_/,"").indexOf("sell")===0,修复后「预形成」正确显示 612(一买17/二买16/三买579)、「已形成」227;③预形成视图下第三行两按钮「背驰/背驰+黄白线」切换为「低预警/高预警」——低预警=构造中(结构到位、黄白线尚未拐头,再等等,579只)、高预警=进入背驰段+黄白线走平/拐头(下跌动能衰竭确认、马上买,33只),与引擎 tags「X买构造中/X买高预警」一一对应;已形成视图两按钮语义不变(背驰=任何背离超集227、背驰+黄白线=标准买点27)。不涉及 chan-engine.js,回归测试 153 项仍全绿。
v2209/2 14:05辅助判断卡关键词染色修正(未触发不标色 + 多转空绿/空转多红):①根因:app1 辅助判断卡 hlKey 函数当 dir 不存在时(未触发背驰/盘整背驰/动能耗尽)会回退到 .hc-kw 红,致「当前绿柱持续 6 根;未见同色柱面积缩小,未触发背驰/盘整背驰」中的「盘整背驰/背驰」也被错误染红——用户要求「未触发就不标色」;②修复:hlKey 加 dir 判空——dir 不存在时直接返回原文、不包裹 span;dir=sell 仍 .hc-kw-sell 绿(多转空=顶背驰/涨势动能耗尽=卖出)、dir=buy 仍 .hc-kw 红(空转多=底背驰/跌势动能耗尽=买入);③影响:仅颜色规则变化,divTextOf / momTextOf 的判定逻辑未动;单块 MACD 行中的「动能反转确认/局部翻转」等仍按方向染色;仅 5 处版本号同步(version.json / sw.js CACHE / index.html hub-ver / app1 三处),不涉及 chan-engine.js,回归测试 153 项仍全绿。
v2199/2 09:02凌晨巡检·K线端点全面恢复 + 文案修正 + 版本同步:①K线数据源健康检查(最高优先级):实测4端点全部恢复——主源 web.ifzq.gtimg.cn kline/kline 200+CORS:*、备源 ifzq.gtimg.cn fqkline/get 200+CORS:*(此前501反爬已恢复)、分钟线 mkline 200+CORS:*、实时 qt.gtimg.cn 200+CORS:*;前端 app1/app2/app4 的 fetchKlineDaily 多源回退链完好,无裸直连;app4 buildLiveMarket 快照兜底(klineOk=false 红标)正常;后端 em_data.py 多源回退链完整(tx→em→sina),更新模块头注释(移除「web.ifzq 已失效恒501」过时描述);②app5 综合窗口巡检文案修正:第⑥项取数窗口文案由「D160/30F320/5F320」更正为「日线800+自适应补拉1500 / 30F·5F各5000」(与实际代码一致);③清理残留:删除 merge/__pycache__、chan_resonance 过期 sector_run 日志、已执行完毕的一次性重扫自动化任务;④sw.js CACHE 升 v219,APP_VER/splash/footer/header-sub/badge 六处版本号同步。
v2189/2 00:25分钟线历史库消费端接口预留 + 后端导出器(默认关闭,未启用):①背景:自建分钟线历史库已落地(min_history.py 每日凌晨 2:30 增量抓新浪分钟线,逐步累积突破新浪 5000 根上限,根治 30F/5F「进入段 a 在窗口起点被截短」);②本次把「消费端读取」接口设计好、先不启用:前端 app1/app2 的 fetchEmMinuteBars 重构出 sinaOnly(纯新浪原逻辑,行为零变化),新增 MIN_HISTORY_ENABLED 总开关(默认 false)+ histBarsToTencent({t,o,h,l,c,v}→腾讯同构数组)/ mergeMinByTs(按时间戳去重合并)/ fetchMinHistoryBars(探测线上历史库文件)三个接口函数——把开关改 true 即可自动探测 data/min_history/{sym}_{period}.json 并拼接「历史库+新浪实时」,拼出超出新浪上限的更长窗口;③后端 min_history.py 新增 --export --symbols ... --out ... 导出器,把指定股票历史库 JSON 复制到 dist/data/min_history 随部署上线;④sw.js 新增 /data/min_history/*.json 网络优先+no-store 缓存规则、CACHE 升 v218;⑤启用前需让历史库先累积足够天数,届时导出自选股+改开关+上线即可,无需再改代码。回归测试 153 项全绿。
v2179/1 23:50日线全覆盖 + 自适应兜底(补齐 app4 指数 + 无中枢自动补拉 1500):①补齐遗漏:app4(大盘技术走势,上证/深成/创业板/北证50)日线 160→800(东财指数源 klt=101,失败回退腾讯),至此四个入口(app1 诊断 / app2 实操 / app3 扫描后端 pipeline / app4 大盘指数)日线全部统一 800 根;②自适应兜底:针对 601919 类超长周期股,日线拉满 800 根仍构不成「3线段重叠」中枢时,自动补拉 1500 根(约6年)重算——后端 pipeline.py 在阶段B+C 后对「拉满800且无中枢」的股票补拉(统计 daily_boosted),前端 app1/app2/app4 在单股/指数分析时同步兜底,只有极少数超长周期股触发、性能影响小;③分钟线(30F/5F)维持新浪 5000 根上限不变(数据源限制)。
v2159/1 23:45日线 K 线拉取量 300/160 → 800 根,修复大周期股日线构不成中枢:①601919 排查发现日线仅拉 300 根(约15个月),对大周期股(日线线段超长、每段上百根K线)只够画出 5 段线段,连一个「3线段重叠」的中枢都构不成,导致日线无中枢、无 a+A+b、买卖点检不出;②修复:app2 实操参考日线 300→800(约3.2年)、app1 诊断日线 160→800、扫描后端 pipeline.py 日线 LMT 300→800,前端与市场扫描口径统一;③分钟线(30F 2.5年 / 5F 5个月)已是新浪接口 datalen 上限(5000 根),东财 push2his 分钟线仍反爬,进入段 a 在数据窗口起点处会被截短,属数据源限制、非代码 bug;④回归测试 153 项全绿。
v2149/1 23:20「最佳买点」内嵌实操参考(app2)最优参考页:①用户要求把「最佳买点」逻辑做进 app2「最优参考」页,点「最优参考」顶部即显示根据历史回测数据库推荐的「级别×买点」组合;②实现:pg-trade 顶部新增「🏆 最佳买点」卡片,读取 data/learn_report.json 的 win_rate.best(最优级别+买点类型+持有根数+历史胜率+样本量),卡片含「🎯 一键按最佳买点选股」按钮——点击自动把级别/买点类型切到最优组合、板块重置为全市场、切到买入子页并触发筛选,直接列出该组合组内最优 3 只;③首次报告未生成时显示空态提示(每日凌晨 06:00 自动回测后生成);④CSS 新增 .best-* 系列(金色标题、红色胜率,符合 A 股涨=红)。
v2139/1 23:10综合窗口新增「原文学习」模块 + 400 只涨跌榜每日回测机制:①板块强度更新频率收敛为「上午定稿 11:30 + 收盘定稿 15:05」一天两次(下午盘中 13:05/14:05 停用);②综合窗口(app5)新增第 4 个「📚 原文学习」标签页,与「说明中心」并列,读取 data/learn_report.json 展示——测试1=中枢/买卖点/背驰结构正确性校验(seg≥3、seg≥9 升级标记、ZG≥ZD、GG≥ZG、DD≤ZD、字母连续),测试2=买点胜率回测(buy1/buy2/buy3/buy23 × 持有5/10/20根),并高亮「最佳买点」(样本≥20 且胜率最高);③新建 backtest_400.js 回测脚本:每日 06:00 自动拉沪深两市涨幅榜前200+跌幅榜前200(约400只,过滤北交所/新股),东财主源+新浪兜底,滚动截面回测产出 learn_report.json;④新增「缠论引擎·原文学习回测」每日 06:00 定时任务(凌晨5点原文对照校准引擎之后跑),凌晨2点巡检(含 BUG 修复/残留清理)与凌晨5点原文对照保持不动。
v2129/1 22:15中枢 a+A+b / a+A+b+B+c 字母标记 + 全局回归测试机制:①用户要求中枢画成 a+A+b 或 a+A+b+B+c 形态、字母标到图上以便一眼看出中枢对错;②引擎 renderStructure 为每个中枢加 label(A/B/C)、enterLabel(a/b/c)、leaveLabel(b/c/d);app2 渲染层中枢框标 A/B/C、进入段标 a、离开段标 b/c/d(相邻中枢共享的 b 段只标一次避免重复),图例新增「走势类型 a+A+b / a+A+b+B+c」;③全局覆盖验证:新建 test_regression.js 回归测试,16 只代表股 × 3 级别(日线/30F/5F)跑规则不变量校验(中枢≥3段、seg≥9升级标记、ZG≥ZD、GG≥ZG、DD≤ZD、字母连续)+ 已知案例快照(601919 首中枢 seg=3 无假延伸回归、002371 5F 第二中枢 584~585 正常)+ 买卖点合理性,153 项全部通过;④结论:买卖点无需额外调整——中枢已在 v211 修复(return true)、三买三卖闭边界已在 v210 对齐原文,买卖点自动跟随正确中枢。
v2119/1 21:50修复 002371 5F 中枢乱画(线段复用)+ 去掉图上背驰/盘整背驰标注:①用户反馈 002371 5F 第二个中枢进入段/离开段乱画(与 603198 同类问题,此前未做全局审查);②根因:tryExtendLast 在三买/三卖破坏、升级时 return false,导致 processThree 误把「离开段+回抽段」当作新中枢三段去构造,复用了旧中枢末线段(002371 的 xd#2);③修复:5 处破坏/升级分支 return false→return true(跳过当前 three 构造,避免复用离开段/回抽段),修复后 zs#1 由「复用 xd#2 的假中枢」纠正为 ZG=585/ZD=584.19 的正确 5 段中枢;④用户要求图上只标 1/2/3 类买卖点、不写背驰/盘整背驰:删除模式一 R.marks 背驰文字标注 + 过滤 sig.segs 里「背驰段/警示段」动力学标签 + 清理图例,保留结构段(进入段/离开段/回调段/回试段等)与买卖点标记。
v2109/1 20:50修复 601919 30F 中枢延伸过长 + 三买三卖边界 off-by-one:①用户反馈 601919 中远海控 30F 中枢(zs#0)画成横跨一年的超长假中枢(seg=8,覆盖 2024-03~2025-03,期间价格 10.07~17.58 大幅穿越 ZG/ZD);②根因:三买确认判定用「严格大于」`dn>ZG`,而第20课原文是「回试低点不跌破ZG」(应 `dn>=ZG`)——601919 的 xd#7 回试低点 13.50 恰好等于 ZG=13.50,被漏判,导致本应三买离开的中枢继续延伸;③修复:6 处 off-by-one 边界对齐第20课原文——tryExtendLast 四处三买三卖确认(dn>ZG→dn>=ZG 不跌破、gn=ZD→rb>ZD 才算升破);④修复后 601919 zs#0 由 seg=8 收敛为 seg=3(中枢区间 12.67~13.50,覆盖约4个月),离开段正确指向向上段 xd#6。
v2099/1 20:20修复离开段画错(假突破→反向真离开):①用户反馈 603198 迎驾贡酒 5F 图离开段画错;②根因:renderStructure 取离开段写死 endBi.next,未理会 v196「离开段+回抽段」成对判定的 pendingSeg,遇「向下假突破→向上真离开(三买)」时 leave 误指向假突破的向下段 xd#3(40.53→37.74);③修复:leaveSeg 优先取 zz.pendingSeg(真离开段),无 pendingSeg 时退回 endBi.next;④修复后 603198 5F 离开段正确指向 xd#4(向上 37.74→42.41,三买方向)。
v2089/1 17:25辅助判断卡关键词颜色改按「买卖方向」区分(纠正 v207):①用户澄清:动能衰竭/盘整背驰/背驰分两种方向——多转空(顶背驰/红柱衰竭)=卖出=绿色;空转多(底背驰/绿柱衰竭)=买入=红色,符合A股习惯(红=涨/买、绿=跌/卖);②v207 按"级别"分色理解错了,已纠正;③hlKey(text,dir):dir='sell'用 .hc-kw-sell 绿(#0a8a3c)、dir='buy'用 .hc-kw 红(#d4380d),dir 由 a.div.state / a.mom.state 判定(warn=卖、ok=买),colorFlipped 红→绿=sell、绿→红=buy;④divTextOf/momTextOf 函数签名去掉 isOp、改内部判 dir。
v2079/1 16:35辅助判断卡关键词字体颜色按级别区分:①用户指出日线/30F 都有"盘整背驰/动能衰竭"但语义不同——高级别是趋势背景、操作级别才是买卖信号,颜色应区分;②修复:hlKey(text,isOp) 函数加 isOp 参数,操作级别用 .hc-kw 红橙(#d4380d)、高级别用 .hc-kw-sup 蓝紫(#5b6bb8),divTextOf/momTextOf 函数签名加 isOp 并传递给内部所有 hlKey 调用;③css 加 .hc-kw-sup;④一眼可区分"高级别趋势背景"与"操作级别买卖信号"两层颜色。
v2069/1 16:15预二买/预三买/预二卖/预三卖补黄白线方向(口径统一):①此前预一买/预一卖已用黄白线方向(走平/拐头=马上、仍同向=再等等),但预二/预三买卖点只用「柱子缩短(shrink)」、漏了黄白线方向;②修复:downLegDone/upLegDone 新增 flatUp/flatDown 返回(近3根 DIF/DEA 差分 ±0.005,与 app1 同口径);③预二/预三买卖点高预警改为「有中枢 + 柱子缩短 + 黄白线走平/拐头(同向延伸=再等等)」三条件,柱子缩短但黄白仍同向 → 降级为「构造中/待确认」;④至此 36 类买卖点的「预·高预警 vs 预·构造中」全部由黄白线方向区分,与预一买/预一卖一致。
v2059/1 15:55黄白线口径修正:由「背离」改为「方向(走平/拐头)」:①用户澄清黄白线用法——柱子见顶/见底=股价快到高点/低点=考虑卖出/买入;配合黄白线方向:走平/拐头=必然马上卖/买,仍同向延伸=可能再走一段再回落(此逻辑前面已确立,见 app1 建议卖出价)。②v204 误用「黄白线背离(DIF 不创新低/高)」作为预一买/预一卖高预警条件,方向不对;③改为黄白线方向(近3根 DIF/DEA 差分 ±0.005 阈值,与 app1 macdCurrentState 同口径)——预一买高预警=最长柱见顶+面积×2缩小+黄白线走平/拐头向上(下跌动能衰竭确认,马上买);预一卖对称用走平/拐头向下;面积缩小但黄白线仍同向=构造中(再等等)。④新增 chan-engine difDeaTrend() helper,与 app1 口径统一。
v2049/1 15:35预一买/预一卖补上黄白线背离 + 级别两档:①用户提醒「黄白线的不要忘了」——排查发现预一买/预一卖(pending_buy1/pending_sell1)的高预警判定此前只看柱子面积(最长柱×2),完全漏了黄白线背离第二维;②修复:高预警 = 最长柱见顶 + 前半段面积×2<进入段 + 黄白线背离(买点 DIF 未创新低 / 卖点 DIF 未创新高)三条件;面积缩小但黄白线未背离 → 降级为「构造中/待确认」(不再误判高预警);③顺带把预一买/预一卖的 peaked1 判定也跟上 v203 的级别两档(高级别力度变慢=最长柱出现即估、低级别见顶=下一根缩短才估);④据此标准背驰 = 面积缩小 + 黄白线背离双维,与正式一买/一卖的 pullOk 口径一致。
v2039/1 15:05背驰面积估算「力度变慢/见顶」按级别分两档:①背景:用户指出「伸长力度变慢」与「见顶」是两种灵敏度,可分别适配不同级别——高级别柱子稀疏、反转慢、时间成本高,宜提前预警;低级别柱子密集、噪音大,宜确认过滤。②口径:高级别(D/30F)用「力度变慢」=最长柱出现即×2估整段;低级别(5F/1F)用「见顶」=最长柱出现+下一根缩短才×2估。③实现:chan-engine.js 的 segStatsDown/Up、downLegDone/upLegDone、renderStructure 的 bis.area 全部加 level 参数两档触发(默认无 level 走见顶,向后兼容);detectBuy/SellSignals 的一买卖/二三买卖按操作级别与次级别(SUB_LEVEL 下钻)传对应 level;app2 观察卡片 analyzeLevels 传 D/30/5;app1 辅助判断卡 macdDivergence 按 D/M30/M5/M1 传 level。④全链路统一:扫描→观察→辅助判断卡三处口径一致。
v2029/1 14:45说明中心新增「背驰面积提前估算(第24课伸长力度变慢)」说明:在「动力学与新鲜度」板块下新增第24课原文「柱子伸长力度变慢时,把已出现面积×2 当整段面积」的完整说明,明确三点——①「力度变慢」的引擎界定=背驰段最长柱已见顶(出现后下一根比它短);②面积估算=背驰段起点到最长柱(含)前半段面积×2 对比进入段;③预买卖 vs 正式买卖的分界=最长柱是否已走出来(走出来+面积缩小=正式买卖点,未走出来=预买卖),据此所有买卖点最终归到某级别一买。纯说明补充,不改任何判定逻辑。
v2019/1 14:15背驰/盘整背驰面积判定对齐第24课原文(去≥5根门槛 + ×2提前估):①根因:app1 辅助判断卡 macdDivergence 自造「两段同色柱都≥5根 + 当前柱回落峰值55%以下」硬门槛,而第24课原文无此要求(原文案例 A段2根红柱/C段3根红柱即判背驰),且原文明确「柱子伸长力度变慢时,把已出现面积×2 当整段面积」提前判;②修复:三处统一改为「最长柱见顶(下一根缩短=力度变慢)→ 前半段(到最长柱)面积×2 估整段 → 对比前段/进入段」——chan-engine segStatsDown/Up 的×2 触发从「最后一根柱仍在伸长」改为「最长柱见顶」,renderStructure 对进行中笔(最后一笔)的 bis.area 加同样的×2提前估,app1 macdDivergence 去掉≥5根与55%门槛改为见顶×2;③口径统一:预买卖与正式买卖的分界=背驰段最长柱是否已走出来(走出来+面积缩小=正式买卖点,未走出来=预买卖),与「所有买卖点最终归到一买」一致。
v2009/1 09:50辅助判断卡「高级别仍多头」括号内只输出当前实际状态(不再罗列所有多头情况):①原 divText「高级别日线仍多头(绿柱缩短/绿转红/红柱延续)」是把所有多头可能性并列,用户指出一眼看上去不知道当前是哪一种;②改为根据 supAux.cur.color/colorFlipped + supAux.mom.state 唯一判断——当前若是「绿转红」就只输出「绿转红」,若是「绿柱缩短」+黄白走平拐头就只输出「绿柱缩短(黄白走平/拐头)」,若是「红柱延续」+黄白方向就只输出「红柱延续(黄白仍向上/走平拐头)」;③与 supDir(judgeSupDir 返回 bullStrong/bullWeak)的黄白方向判定口径一致。
v1999/1 08:42修复动态数据被浏览器 HTTP 缓存卡旧(凌晨5点已重扫、前端却显示旧数据):①根因:sw.js 动态数据(version.json/buy_points.json 等)fetch 用默认 cache 模式,浏览器命中 disk cache 直接返回旧的 buy_points.json/version.json,导致「凌晨5点扫描已生成 847 条新信号、前端仍显示昨天 8/31 16:31 的旧数据(二买19/一买189/耗时49分钟)」;②修复:动态数据 fetch 加 {cache:"no-store"}(强制绕过 HTTP 缓存、每次都拿最新),静态文件加 {cache:"no-cache"}(每次与服务器 304 校验),sw 缓存仍保留作断网兜底;③CACHE 版本 v198→v199,部署后新 sw 接管并强制刷新缓存。
v1989/1 02:00凌晨巡检:引擎版本显示文案同步 v5.0:①v197 引擎升级 5.0 后遗漏两处显示同步——app2.html header `v3.0`(与引擎 VERSION=5.0 脱节)、app5.html 「缠论引擎说明」badge 「ChanEngine v4.0」(引擎已升 5.0);②同步到 v5.0;③K线端点实测:主源 web.ifzq kline/kline、备源 ifzq fqkline/get、分钟线 mkline、实时 qt.gtimg.cn 全部 200 + CORS:*(备源从 8/25 持续 501 WAF 反爬中恢复),主备双源健康,前端多源回退链(fetchKlineDaily 主源→备源→缓存)保持完整;④引擎统一性、止损规则双轨(结构止损+成本-2%硬取更紧者)、app3→app2 跨模块数据流(buy_points.json)、localStorage wb_ 前缀、版本号同步(5处全部 v2026.09.01.v198)均正常;⑤app5 更新日志从 v44 起累计 150 条覆盖至 v198(跳号 v45/v69/v71/v73/v75 与历史一致);⑥清理:chan_resonance/__pycache__(8个.pyc)、本次巡检检测探针残留(k_status.log/k_*.log/v_*.txt)。
v1979/1 00:35缠论引擎升级 5.0 · 统一中枢段数语义(修复龙旗科技误判「延伸超过6段」):①根因:app2「中枢延伸超过6段建议同级别分解」判定误用「笔数 biEnd-biStart+1」(线段级中枢里笔数远大于线段数,龙旗科技日线 5 线段=29 笔被误判升级,实际 seg=5<9 不该升级);②修复:renderStructure 中枢 zs 新增 seg(线段数)/extended/upgraded 字段,app2 改按 seg≥9 判定(第33课:中枢延伸不能超过5段,一旦出现第6段延伸=3形成+6延伸=9段即升级),与 coreAnalyze/买点过滤口径统一;③对照原文重写引擎文件头与 app5 中枢定义说明(新生/破坏/延伸/扩张 + 36 类买卖点);④清理:删除已废弃的笔级中枢死代码 calBiZs/addZsFromBiRange、app2 过时的 chan.py 内嵌移植注释;⑤引擎 VERSION 4.0→5.0。验证:龙旗科技日线 seg=5 upgraded=false(不再误判),三安光电 5F 5 中枢方向全部正确。
v1968/31 23:59修复 5F 中枢与进入段/离开段画错(三安光电):①根因:线段级中枢延伸用「整段区间 [dn,gn] 与 [ZD,ZG] 重叠」判定,一条向下段从 ZG 之上跌穿 ZD(如 18.69→10.84)时整段区间仍与中枢重叠,被误判为延伸——导致中枢错误覆盖后续大跌、离开段方向错乱(三安光电 5F 中枢 [16.41,18.69] 由「下-上-下」错构成,离开段错指向上回抽段);②修复:tryExtendLast 改为「离开段+回抽段」成对判定(第20课定理三+第三类买卖点),离开段突破边界暂存 pendingSeg 不并入 endBi,回抽确认真离开时 endBi 停在离开段前,使 renderStructure 的 leave=endBi.next 正确指向离开段;③补充:processThree 加第三段终点约束(第三段不离开前两段重叠区),反向视角允许新建反向中枢(修复下跌段「上-下-上」中枢被漏判)。验证:三安光电 5F 5个中枢方向全部正确(上涨中枢离开段向上、下跌中枢离开段向下),30F/日线正常。
v1958/31 23:50分钟线数据源换新浪(解决「孤零零一个中枢、趋势看不出」):①根因排查——东财 push2his 已反爬(返回空)、腾讯 mkline 分钟线最多约800根(5F仅16交易日、30F约5个月),数据窗口太短导致只能看到1个中枢、a+A+b+B+c 趋势结构看不出(非引擎 bug、非线段画中枢法问题);②修复:app1/app2 的 fetchEmMinuteBars 主源改新浪 CN_MarketData.getKLineData(datalen 可到5000,5F约5个月、30F约2.5年),腾讯 mkline 兜底;③数据量 320/800 → 5000。验证:三安光电 5F 2个中枢→5个中枢、30F 1个中枢→6个中枢,趋势结构完整可见。注意:新浪分钟线不复权(东财前复权已不可用),除权跳空影响待后续处理。
v1948/31 23:30观察卡片 K 线图标出中枢进入段/离开段(第20课 a+A+b 模型):①chan-engine renderStructure 的中枢 zs 新增 enter/leave 字段(进入段=中枢首线段 pre、离开段=中枢末线段 next,用笔索引 a/b 与 xd 同口径);②app2 renderLevelSVG 画出进入段(灰 #64748b 加粗 +「进入」标签)、离开段(紫 #9333ea 加粗 +「离开」标签),与图例颜色一致。数据起点无进入段、末端无离开段时省略。
v1938/31 23:15修复中枢无限延伸 + 方向混淆(忠于第20课定理一 + 第33课):①v192 让中枢延伸时区间不变,但暴露「中枢无限延伸」——奥飞娱乐日线一个中枢 seg=11(覆盖线段1~11 整整3年)。根因:延伸判定用「3段重叠区间」而非「单段Z段[dn,gn]」,且无延伸段数限制。修复:tryExtendLast 改用 Z 段(与中枢方向一致的段)单段区间 [dn,gn] 与 [ZD,ZG] 重叠判断延伸(第20课定理一),并加方向检查(「下-上-下」反向视角跳过、不与「上-下-上」中枢混淆)+ 段数限制(第33课:3形成+5延伸=8段封顶)。②验证:奥飞娱乐 1个中枢(11段)→2个中枢(7段+5段),三安光电5F 两个3段标准中枢(趋势),13只股票最大 seg=7≤8。③消除了「走势多义性乱画多个中枢」的问题——多义性不是糊涂性,同级别分解保证唯一。
v1928/31 21:45修复中枢延伸时区间被错误收窄(忠于第20课中心定理一):chan-engine 的 tryExtendLast(中枢延伸)旧逻辑 zs.low=max(...)/zs.high=min(...) 会把中枢区间错误收窄——三安光电 30F 中枢 [12.75,14.91] 被收窄成 [12.75,13.10],ZG 从 14.91 错算成 13.10。按第20课中心定理一"走势中枢的延伸等价于任意区间[dn,gn]与[ZD,ZG]有重叠",延伸时 [ZD,ZG] 应保持不变,只更新 GG/DD(peakHigh/peakLow)和中枢结束位置。修复后中枢 ZG/ZD 忠于原文,影响三买(离开中枢回试不破 ZG)等买卖点判定。12只日线股票验证中枢区间合理。
v1918/31 20:10启用 4.0 线段级中枢 + 统一引擎:①启用 chan-engine 的线段级中枢(calSegAndZs 由 calBiZs 改调 calZsFromSegs,VERSION 3.0→4.0)——中枢从"3笔重叠"升级为"3线段重叠",对齐第17课原文"中枢=至少3个连续次级别走势类型重叠"(线段≈次级别走势类型);②biStart/biEnd 保持笔索引语义(取线段起始笔/结束笔索引),seg 语义从"笔数"变"线段数";③统一引擎:删除 app2 内嵌的整套 chan.py 移植(runChan+CKLine/CBi/CSeg/CZS 类,约42KB),chanStructure 改为转发 ChanEngine.renderStructure(chan-engine 新增该函数输出 app2 渲染契约 m/pts/bis/zs/xd),观察卡片 K线结构图与买卖点统一用 chan-engine 4.0 口径。
v1908/31 19:50修复状态判断 + 线段绘制(笔线段重合):①修复 levelConclusion 里 zsDone/biDone 用了不存在的 end 字段(chanStructure 中枢/笔对象实际是 isSure 字段),导致"已构造完成/尚在构造中""已完成/尚在延续"恒显示"尚在"——改用 isSure(笔是否确认完成)判断;②修复 K线图线段绘制:旧代码用 R.pts.slice(xd.a,xd.b+1) 把线段范围内的所有笔端点连成折线,导致线段沿笔走、与笔完全重合——按第67课线段定义(特征序列分型决定端点),改为只画「起点+终点」两个端点成直线。验证:三安光电30F 线段跨22/337/159/74/5根bar(跨多笔),线段端点100%是笔端点但中间笔端点不再画入线段。
v1898/31 19:30观察卡片中枢升级说明:用户选择"说明提示"方案——中枢延伸超过6段(笔数 seg≥9)升级为更大级别中枢时,观察卡片中枢解释处(app2 levelConclusion 的 zsTxt)追加提示「该中枢延伸超过6段已升级,建议切换同级别分解操作」,保留股票可见性、引导用户换级别分解而非丢弃。实现:用 chanStructure 中枢的 biEnd-biStart+1 算笔数,≥9 时追加说明。
v1888/31 19:10二买/二卖级别归属修正(参考中枢=次级别回调中枢):用户指出"30F 二买 = 5F 一买",二买要降级别,参考中枢是回调次级别走势类型(5F)里的最近中枢,而非 30F 中枢——二买可出现在 30F 中枢任何位置,30F 中枢对二买定位无用。修复:①downLegDone/upLegDone 返回新增 zs 字段(回调/反弹段切片 coreAnalyze 里的最近中枢);②二买 buy2/预二买(pending_buy2 高预警+普通)的 zs 改为 pullSeg.zs(次级别回调中枢),卖点侧 sell2/pending_sell2 对称;③buy23/sell23(二三买重合)保持操作级别中枢(判断"回调低点不破 ZG / 反弹高点不收复 ZD"的那个中枢)。注:二买背驰判定 downLegDone 本就已用次级别回调段的中枢(segA.zs),本次只是把"信号展示的中枢"也对齐为次级别中枢。
v1878/31 18:55买卖点中枢锚点全面统一为「最近中枢」:用户指出一买/预一买/三买/预三买必须以"最近的前一个中枢"为参考点,隔得老远的中枢无意义。v186 只改了三买/三卖,本次把所有买卖点(一买/预一买/二买/二卖/一卖/预一卖 + 二买三买重合 + 三买/三卖)的中枢锚点统一改用「未过滤的 A.zs 最近中枢」(end_bar 最大),不再用"过滤升级(seg<9)后的 zsList 最后中枢"。核心:`lastZs = A.zs[A.zs.length-1]` 用于所有买卖点锚定;`zsList`(过滤升级后)仅保留给 classifyTrend 趋势/盘整计数(isTrendB1 等)。验证:三安光电 30F 假三买归零 ✓;下跌跌破最近中枢创新低后预一买仍正常识别 ✓。
v1868/31 18:40修复三买/三卖"现价在中枢下方仍报三买"致命 bug:三安光电 30F 现价 13.09 位于最近中枢3(ZG13.52/ZD13.41)下方,却报 pending_buy3。根因:三买判定锚定"过滤升级(seg<9)后的 zsList 最后中枢",而三安中枢3 因 seg=10 延伸升级被过滤,引擎退回到更早的中枢2(ZG12.56),误判"现价 13.09>12.56=离开中枢2"。修复:三买/三卖判定改用未过滤的 A.zs 最近中枢(end_bar 最大)——延伸升级的中枢仍是有效的最近结构,现价相对其位置决定三买能否成立。验证:三安 30F 假三买 1→0 条 ✓;招行/平安日线(最近中枢 seg=9 升级,现价在 ZG 上方)仍正确输出预三买,不误伤 ✓。一买/一卖/二买/二卖继续用过滤后 zsList(背驰/趋势判定排除升级中枢,不受影响)。
v1858/31 18:30app3 chip 数量双向交集逻辑修正:v184 调换 UI 顺序后暴露隐藏 bug——买点类型 chip 数量只看 status+tab 不看 level,导致选 30F 时"三买 44 只"是全市场数(与 30F 27 只脱钩)。本次:①countBuySignals 新增 levelOverride 参数(默认按当前 level,传 'all' 强制忽略);②买点类型 chip 用默认(按当前 level)——选 30F 时三买显示"30F 下三买数";③级别 chip 用 'all' 强制忽略 level——保证"全部级别/日线/30F/5F"四个 chip 都展示完整分布而非被当前选中级别筛空;④切 level 时同步刷新 buy-tabs(renderBuyTabs 调用),使 chip 数字立即联动更新。
v1848/31 18:20app3 买点筛选顺序调整:原顺序"买点类型(三买/二买/一买)→ 级别"调换为"级别 → 买点类型",先选级别再选买点类型,逻辑更清晰。HTML 结构(index.html 47-49 行)调整:level-chips 上移到 buy-tabs 上方;chip 数量算法已是双向交集(325-328 行),先选哪个顺序结果一致。
v1838/31 傍晚定时任务时间调整 + 全站文案同步:①消息面盘后 16:30→20:30;②四周期共振 11:30→12:00;③板块强弱盘中每30分钟→每小时(上午9:25/10:25/11:25、下午13:05/14:05)。automation 的 rrule/name/prompt 同步,version.json 的 schedules.news/four 的 rule/times/next_run 同步,前端 app5(415/416/491)、app4(665/1087)、app2(4272/4327)、app3(696) 定时文案同步。
v1828/31 午后归档卡片按盈亏上色:实操档案页(page-history)每条已复盘已归档的卡片标题行,按 review.pnl 盈亏上色——盈利浅红(rgba 217,48,37,0.07)、亏损浅绿(rgba 15,138,61,0.07),符合 A 股红涨绿跌习惯;未复盘卡片不上色。未复盘但有 ops 记录的盈亏计算可后续扩展。
v1818/31 午后补全扫描信号结构位字段链路:此前 pipeline.py 落盘丢弃了 chan-engine 输出的 zs(中枢上下沿)/div(高低点)/raw_signal_price(不复权信号价),导致观察卡片买/卖点区间只能退化为系数。本次补全:①pipeline.py _decorate 补存 raw_signal_price/zs/div/segs;②app3 buySigInfo、app2 tbStk scanSig 传递这些字段;③app2 scanCardHTML 区间用结构位锚定(一买低点~中枢上沿 raw_zg、三买回试低点~离开段高点等,信号价用不复权 rawSignalPrice),结构位缺失时才退化为系数。注:明天 10:00 扫描会用新 pipeline.py 产出带结构位的 buy_points.json;当前 2130 条数据仍为旧格式(无 zs/div),前端已向后兼容。
v1808/31 午后v177 引擎买点扫描完成(2130 条):修复预三买/预三卖泛滥后重扫,信号 1929→12929→2130 条恢复正常(预三买 5266→618、预三卖 5880→138),一买 189、二买 19、三买 44、一卖 505、二卖 48、三卖 70,深度解析 258 只,耗时 50 分钟。
v1798/31 午修复买/卖点区间 + 无明确买点清空:①app2 scanCardHTML/cardHTML 卖出区间从「目标价×0.97~1.02」改为「目标价~目标价×1.03」(原来下限 0.97×目标价会低于现价,不合理);②app2 scanCardHTML 的 buy1 止损从「中枢下沿 ZD」改为「信号价 sp(一买低点)」,跌破一买低点才说明一买失败;③app1 实操卡片(record 列表 + 详情页)当 bpType=无明确买点/spType=无明确卖点 时,显示「暂无明确买点/卖点」,不再显示历史 buyPoint/sellPoint 区间(方案 A)。
v1788/31 午修复卖出价格区间下限:holdCardHTML 的 sell1/sell2/sell3/sell23 之前用「中枢下沿 ZD/中枢最低点 DD/离开段低点」作为卖出区间下限(sLo),但 ZD/DD/leave_low 是「卖点失效位」(用于止损),不应用于卖出区间。改为卖出区间下限 = 当前价(在该价位附近分批卖出),sAnchor 同步改为「当前价~卖点价」语义。buyLo2 保护(深度亏损反弹到成本再卖)保留。
v1778/31 午修复预三买/预三卖泛滥(v166 副作用):v166 的「中枢构造中·三买/三卖暂缓」分支在震荡市里导致预三买(530→5266)、预三卖(263→5880)信号泛滥,占全市场信号的 86%。按缠论第20课,中枢未离开时三买/三卖根本无任何阶段,改为中枢未离开时静默(不判买点、也不出预买点),同时保留 v166 的「当前价>ZG/<ZD 才算离开」严格约束。修复后信号数量回落到正常水平。
v1768/31 午观察卡片 K 线结构图关键段标记:统一 chan-engine 的 12 类信号(买/卖 × 一/二/三 × 已形成/预形成)新增 segs 关键段数组(背驰段/进入段/回调段/反弹段/离开段/回试段/回抽段/警示段,用操作级别 K 线索引,跨级别定位锚点自动映射回操作级别);app2 K 线结构图新增半透明色带高亮 + 顶部段标签 + 信号锚点三角星标,图例补充段颜色说明。
v1758/31 午36类复查·跨级别锚点精度修复:mapAnchorToLevel 从旧 normDate(8位日精度)改为操作级别时间戳精度对齐(与 mapToSub 对称),修复 5F 操作级别下二买/二卖 bars_ago 的日级误差(同一交易日内次级别定位点无法区分)。至此 36 类复查全部完成(一买/一卖分级、二买/二卖盘整背驰、三买/三卖离开中枢回拉不破、预一二三三态、最弱二买剔除、跨级别定位精度)。
v1748/31 午36类复查·一买/一卖分级标注(第27课):按第27课第8/34段「标准一买=趋势背驰(≥2中枢);1中枢盘整背驰=类一买、小级别意义不大」,一买/一卖改为分级标注——趋势背驰 standard=pullOk、reliability=高/中;盘整背驰(1中枢)standard=false、reliability=低、tags 追加「类一买/类一卖」、reason 注明「第27课:盘整背驰买点,小级别意义不大」。两者仍都输出,由用户自行筛选。
v1738/31 午分钟线改东财前复权(规则1 收尾):①前端 app1/app2 新增 fetchEmMinuteBars(东财 push2his fqt=1 前复权主源 → 腾讯 mkline 回退,带5分钟缓存),m30/m5/m1 全部改东财前复权;②后端 em_data.py _fetch_minute 分钟线统一东财前复权主源(order=[em,tx,sina]),mkline 不复权降为回退。至此规则1 三条(日线/分钟线结构分析统一前复权)全部落地,数据源规则三条全部完成。
v1728/31 午后端扫描双源映射不复权(规则2 收尾):①em_data.py 的 _fetch_daily tx() 额外拉不复权日线(web.ifzq 不带 type),merge 为 ro/rh/rl/rc 四列;②chan_engine.py 的 _df_to_bars 把 raw 列写入 bars,内核 detectBuy/Sell 输出 raw_signal_price。至此前端(app1+app2)+ 后端扫描(buy_points.json)关键价位全部输出不复权真实价,规则2 三条全部落地。
v1718/31 午app2 观察卡 chanStructure 引擎 + 数据层双源映射不复权:①chanStructure 的分型/笔端点加 rawPrice、中枢加 rawZG/rawZD/rawGG/rawDD(复权因子换算,无 raw 时降级为前复权);②analyzeLevel 支撑/压力、levelConclusion 中枢展示改用 raw;③analyzeStockRes 信号价 sig.price 优先 raw_signal_price;④数据层 fetchStock 双源(前复权+不复权),tx2csvDay 追加 raw 列、parseCSV 兼容 5/6 列旧格式 + 9/10 列新格式。至此 app1+app2 前端关键价位全部输出不复权。
v1708/31 午div 字段(买卖点高低点)映射不复权:①新增 rawOf(bars,price,anchor) 复权因子换算函数;②二买/最强买/假三买/三买/三买退化、二卖/最强卖/假三卖/三卖/三卖退化 的 div 字段(buy1/l2/zg/pull_low/leave_high/sell1/t2/zd/rebound_high/leave_low)全部映射为不复权真实价;③一买/一卖 div 仅含面积/DIF/布尔字段(非价格),不涉及映射。至此 chan-engine 内核关键价位(signal_price + 中枢 zg/zd/gg/dd + div 高低点)全部输出不复权。
v1698/31 午中枢 ZG/ZD/GG/DD 映射不复权:①chan-engine coreAnalyze 中枢 zs 输出新增 raw_zg/raw_zd/raw_gg/raw_dd(用中枢末笔终点原始bar复权因子 rc/c 整体映射);②zsBrief 同步带 raw 四字段;③app1 交易卡片买入/卖出价格区间的 ZG/ZD/GG/DD(bHi/sLo 共6处)优先用 raw 版本。单元测试 ratio=1.100 精确。
v1688/31 午数据源规则:结构前复权 + 关键价位不复权(第一阶段):①规则1 结构分析统一用前复权——日线主源 web.ifzq type=qfq 已前复权(分钟线 mkline 暂不复权,记待办);②规则2 关键价位映射不复权——chan-engine detectBuy/Sell 输出新增 raw_signal_price(anchor 原始bars索引 × 复权因子 rc/c),app1 交易卡片 5 处信号价(建议卖出价/买入区间/卖点区间/买入参考/buyLo2)优先用 raw_signal_price;app1 fetchHoldData 数据层双源拉取(前复权日线 + 不复权日线,bars 每根带 ro/rh/rl/rc);③规则3 界面标注——app1 交易卡 meta、app2 观察卡两处加「前复权分析·不复权价格」标签。单元测试:raw ratio=1.100 精确。
v1678/31 午K线结构图新增线段/笔/中枢图层显隐:①工具栏新增「中枢 / 线段 / 笔」三个图层切换按钮,可分别隐藏对应图层,全关后看到纯K线;②线段(polyline.xd)、笔(polyline.bi)、中枢框(rect.zs)三类元素加 class 标识,中枢标注文字与中枢框同属 zs 图层;③图层按钮激活态用主色高亮(.off),与「隐藏标注」按钮并列,互不影响。
v1668/31 午三买/三卖严格化:当前价必须已离开中枢:①修复前 3 买判定只过滤「顶分型+价格>ZG+bar>end_bar」,会把「中枢还在延伸/构造中」时的内部顶误当离开线段,输出假 3 买(用户截图案例:中枢[77.88-80.98] 尚在构造、现价 78.56 在中枢内,但报 3 买);②修复后加「当前价 > ZG」前置约束——当前价 ≤ ZG 时输出「中枢构造中」提示(pending_buy3 + tags[中枢构造中, 三买暂缓]),不进入 3 买判定流程;③3 卖严格对称修复(当前价 < ZD 才判 3 卖);④对齐缠论第20课原文:三买=离开中枢后第一次回试不破ZG,中枢未离开时不能形成三买。
v1658/31 午定时文案全站同步(v157/v159 旧版文案清理):①消息总览时间 v157 已改为「8:30 盘前 + 16:30 盘后」,但 app5 卡片(415)/app4 headerDateText(665) 仍残留「12:30 午间」,已删;②市场扫描 v159 已分离买点+共振(买点 4 时段、共振 11:30 每天一次),但 app5 卡片(416)/app5 巡检段(491)/app2 空态提示(4161)/app2 板块说明(4214)/app3 共振空态(692) 仍写成单一「4 时段」,已改写为「买点 + 共振」双轨并加 v159 注解。
v1648/31 午持仓卡结论区格式重构 + 补「小结论」说明:①大结论/小结论统一为「结论 + 小字依据」格式——大结论加「大结论:」标签(依据走 hc-div 小字),三条小结论加「小结论:卖出/加仓/做T」标签(依据走 hc-note 灰色小字,卖出价加粗);②说明中心新增「📌 小结论如何给出(持仓卡三条子结论)」小节,逐条写清 卖出=1F区间套建议价、加仓=缠论已形成/预形成买点或绿柱背驰、做T=按操作级别做T方向,各自的结论与依据规则;③修复版本号残留(app1 启动页/页脚/APP_VER 三处 + app5 日志标题仍停在 v162)。
v1638/31 午高级别动能延续判定补全:①judgeSupDir 补「红柱延续→bullStrong/bullWeak、绿柱延续→bearStrong/bearWeak」两条,修复 30F 红柱刚出(动能延续、无缩短无翻转)被判成 neutral→「考虑卖出」的问题,现正确判定为「考虑本级别做T」;②大结论做T主文字从「做T」改为「考虑本级别做T」,并与「小级别做T」(SUB 级别降成本)明确区分。
v1628/31 午大结论升级为「高级别动能共振」:大结论从「只看操作级别四象限」升级为「高级别动能方向 × 操作级别信号」双维共振——新增高级别动能方向判定(强转空=红转绿/红柱缩+黄白走平拐头、弱转空=红柱缩+黄白仍向上、强/弱转多对称),5F 操作看 30F、30F 看日线、日线无更高级退化。卖出优先级:引擎 sell1→马上卖出;强转空+顶背驰→最强烈卖出;弱转空→考虑卖出(逢高);转多→做T(大级别多头回调);中性→考虑卖出。做T已作为大结论主文字(state=ts,蓝色),结论说明(divText)小字展示共振依据。
v1618/31 早修复 5F 次级别映射错误:做T/二买二卖跨级别定位的 SUB 映射漏配了 1F——原来 5F 的次级别错写成 5F 自身(SUB={M5:'M5'}),导致 5F 操作级别下做T提示错误显示「小级别(5分钟)做T」,且 5F 二买/二卖跨级别定位退化为本级别。现已修正为 SUB={M5:'M1'},LV 补 M1:'1分钟'、CE_LV 补 M1:'1',5F 的次级别正确指向 1F(做T提示显示「1分钟」、5F 二买/二卖用 1F 精确定位)。
v1608/31 早说明中心大结论/小结论补全买卖对称:①大结论四象限补全为「卖出方向(红柱区)× 买入方向(绿柱区)」各 4 种组合,明确「持仓卡只看卖出象限、关注卡只看买入象限」的实操分工;②小结论从「建议卖出价」改为「建议交易价」,对称列出 1F 绿柱缩短→肯定要买入(黄白线走平/拐头向上=当前价买入、仍向下延续=略低于当前价买入)两条规则,逻辑与卖出价完全对称。
v1598/31 早买点与共振彻底分离 + 扫描日志落盘:①买点扫描与四周期共振拆成独立定时任务、独立锁(.scan.lock.buy / .scan.lock.four)、独立数据源、独立部署,共振失败不再影响买点;②四周期共振改为每天 11:30 一次(原 4 时段减为 1 次);③run.py 新增 scan.log 扫描日志落盘,后台运行/进程被杀也能追溯卡在哪一步;④状态栏「四周期共振」调度说明同步更新为「11:30 每天一次」。
v1588/30 深夜扫描锁修复 + K线图标注显隐:①修复市场扫描反复「防重叠锁跳过」根因——run.py 锁由「仅按 TTL 90分钟」改为「PID 探活 + TTL 75分钟」双保险:持锁进程崩溃未释放锁时立即探活清理,无需再等 90 分钟;②观察卡片 K线结构图新增「隐藏标注」按钮,一键隐藏/显示中枢价格区间、1/2/3类买卖点、背驰/盘整背驰等文字标注(缩放栏内切换,方便看裸K线)。
v1578/30 傍晚K线图优化 + 按钮过滤修正 + 消息面时间:①K线结构图线变细(线段4→2.2、笔2.2→1.4、中枢框2→1.5),线段颜色紫→橙与蓝笔区分,新增「+/-/重置」缩放按钮(横向滚动查看);②市场扫描按钮数量改交集口径——选级别后背驰/背驰+黄白线按钮数量随级别过滤,多选时各按钮显示同一最终交集数(共振同步);③消息面更新时间 8:30/12:30/16:30 三次改为 8:30 盘前 + 16:30 盘后两次。
v1568/30一买/一卖 pullOk 收紧:黄白线背离判定去掉旧「zsMaxDif≥0 / zsMinDif≤0(曾回拉0轴)」宽松分支,只保留「回拉比例 ≥ 0.8」。注:实测标准率变化不大(一买92%/一卖97%),说明回拉比例≥0.8 本就与面积缩小高度相关,标准率高的真正根源在「盘整背驰(1中枢)短周期普遍、均计入一买一卖」的口径,待进一步决策。
v1558/29 深夜预一买/预一卖预警公式 + 说明中心折叠:①预一买/预一卖增加「预警阶段」动力学判定——离开段 MACD 最长柱见顶(下一根缩短)后,用「前半段面积×2」估算整段与进入段面积对比:小于=背驰成立(高预警)、大于=面积未缩小(排除预买点);最长柱未见顶=普通预买点(构造中)。②说明中心「缠论引擎说明」更新到 v4.0,4.0 与 3.0 内容分别做成折叠展开(3.0 笔级中枢历史口径保留不删除)。
v1548/29 晚36 个买卖点全对称补齐:①二卖对称二买三态(已形成/预·普通/预·高预警),预二卖起点从「一卖后第一次回落低点 lAfter」开始,不再要求反弹高点已现;②三卖对称三买三态(已形成/预·普通/预·高预警),预三卖从「离开段底背驰处 lLeave」开始;③二买/二卖跨级别定位由笔端点(pts)改线段端点(segs),与「次级别走势类型=线段」口径一致,去掉「下-上-下」三笔结构简化为「第一个线段端点」。至此 3 级别×6 类×2 状态=36 信号逻辑全部对齐。
v1538/29 晚预三买起点修正(顶背驰处,非突破ZG):离开中枢的次级别走势类型必须「走完到顶背驰处」才进入预三买阶段,而非「突破ZG就预形成」。修正三买/三卖「离开段」定位:由 bar≥end_bar 改为 bar>end_bar,排除中枢延伸期间内部线段顶/底突破ZG/ZD的假突破(如 600036 延伸线段顶突破ZG 被误判为离开)。预三买阶段 = 从离开段顶背驰处(hLeave)到回试终点,与预二买从1C高点开始同构。
v1528/29 傍晚预三买对称预二买(离开中枢即进入预阶段):三买形成逻辑与二买同构,唯一区别是「回试不破ZG(不进中枢)」。预三买=从离开中枢高点(hLeave突破ZG)到回试终点的全过程:①普通=尚未进入背驰段;②高预警=进入背驰段(有中枢+柱子缩短)。三买已形成=回试不破ZG+背驰完成(或简单回试无中枢);回试破ZG=假三买预警。修复 v148 起 pending_buy3 卡死「pb已现+有中枢+未背驰」窄窗口。
v1518/29 傍晚买点视图背驰标签合并:市场扫描买点视图下,把「盘整背驰」与「趋势背驰」合并,标签统一为「背驰」和「背驰+黄白线」(原「盘整背驰」/「盘整背驰+黄白线」)。加了黄白线的比没加的严格(面积缩小 vs 面积缩小+黄白线背离,前面已说明)。共振视图保留原「盘整背驰」标签(四周期为自创口径,不改)。前端 FILTERS 增 labelBuy 字段,按视图区分标签。
v1508/29 傍晚预二买重定义(结构学+动力学,对齐第21课14段):L二买=L一买后 L-1 向上走势(1A+中枢+1C)结束于 1C 高点,随后 L-1 向下走势类型(2A+中枢+2C)构造,2C 结束点=二买。预二买=从 1C 高点到 2C 终点的全过程:①普通=尚未进入背驰段(无中枢/离开段柱子还在增长/回调低点未确认);②高预警=进入 2C 背驰段(有中枢+背驰段柱子缩短)。二买已形成=2C 背驰完成 或 简单回调(无中枢,l2已现即完成,第101课「回调极短直接往上冲」)。修复 v145 起 pending_buy2 恒为 0(旧定义卡死「l2已现+有中枢+未背驰」窄窗口)。前端「高预警」标签橙色醒目。
v1498/29 晨18 个买卖点全量扫描补齐(引擎4.0):三级×三类买卖点=18 个信号全量接入扫描。补三处遗漏:①引擎一卖缺预形成分支,新增 pending_sell1(对称 pending_buy1);②chan_engine.py 只暴露 detect_buy_signals,新增 detect_sell_signals 桥接;③pipeline run_buy_scan 原来完全不扫卖点,现在日线/30F/5F 三级对称加入 detect_sell_signals,卖点信号进 records 与 CSV。补全 pending_sell1/pending_sell2 类型映射。前端 app3 列表仅展示买点(卖点已在 buy_points.json/CSV 完整记录,供复盘),新增 isSellType/buySignals 过滤。
v1488/29 晨三卖与三买对称(次级别回试验证):三卖原来用本级别 segStatsUp 判反弹段黄白线,未做次级别验证,且离开/反弹取「最晚」(与三买取「最早」不对称)。改为与三买完全对称:①离开/反弹改取「第一次」(最早,第20课);②切次级别(subBars)用 upLegDone 判反弹走势类型是否背驰完成,无次级别才退化为本级别近似,有次级别但覆盖不足→疑似;③新增预形成三卖 pending_sell3(反弹形成中枢但未背驰)。pipeline 补 pending_sell3 类型映射。
v1478/29 晨三买退化收紧(mapToSub 精确化):v146 三买 83 只偏松,根因是 mapToSub 用天级(YYYYMMDD)对齐,30F→5F 时同一天内的离开高点/回抽低点无法区分(sPb≤sH),三买退化为「pb不破ZG即真三买」宽松模式(退化52只/63%误标标准)。修复:①mapToSub 改按操作级别时间精度对齐(分钟线精确到分钟、日线到天);②三买退化逻辑收紧,区分「无次级别→退化标准」vs「有次级别但覆盖不足→疑似」,只有次级别回试确认(形成中枢+背驰)才算标准三买。
v1468/29 晨恢复三买/三卖 segs(修复 v145 回退):v145 重扫发现三买 26→104 暴涨,排查确认三买/三卖 leaveCands/pullbacks 被回退成笔端点(pts),注释写着「笔端点近似次级别走势类型(v3.0)」——v143 的 segs(线段级)改动被覆盖丢失。恢复三买/三卖 segs(线段≈次级别走势类型,第17课),三买回落到 83。
v1458/29 晨预买点=动力学(背驰段柱子增长减弱):预买点分「买点(结构学)+预(动力学)」两面。预的判定:回调构造走势类型进入背驰段后,背驰段柱子增长开始减弱(有背驰迹象)=买点即将到来;柱子仍强劲=构不成背驰。按此去掉 v144 的 L-2 区间套精确认(太苛刻),L-1 级别判断背驰迹象即可。downLegDone/upLegDone 增 shrink(背驰段最后两根柱缩短)判定,stage 重定义:done=面积缩小(已形成)、pending=柱子缩短(预买点)、early=无中枢或柱子强劲。l2 定位改「下-上-下」第二个向下线段终点(下跌走势类型终点),无则退化简单回调;二卖对称「上-下-上」。
v1448/29 凌晨二买/二卖区间套三层整改:L二买=L一买后 L-1 向上走势+L-1 向下走势的低点(第一次回调),切 L-2 确认背驰(=L-2 一买,第21课14段「任何级别二买=次级别相应走势的一买」)。二买/二卖定位从笔端点改为线段端点(segs);新增 confirmPullback2/confirmRebound2 做 L-2 精确认、upLegDone 卖点对称。修跨级别日期对齐 bug:日线 t="2026-08-24"(带横杠) vs 分钟线 t="202604081030"(无横杠) 导致 slice(0,10) 失效,新增 normDate() 归一化 YYYYMMDD。
v1438/28 深夜趋势 GG/DD 判据 + 三买线段级离开(对齐第20课):①趋势判定 classifyTrend 对齐中枢中心定理二——趋势中枢间波动区间绝对不重叠:后GG<前DD=下跌、后DD>前GG=上涨、波动重叠=更大级别中枢(盘整),修复「只看 zg/zd」把波动重叠的高级中枢误判为趋势;②三买/三卖「次级别走势类型离开中枢」从笔端点改为线段端点(segs),coreAnalyze 新增 segs 输出,级别上提一档。
v1428/28 晚缠论引擎 4.0:中枢「3笔重叠」→「3线段重叠」:对齐第17课「中枢=至少3个连续次级别走势类型重叠」,线段≈次级别走势类型。中枢级别上提一档,买卖点数量下降约 32%(级别更准)。K线长度同步放大:日线 160→300、30F/5F 320→800(线段至少3笔,需更长数据凑齐3线段)。
v1418/28 晚二买修正(0→68):二买成立门槛改为「回调低点 l2 不破一买」(第21课13段+第53课16段),不再强制「回调段先形成中枢+背驰」(这正是 v137~v140 二买连续 0 的根因)。最弱二买(跌破一买)按用户要求继续剔除。
v1408/28 傍晚5F K线图日期缺失 + 日期轴标签裁剪修复:structure_summary 默认 max_bars 90→1200(5F 覆盖约 6.7 个交易日,不再只显示到 8-2);SVG 日期轴首/末标签被边界裁掉("08-28"显示成"08-2"),改为首标签 start/中标签 middle/末标签 end。
v1398/28 傍晚中枢延伸超6笔(seg≥9)升级过滤:第33/32课——中枢延伸超过6笔即升级为更大级别中枢。模式1(中枢买卖点)里延伸超6笔的中枢不再作为本级别中枢参与判定:5F升级→30F、30F升级→日线、日线升级→周线(无周线直接忽略);模式2(同级别分解)无影响。
v1388/28 午后一买/一卖 pullOk 阈值收紧:对齐第24课「黄白线回拉 0 轴」——回拉比例 0.6→0.8、DIF 阈值 ±0.02→0(要求真正回拉到 0 轴)。收紧后疑似信号从 1428 降至 79,大量「未回拉 0 轴」的假背驰被正确剔除。
v1378/28引擎 pullOk 判定对齐原文「黄白线回拉 0 轴」(第24课):原 pullOk 只用「DIF 低点抬高(不创新低)」判背离,缺少原文「中枢(B段)把黄白线回拉到 0 轴附近」的结构条件。新增:标准背驰 = ①离开段 DIF 低点抬高 ②中枢构建期间黄白线曾回拉 0 轴(回拉比例≥60% 或 DIF 曾接近/穿过 0 轴)。买点/卖点对称修改。修复后「盘整背驰+黄白线」只保留真正黄白线回拉 0 轴的标准背驰,数量将大幅下降(更准)。
v1368/28市场扫描「盘整背驰」按钮改为超集逻辑:盘整背驰=standard∈{0,1}(任何背离,超集)、盘整背驰+黄白线=standard===1(子集标准买点),修复「条件更苛刻的反而更多」的反直觉现象(18 vs 187 实为互斥细分类别,改为包含关系后 205≥187)。
v1358/28市场扫描「盘整背驰」过滤 bug 修复:预形成信号 standard=false 误匹配 standard===0,导致预形成 tab 下点「盘整背驰」按钮过滤失效(17 只还是 17 只)。加 !isPending(s) 前置条件,只匹配已形成信号。
v1348/28预形成三买/二买判定收紧(删「未回抽即预形成」分支):三买预形成 1173 只爆炸的根因是「离开中枢(突破ZG)后 3 根内回落、尚未出现回抽低点」就报预形成,太松。按第20课三买须「次级别走势离开+次级别回试不破ZG」——回试还没出现低点就谈不上「三买临近」。删除 pending_buy3/pending_buy2 的「未回抽即预形成」分支,只保留「回抽/回调已形成次级别中枢但背驰未确认」的严格预形成(区间套 stage=pending)。同时修复 pending_buy2 跨级别 barsAgo 负数 bug。
v1338/28市场扫描「预形成 0 只」修复:app3 用 s.pending===true 区分预形成/已形成,但 pipeline.py 输出 signals 只用 type 前缀 pending_ 区分、无 pending 字段,导致预形成被过滤光。加 isPending(s) 兼容字段与 type 前缀,4 处替换。
v1328/28关键词标红补回「动能衰竭」:v131 误把「动能衰竭」从标红列表去掉,本版补回——「盘整背驰 / 背驰 / 动能衰竭」三个关键判定词均红色加粗(.hc-kw)。「未触发背驰/盘整背驰」否定句仍不标红。
v1318/28辅助判断卡大结论 + 建议卖出价对齐逻辑树 + 说明中心更新:①大结论改为操作级别四象限(背驰×单MACD柱缩短):背驰+柱缩=马上卖出 / 背驰+柱未缩=考虑卖出观察高级别 / 未背驰+柱缩=考虑卖出+小级别做T / 未背驰+柱未缩=继续持有;买与卖对称。②建议卖出价来源 1F:1F 红柱缩短→肯定卖出,黄白线走平/拐头=建议价=当前价,黄白线仍向上=建议价略高于当前价,两种情况最终都卖出。③说明中心「MACD 辅助判断」小节同步更新(四象限 + 建议卖出价 1F + 单块MACD前后两根柱子)。
v1308/28修bug:divText 中 HTML 标签残留(v129 部署未生效修复):v129 在 liveAnalyze 的 divText 里加了 <span class="hc-kw">动能衰竭</span> 想做关键词加粗,但 divText 是用 esc() 拼接进 .hc-div 的(textContent 等价),HTML 标签当字符串显示出来了。修正:去掉 divText 里的 span,纯文本输出;关键词加粗红字只在 macdAuxHtml 里生效(那里是 innerHTML 拼接)。
v1298/28辅助判断卡展示优化:级别描述统一 + 关键词红色加粗:①级别描述统一——MACD 动能衰竭提示中的「M5/M30」改为人类可读「5F/30F/日线/1F」;②关键词「盘整背驰」「背驰」「动能衰竭」三个关键判定词用红色加粗(.hc-kw 样式,color:#d4380d;font-weight:700),便于一眼定位哪些级别已触发背驰/动能衰竭。
v1288/28单块MACD改为「前后两根柱子长度」判据(对齐辅助判断口径):单块MACD不是标准缠论,只看【前后两根柱子长度】判断本级别动能——红柱缩短=上涨动能衰减、绿柱缩短=下跌动能衰减,配合黄白线分类(0轴对侧=趋势已反转最重 / DIF下穿上穿DEA=转折确认 / DIF拐头=转折初现 / 黄白线仍同向=仅动能减弱)。废弃 v127 的「本段峰值×0.8」误判。区间套思路:大级别看面积(背驰/盘整背驰),逐级下看单柱缩短,最终 1F 红柱缩短(配合黄白线)= 卖出时机。
v1278/28辅助判断卡动能衰竭判定彻底重写(覆盖红柱缩短+0轴对侧场景):此前判定只在「红柱缩短>45%」且「DIF/DEA 双拐头」才报动能衰竭,导致 5F 涨势红柱缩短但 DIF/DEA 已跌穿 0 轴时漏报(继续持有是错的)。本次修复:①柱缩短阈值 0.55→0.8(更灵敏,覆盖明显缩短但未达一半);②红柱在 0 轴下方 = 涨势已结束/被反转(反弹末段)直接报 warn;③回退文案修正:红柱在 0 轴下方/绿柱在 0 轴上方时不再笼统说"动能延续";④liveAnalyze 引入 MACD 衰竭信号作为「准备卖出」判定依据——缠论引擎未出顶背驰、但本级别 MACD 红柱缩短+0轴对侧时也判准备卖出。
v1268/28辅助判断卡现价改走实时行情(消除延迟):此前现价取自日线K线接口的 qt 快照,而日线数据被 5 分钟缓存,导致现价最长延迟 5 分钟。现新增 fetchQuote() 走 qt.gtimg.cn/q= 实时行情接口(不缓存,实时 tick),现价优先用实时值,失败才退化到日线快照。
v1258/28卖点改为「建议」表述 + 辅助判断卡大结论后给出当下卖出价:①待交易卡片卖出区间由「卖出区间」改为「卖出建议 …仅供参考」,强调卖点需判断顶背驰、走势当下完成,仅为建议;②辅助判断卡大结论(继续持有/准备卖出/马上卖出)后新增「卖出 · 当下建议卖出价」——有顶背驰时=顶背驰信号价,无顶背驰时=当前价。
v1248/28修bug:卖出区间最低价不低于买点最低价/当前价:用户发现卖一区间 [58.18, 61.18] 的最低价 58.18(中枢ZD)低于买点最低价 60.68,区间跨买卖点会自相矛盾(先低价卖出后高价买入永远亏)。在 app1 卖点区间计算后加保护:sLo = max(ZD, 当前价, 买点最低价),确保卖出区间不与买点区间冲突;并加 sLo>=sHi 异常保护。
v1238/28预买点判定升级为「区间套」定位(第27课):按「精确大转折点寻找程序定理」——大级别转折点通过不同级别背驰段的逐级收缩确定。downLegDone 增加 stage 三态(done=背驰完成 / pending=形成中枢但背驰未确认 / early=未形成中枢),pending_buy2/3 改为「次级别背驰段进行中(形成中枢但面积未缩小)」判定,即区间套下的预买点。第27课:二、三类买点都由盘整背驰构成。
v1228/28二买/三买判定对齐原文(次级别走势类型构造完成):按第20/21课原文重写——二买/三买都是回调/回抽形成的,判断标准是「次级别下降走势类型是否构造完成」:1中枢=盘整背驰,≥2中枢=趋势背驰;废弃自创的「回调力度衰竭/尾部绿柱缩短」判定。新增 downLegDone 函数对回调段做中枢结构+背驰判定;三买有次级别时按日期对齐定位回抽段,无次级别退化「回抽低点不破ZG即真三买」。回归 26 通过。
v1218/28凌晨巡检:版本号强制同步 + K线端点全面恢复:①修复 sw.js 缓存版本(v110)、version.json(v120)、app1 APP_VER('2026.08.27.v110') 三处版本号不一致,全部同步到 v2026.08.28.v121;②实测腾讯 K线主源(web.ifzq kline/kline)、备源(ifzq fqkline/get)、分钟线(mkline)、实时行情(qt.gtimg.cn) 全部 200 OK + CORS:*,此前 501 反爬的备源已恢复;③验证 app1/app2/app4 日线获取均走 fetchKlineDaily 多源回退链,无裸直连;④语法自检(chan-engine.js/scan_server.js/app内联脚本/Python)全部通过。
v1208/28辅助判断卡·颜色翻转多级别联动(修正方向):用户指出 v117 单看 1F 颜色翻转就报「弱转强/强转弱」是错的——单独翻转仅是局部翻转、方向意义不强。改为:多级别共振判定——本级别翻转 + 上级别动能衰竭配合时才是真正的反转确认。本级别红→绿(转弱)须配合上级别动能衰竭(红柱缩短/warn),本级别绿→红(转强)须配合上级别动能衰竭(绿柱缩短/ok);其他情况为「局部翻转」提示观察上级别是否衰竭。所有级别覆盖(日线/30F/5F/1F)。
v1198/28市场扫描·预形成/已形成分类 + 说明中心价格区间:①买点视图新增「预形成/已形成」两按钮切换(默认已形成),预形成下复用 1/2/3买、级别、龙头、盘整背驰等筛选;引擎新增 pending_buy1/2/3 预形成信号(结构到位、背驰未确认)。②说明中心「动力学与新鲜度」补充各级别已形成买点的价格浮动区间(日线0~+5%、30F 0~+3%、5F 0~+2%,从 0 起无负区间,正确买点后应上涨)。
v1188/28市场扫描·买点新鲜度过滤(时间+价格双维度):修复「形成很久、已无交易价值」的旧买点仍被报出的问题。①时间维度 FRESH_BARS 收紧——D:20→10、30F:60→30、5F:150→90(超过即不报);②空间维度 新增 PRICE_BAND 价格浮动区间——买点当前价须在信号价「-3%回踩容忍 ~ +5%(日线)/+3%(30F)/+2%(5F)上限」内,涨过头/跌过头即过滤。典型如新华保险日线一买@57.36(当前60.59偏离5.63%),按新口径正确过滤。
v1178/28辅助判断卡·MACD「颜色翻转」判定升级(覆盖日线/30F/5F/1F):原描述只覆盖「前后两块同色面积缩小(背驰)」与「同一块柱缩短」两类,现新增「颜色翻转(绿转红/红转绿)」为显式强信号——这是最直接的动能反转,1F 上尤其能看到细节。维度②动能按「翻转后同色柱长 × 黄白线0轴位置」分四层:①≥3根+黄白线在0轴异侧=反转确认(强信号) ②≥3根=反转初具 ③2根=反转启动 ④1根=初现待确认。回退文案也补「动能已翻转/刚翻转」提示,避免遗漏刚发生的转折。
v1168/28市场扫描数据全量重扫(新引擎 v115 口径):用对齐缠师原文的新引擎(中枢3笔重叠 / 趋势≥2中枢 / 一买盘整型+趋势型 / 二买三买「第一次」原则)全市场重扫,生成 945 条信号(一买484 二买181 三买280)+ 270 只深度解析结构,覆盖 buy_points.json。此前市场扫描数据为旧引擎误判(如新华保险旧版「最强买点」),现已全部以新口径重新判定。
v1158/28持仓持股卡改名辅助判断卡 + 新增1F级别:①「持仓/持股卡」改名「辅助判断卡」;②MACD 辅助判断新增 1F(m1)级别,与日线/30F/5F 同格式(背驰/盘整背驰 + 单块MACD 两行),操作级别高亮逻辑不变。
v1148/28观察卡片·三级结构参考内嵌结构图:三级结构参考每个级别(日线/30F/5F)下方新增可折叠「K线结构图」(renderLevelSVG,与下方三级别结构图同源,带笔/中枢/背驰/买卖点标记),默认折叠,点击展开对照;下方「三级别K线结构图」保持原样不动。
v1138/28二买/三买「第一次」口径全站统一核查:补全各模块文案——说明中心二买/三买定义补「第一次次级别回调 / 第一次回抽」;app4 的 SIG_NAME 买一/卖一标签由「底背驰/顶背驰」改为「背驰」(v111 遗漏);app2 二买 desc/预判说明、app3 最强买点说明补「第一次」;report.py note 文案补「第一次」。
v1128/27二买/三买「第一次」原则修复:按第21课原文修正三买判定——「回抽」=离开中枢后的「一次」反向走势,故 leaveCands 过滤由「中枢起始之后」收紧为「中枢形成结束之后(p.bar≥end_bar)」,且离开高点(hLeave)与回抽低点(pb)由「取最新」改为「取最早」,确保二买=一买后第一次次级别回调、三买=离开中枢后第一次回抽不触及中枢;引擎顶部注释补买卖点口径;回归 26 通过。
v1118/27缠论引擎口径对齐缠师原文(中枢/趋势/一买):①中枢——按第17课原文改为「下-上-下/上-下-上 3 笔重叠」(原 chan.py 的「2 反向笔」口径漏判回升型中枢,导致观察卡片「中枢:0」);②趋势——强调「≥2 个依次同向中枢」而非恰好 2 个(3 中枢也是趋势,classifyTrend 严格按相邻中枢方向一致判定);③一买/一卖——纠正解读版「≥2 中枢才有一买」错误,按第17/53课原文放宽为「盘整型1中枢+趋势型≥2中枢」双路径(盘整型盘整背驰也算一买);④说明中心「第一类买点」说明同步更新(盘整型/趋势型口径);⑤全链路口径同步(chan-engine.js 前端+后端共用内核 / app1/app2/chan_resonance/report.py / test_chan_engine.py 重写为可运行回归 26 通过);⑥缓存缠师新浪博客 108 课原文到本地 .workbuddy/chan_original/108/,「缠论引擎·原文对照进化」自动化任务改只读本地原文;⑦消息面手动补跑 12:30/16:30 漏触发任务(WorkBuddy 平台调度延迟未恢复)。
v1108/27历史模块合并 + 观察卡按钮修复 + 删概览:①历史模块合并——分析历史+买卖历史合并为一个「历史」模块,按 全部/按周/按月/按股票 分组,卡片可折叠展开;②修复观察卡片「归档」「删除」明文按钮(根因:按钮 inline onclick 引用 IIFE 内函数导致全局找不到,改为 addEventListener 绑定);③综合窗口删除「各模块数据概览」跳转网格,保留导出/导入/迁移/清空。
v1098/27持仓卡三处文案改造:①加仓/做T 拆两行;②MACD 买点提醒中的代号 M30/M5/D 翻译成「30F/5F/日线」可读;③MACD 两维度(背驰/动能)未触发时回退显示「当前MACD状态」(柱子根数/0轴位置/黄白线方向),不再显示「无」;④卡片每行加冒号、内容开头去掉重复「背驰/盘整背驰」,改为「出现盘整背驰」或「动能转折」等分类标签。
v1088/27观察卡片加归档/删除明文按钮:实操参考的批量观察卡片标题处加「归档」「删除」两个明文按钮(替代右滑手势——手机上右滑没生效),归档后归档到对应历史(分析页→分析历史/买卖参考页→买卖历史)。
v1078/27消息总览:下次时间动态计算 + 消息按更新时间倒序:①「下次更新」按 times 数组和当前时间动态计算(解决 version.json 陈旧导致仍显示已过期时间的问题,如 17:42 显示「明天 08:30」);②主消息列表按 id 时间戳倒序排列(最近的在最上面,原来是正序);同时排查发现 8/27 12:30/16:30 消息定时任务未执行(平台调度问题),建议用「手动更新」按钮拉取最新内容。
v1068/27工作台标题加日期小字:「缠论总工作台」标题旁新增当天日期小字(如 2026/8/27,动态生成)。
v1058/27持仓/持股卡格式重构:卡片分层为「顶部股票信息 → 结论区(大结论+依据+小结论做T/加仓)→ 分析区(日线/30F/5F 三级,每级分背驰/盘整背驰+单块MACD两行)」,操作级别对应的级别块底部高亮+「操作级别」标签;删除 emoji 图标和箭头;全卡颜色/字体统一(仅大结论三态色与操作级别高亮保留)。
v1048/27最强买点旧数据自动迁移:实操管理初始化时自动迁移最强买点旧数据——买入参考含「最强买点」的卡片「其他买点」改为「最强买点」,操作级别按信号级别取次级别(日线→30F、30F→5F、5F→5F),focusLevel 同步;幂等安全,不影响非最强买点卡片。
v1038/27说明中心固化最强买点操作级别口径:说明中心「最强买点」定义补充操作级别规则——日线最强买点→操作级别30F、30F最强买点→5F、5F最强买点→1F(未布置1F图模糊处理为5F),与 v102 引擎口径一致。
v1028/27最强买点操作级别统一取次级别:最强买点=二买+三买重合、定位在次级别,故操作级别统一取次级别(日线最强买点→操作级别30F、30F最强买点→操作级别5F、5F最强买点→操作级别1F缺失退化5F);修复市场扫描(app3)与实操参考(app2)对最强买点操作级别口径不一致的问题(v88 曾只改 app3 未改 app2)。
v1018/27最强买点级别归属 + 背驰文案精确化:市场扫描「最强买点(二三买重合)」在实操参考研判依据新增「级别归属」说明——同级别二买+三买重合、买卖点定位在次级别(如30F最强买点=30F二买+30F三买重合、5F回调定位);实操管理买点下拉「其他买点」改为「最强买点」;背驰文案「黄白线回拉0轴」精确化为「黄白线背离(DIF未创新低/新高)」,贴合原文第24课口径(面积缩小=核心判据、黄白线背离=辅助确认)。
v1008/27MACD辅助判断重构为「背驰」+「动能」两维度:明确区分缠论两大概念——①背驰/盘整背驰=前后两块同色柱面积对比+黄白线回抽0轴;②红转绿(强转弱)/绿转红(弱转强)=单一动能判断非背驰。持仓卡日线/30F/5F 各分两行展示;结论按操作级别给(操作级别背驰→卖出/清仓,无背驰但次级别有背驰或MACD缩短→做T短差提示);修复短插曲段误判背驰(两段须≥5根且已明显回落)。
v998/27MACD盘整背驰误判修复 + 更新日志补全:修复盘整背驰初判把「刚转红/转绿的一两根柱」误当一段走势去和前段比的 bug(要求当前段已见顶回落且柱数≥3 才参与对比),去掉「切次级别看单块柱」冗余文案只描述当前状态;补回丢失的 v94/v95/v96 更新日志;凌晨巡检新增第 12 项「更新日志完整性检查」防遗漏。
v988/27扫描时间文案同步:同步全站市场扫描更新时段文案到新时点(10:00 早盘 · 11:30 盘中 · 14:00 尾盘 · 15:30 收盘),覆盖 app2 空态提示/板块说明、app3 共振空态、app5 说明中心两处。
v978/27扫描提速 + 持仓卡买入提醒:市场扫描后端日线数据源从已 501 反爬的 fqkline 切换到 kline 端点(与前端同源,日线拉取从 6-7 秒降到约 200ms,全市场扫描预计从 72 分钟压缩到个位数分钟);持仓/持股卡新增「买入提醒」一行——结合区间套,缠论买点或 MACD 绿柱动能衰竭时给出绿色买入提示,与原有的卖出三态结论形成买卖双向提醒。
v968/27收盘定稿改 15:30 + 区间套说明独立小节:市场扫描收盘定稿从 15:00 改到 15:30(与 14:00 尾盘间隔 90 分钟,消除扫描重叠隐患);说明中心「MACD 辅助判断」卡片标题明确标注「区间套」,并把区间套(自相似递归)提为独立小节说明。
v958/27市场扫描4时点 + MACD区间套盘整背驰初判:MACD 辅助判断新增「盘整背驰初判」——比较前后两段同向柱峰值,后段不再升高即判盘整背驰;市场扫描定时更新从 3 时点调整为 4 时点(10:00/11:30/14:00/15:00),后端 run.py 加防重叠文件锁防并发封禁。
v948/27MACD辅助加黄白线分层 + 说明中心:MACD 辅助判断结合 DIF/DEA 黄白线方向分三档(红柱缩短但黄白线向上=温和 / dif拐头=中 / 双拐头=强警告),1F 尤其可靠;说明中心新增「MACD辅助判断·背驰与盘整背驰」说明卡。
v938/27MACD辅助覆盖各级别:持仓/持股卡的 MACD 辅助判断从仅 5F 扩展到日线/30F/5F 三个级别分别显示(模式2同级别分解下各级别盘整背驰都是做T关键)。
v928/27持仓卡 MACD 辅助判断:持仓/持股卡实时分析新增「MACD辅助」一行——5F 红柱较近期高点明显缩短提示上涨动能衰竭(警惕冲高回落,可减仓/倒T),绿柱缩短提示下跌动能衰竭(可持有),补充缠论背驰之外的动能观察。
v918/27凌晨巡检:清理 app4 死代码:删除 app4.html 中未被引用的 fetchKlineDailyUrl() 函数(v90 巡检已识别),保持代码库整洁;K线端点实测主源/分钟线/实时均 200 OK,备源持续 501 WAF反爬;所有 APP 引擎口径、止损规则、数据通道一致。
v908/27总览级别计数修复:实操管理总览「日线/30F/5F/1F」级别数量徽章补上手动归档过滤,避免已归档卡片仍计数导致「显示有数但无卡片」。
v898/27买点级别/筛选数量同步:市场扫描切换买点类型时同步刷新级别筛选与筛选器数量徽章,并重置残留筛选,修复「级别显示有数但列表无卡片」。
v888/27最强买点级别 + 待操作同步修复:最强买点(二三买重合)进入实操参考不再降级到次级别,保持信号级别;实操参考「清空待操作」后市场扫描端按钮同步撤销(变回进入待操作)。
v878/26市场总览加更新时间:市场温度/最强板块/资金/异动/龙虎榜/驱动因素/建议方向各卡片底部加「更新于 HH:mm」小字。
v868/26消息时间 + 观察卡归档/删除修复:消息总览每条消息/政策卡片底部加「更新于 XXXX-XX-XX HH:mm」小字;修复实操参考观察卡片右滑归档/删除唤不出按钮的层叠问题。
v858/26买卖点精简 + 红绿配色:待交易卡/归档卡的买点、卖点只显示买卖点区间(去掉背驰解释),买点红色、卖点绿色。
v848/26待交易卡止损简化:待交易卡/归档卡的止损只显示核心止损位,去掉括号里的解释文字(详情页保留完整说明)。
v838/26引擎文案统一 v3.0:buy_points.json 备注文案 v2→v3.0(源头 report.py 同步修正);记忆文件 MEMORY.md 整理去重并纳入凌晨巡检维护。
v828/26复盘卡同步个股+做T:个股复盘卡顶部自动同步个股名称/代码、净持仓、做T笔数与累计盈亏,与 5 个手动复盘模块分开。
v818/26实操卡持仓汇总:买入/卖出/做T后自动计算当前总持仓(净股数)与持仓金额(市值优先、无现价退成本口径),已清仓显示本笔盈亏。
v808/26成交额精度修复:指数三日对比成交额从长串小数改为「8572.23亿 / 1.81万亿」两位小数。
v798/26指数今日列修复:修复日期键格式不匹配导致「今日」列全 0.00%/undefin。
v788/26按钮露出修复:修复三卡折叠组底部编辑/归档/删除按钮露出的样式问题。
v778/26实时分析报错修复:修复持仓/持股卡实时分析因 fmtNow 函数未定义而报错。
v768/26做T依据自动填充:做T弹窗的「依据」字段改为缠论引擎自动填充(次级别买点→正T、卖点→倒T),无需再输代码。
v748/26个股复盘卡5项 + 盈亏定色:复盘内容增为5项(操作总结/失误点/经验收获/缠论判断对错反思/本次操作盈亏);盈利→浅红、亏损→浅绿。
v728/26实时分析 + 做T引擎判断:实操卡新增「实时分析」生成持仓/持股卡(缠论引擎按操作级别给出继续持有/准备卖出/马上卖出三态结论,三色区分);做T改为缠论引擎判断方向(次级别买点→正T、卖点→倒T),不再自由做。
v708/26实操卡新增做T记录:持仓期间按缠论次级别买卖点做T降成本——正T(先买后卖)/倒T(先卖后买),记盈亏并联动摊低持仓成本,硬止损线同步下移。
v688/26实操卡片微调:修复编辑/归档/删除按钮露出;实操卡底部加「成本-2% 硬止损」(基于买入加权均价 × 0.98);执行情况拆双——买入情况后一个执行按钮、卖出情况后一个执行按钮。
v678/26更新日志补全:v61~v66 全部补录。
v668/26实操管理大改造:档案改名「实操档案」;交易卡片三卡化(待交易卡 + 实操卡 + 个股复盘卡,折叠组、三卡异色、右滑绑定归档);实操卡买卖分批(+ 按钮)+ 完成本次交易生成复盘卡;复盘改日/周/月复盘(加号三选项 + 挂总览顶部)。
v658/26观察卡片排版改造:缠论判定 / 交易方案左对齐;三级结构参考四行化(笔/线段|中枢|背驰|支撑/压力,日线/30F/5F 全做);操作结论分行。
v648/26说明中心补买点/共振来源:市场扫描「买点模块(腾讯主源)/ 共振模块(东财主源)」数据来源与回退链。
v638/26说明中心补板块来源全景:最强/弱势板块、资金、异动、缠中说禅板块等 6 类功能的数据来源矩阵(同花顺/东财/腾讯 + 备选)。
v628/26选股口径 + 同花顺板块 + 更新时段:选股统一主板(60/00)+非ST(补板块龙头过滤);市场总览「最强板块」名称与同花顺一致;缠中说禅板块更新改为交易日 9:25~15:05 每 30 分钟。
v618/26二买操作级别降级 + 更新日志:选「日线二买」操作级别显示为 30F(次级别),30F二买→5F;修复板块卡片点击不展开 bug;综合窗新增「更新日志」。
v608/26板块→强势股→观察卡片:缠中说禅板块卡片点击展开该板块 3 只强势股(联动买点标签),勾选生成观察卡片;修复移动端点击丢失 bug。
v598/26剔除最弱二买 + 新增最强买点:最弱二买(回调跌破一买)执行时剔除;新增「最强买点」= 二买+三买重合(回调低点不破中枢上沿 ZG)。
v588/26二买/二卖级别错位修复:二买定位点改为次级别——「日线二买」= 日线一买后的 30F 回调买点(非日线自身分型回调),级别归属记操作级别、定位点在次级别。
v578/26缠论引擎按原文三处修复:二买 shrink 数据范围 bug、二买严格在一买之后、MACD 柱面积×2 提前判背驰(第24课原文)。
v568/26数据源隔离 + 引擎规则审查:后端买点/共振数据源隔离;大盘技术走势文案、底部遮挡、指数三日对比位置调整;缠论引擎买卖点规则交叉审查。
v558/26K 线 URL 格式修复:腾讯 K 线参数格式 2 逗号→3 逗号;日期显示一致性(实时数据用当天日期)。
v548/26指数数据源隔离:消息总览指数数据改用东财主源(与市场扫描腾讯主源分离);整体刷新仅刷版本号、5 APP 独立刷新。
v538/26市场总览日期徽章:各数据区块标题加日期徽章(蓝色=实时当天、黄色=盘后/快照日期)。
v528/26K 线反爬根治 + 市场总览实时化:K 线缓存+节流+退避;板块/资金/异动/龙虎榜全面实时拉取。
v518/26K 线多源回退:主源→备源自动回退 + 缓存节流退避(反爬防护)。
v508/25交易卡片结构价格区间:持仓诊断买卖点改为缠论结构价格区间(非系数)+ 背驰描述。
v498/25成本-2% 硬止损:双止损并行取更紧(结构止损 + 成本-2% 硬止损)+ K 线多源回退加固。
v488/25K 线链路全面修复:腾讯 fqkline 501 反爬 → web.ifzq kline(6 大问题根因消除)。
v478/25删除云端同步入口 + AI 识别录入修复。
v468/25数据管理汇总 + 残留清理 + 巡检升级 + 股票清单完整性修复。
v448/25三项迭代:数据管理 / 说明中心 / 每日巡检。
v1-v43早期工作台基础搭建:五大 APP 架构(实操管理 / 实操参考 / 市场扫描 / 消息总览 / 综合窗口)、统一缠论引擎(chan.py 全量移植)、localStorage 本地持久化、PWA 可安装、红黑名单 / 计划跟踪 / 归档。
注:v45、v69、v71、v73、v75 为迭代中的版本号跳号(v45 内容并入 v46;其余未独立发布),非日志遗漏。