# ENGINEERING_SPEC — ECR-008 chart_tv 拆分 **ECR:** ECR-008 **Level:** L3 · 行为冻结 **Date:** 2026-08-07 ## Goal 物理拆分主站 Lightweight Charts 绘制单体,不改变可见行为。 ## Module map | File | Responsibility | |------|----------------| | `chart_tv_lifecycle.js` | `disposeTradingViewCharts`;cleanup 数组与 chart.remove | | `chart_tv_shell.js` | `chartTvBuildShell(ctx)`:容器、createChart、K 线主系列 | | `chart_tv_indicators.js` | `chartTvRenderIndicators(ctx)`:成交量 / ATR / ChanMACD | | `chart_tv_chan.js` | `chartTvRenderChan(ctx)`:笔 / 线段 / 中枢(含未完成与 BI) | | `chart_tv_overlays.js` | `chartTvRenderOverlays(ctx)`:结构区、威科夫、BSP/分型、布林等 | | `chart_tv_finalize.js` | `chartTvFinalize(ctx)`:时间轴同步、bindSync、视图恢复、tooltip | | `chart_tv.js` | `initTradingView`:组 ctx → 顺序调用上述步骤 | ## Context object `ctx` 至少携带:`symbol`、`timeframe`、`symbolConfig`、周期开关、`candles`、各 chart/container、`showMacd`。全局 `currentData` / `tvWidget` 仍按现网约定使用。 ## HTML load order `lifecycle → shell → indicators → chan → overlays → finalize → chart_tv.js → chart_sync.js → …` ## Tests 1. `node --check` 各新文件 + 门面 2. 人工:首屏、自动刷新、威科夫开关、三周期笔段中枢、Cycle Summary ## Out of scope Live 验证批跑、威科夫算法调参、analyze JSON 快照、`chart_sync` 大改。