拆解|AI 是怎么「看见」图表的:CDP 桥接与 84 工具的分层设计
拆解AI 是怎么「看见」图表的CDP 桥接与 84 工具的分层设计【免费下载链接】tradingview-mcpAI-assisted TradingView chart analysis — connect Claude Code to your TradingView Desktop for personal workflow automation项目地址: https://gitcode.com/GitHub_Trending/tra/tradingview-mcp大模型最擅长处理文字与代码却对「图表」这种状态密集、信息藏在像素与内部对象模型里的专业软件几乎无计可施。当交易员想用 Claude 帮自己看一眼图上的支撑阻力位、改一段 Pine 脚本、复盘一段 K 线回放时摆在面前的第一道墙是AI 根本没有「手」和「眼」去操作那个运行在本地、渲染在 Canvas 上的 TradingView Desktop。tradingview-mcp 给出的答案是——不给 AI 一个「API」而是给 AI 一副「眼睛和双手」通过 Chrome DevTools Protocol 直接接管本地 TradingView 的页面上下文再以 84 个 MCP 工具把这些底层能力组织成一套分层清晰的操作语义。本文从源码出发拆解这条「AI 看见图表」的完整链路CDP 桥接的原理、84 个工具的分层逻辑以及上下文压缩与流式监控背后的 Token 成本控制。一、桥接为什么选 CDP而不是去连 TradingView 的服务器TradingView Desktop 本质是一个 Electron 应用而 Electron 的内核是 Chromium。任何 Chromium 应用都内置了 Chrome DevTools Protocol——这是谷歌为调试器设计的标准协议VS Code、Slack、Discord 用的都是同一套机制。项目在 README.md 中明确强调了这一点它不连接 TradingView 服务器、不修改任何 TradingView 文件、不拦截网络流量只与本机运行的 Desktop 实例通信。关键在于调试端口默认是关闭的必须由用户显式用标准 Chromium 参数打开。三个平台的启动脚本都做了同一件事例如 scripts/launch_tv_debug_linux.sh 会依次探测/opt/TradingView、snap、flatpak 等安装位置然后以--remote-debugging-port9222拉起应用并轮询http://localhost:9222/json/version确认 CDP 就绪。这一步「用户主动开窗」的设计正是整个方案安全性的根基。连接层的实现集中在 src/connection.js几个细节值得注意目标发现通过fetch(http://127.0.0.1:9222/json/list)拿到所有可调试页面优先匹配 URL 含tradingview.com/chart的页面目标findChartTarget。这里刻意用127.0.0.1而不是localhost——注释解释得很清楚部分 Windows 机器上localhost会先解析到::1而 Electron 的调试端口只监听 IPv4。重连与退避连接失败按指数退避重试500ms 起步、最长 30s、最多 5 次reconnectTo()支持切换到指定 tab 的 target保证tab_switch之后的读取、截图跟随新激活的标签页。表达式求值一切能力最终收敛为Runtime.evaluate在页面上下文中执行 JavaScript。项目把探测到的内部 API 路径集中维护在KNOWN_PATHS常量里例如window.TradingViewApi._activeChartWidgetWV.value()、window.TradingView.bottomWidgetBar、window.TradingViewApi._alertService、window.TradingViewApi._replayApi等且每次使用前都会用typeof探针验证路径仍存在verifyAndReturn。这正是 README 警示的「undocumented internal API可能随版本变动而失效」的直接体现。桥接之后是状态同步的工程细节。切品种、换周期这类操作不是发一条指令就结束图表需要时间重新加载数据。项目为此实现了两层等待waitForChartReady轮询 loading spinner 消失、symbol 匹配、bar 数量连续两次稳定和waitForChartRender截图前要求 symbol/resolution/canvas 尺寸组合连续三次不变防止切图后截到旧帧。参见 src/wait.js 与 src/core/capture.js。二、84 个工具的分层读图、操控、Pine、告警桥接只是「管道」AI 真正要用的是管道上的「阀门」。打开 src/server.js 可以看到工具注册的完整图谱14 个模块依次挂载到 MCP Server 上health、chart、pine、data、capture、drawing、alert、batch、replay、indicator、watchlist、ui、pane、tab——共 84 个工具。README 的架构节给出了简洁的链路Claude Code ←→ MCP Server (stdio) ←→ CDP (localhost:9222) ←→ TradingView Desktop (Electron)。这 84 个工具可以按职责划成四层每一层解决一类问题第一层读图——把图表翻译成 AI 能理解的文字。这是「看见」的核心。chart_get_state负责拿到品种、周期和全部指标的 entity ID约 500Bdata_get_study_values读取所有可见指标的当前数值quote_get取实时报价真正巧妙的是data_get_pine_lines / data_get_pine_labels / data_get_pine_tables / data_get_pine_boxes这四件套——它们能读取自定义 Pine 指标用line.new()、label.new()、table.new()、box.new()画出的图形对象。这在技术上并不平凡普通的指标读取工具看不到这些图形因为它们的入口藏在指标内部对象study._graphics._primitivesCollection之下这条路径被直接写进了 CLAUDE.md 的架构说明。于是 AI 能回答「图上有哪些关键价位」「那个 Profiler 表格里写的什么」这类真正依赖视觉内容的问题。第二层操控——给 AI 一双手。chart_set_symbol / chart_set_timeframe / chart_set_type / chart_scroll_to_date负责导航draw_shape支持画水平线、趋势线、矩形、文本pane_*系列管理多图表网格2x2、2h、4、6、8 等布局tab_*管理标签页ui_*系列甚至能点击按钮、敲键盘、移动鼠标——ui_evaluate允许执行任意 JavaScript是底层能力的逃生舱。配合 src/core/chart.js 可以看到一个工程细节chart_manage_indicator要求全名Relative Strength Index 而非 RSI且createStudy的 inputs 参数在不同构建下不可靠代码会先建指标再通过getInputValues/setInputValues二次应用参数并回读确认见注释中的 issue #249。第三层Pine 开发——完整的编辑闭环。Pine 编辑器基于 MonacoVS Code 同款编辑器项目通过 React fiber 内部属性定位到编辑器实例再调用setValue注入代码、读取 markers 获取编译错误。这个「黑科技」完整地写在 scripts/pine_push.js 和 scripts/pine_pull.js 里向上遍历 DOM 找__reactFiber$属性、在memoizedProps.value.monacoEnv里挖出editor.getEditors()。对应到 MCP 工具就是pine_set_source → pine_smart_compile → pine_get_errors → pine_get_console → pine_save的流水线。值得一提的是pine_analyze是纯离线静态分析——用正则追踪array.new/array.from的数组大小、检查array.get/set的下标越界和隐式布尔转换不需要连接图表就能报错等于在编译前多了一道免费 lint。第四层告警、回放与批量。alert_create / alert_list / alert_delete管理价格告警replay_*系列驱动 K 线回放replay_start → replay_step → replay_trade → replay_statussrc/core/replay.js 里特别处理了一个坑selectDate()是异步的必须在页面上下文中 await否则回放状态显示「已开始」但步进无效issue #26batch_run则支持跨品种跨周期批量执行截图或 OHLCV 拉取src/core/batch.js。分层之外还有一个容易被忽略的工程决策每一个 MCP 工具同时也是tvCLI 命令JSON 输出、可管道。这意味着同一套核心逻辑src/core/被 MCP 和 CLI 双通道复用AI 能做的事终端用户通过tv quote | jq .close也能做——两条使用路径共享同一份能力。三、上下文压缩把一次「分析图表」从 80KB 压到 5-10KB桥接和工具决定了 AI「能不能」操作图表上下文管理则决定它「能用多久」。图表数据动辄数百根 K 线、几十个指标、上千个图形对象如果全部原样塞进模型上下文一次分析就能烧掉几十 KB token。项目的对策写得很直白README对典型「分析我的图表」工作流总上下文约 5-10KB而非 80KB。压缩策略在 CLAUDE.md 里被归纳为一条条强约束规则源码层面则落实为默认行为summary 模式src/tools/data.js 的data_get_ohlcv把summarytrue作为推荐项只返回统计量高、低、区间、涨跌幅、均量、最近 5 根 bar约 500B而非全部 bar100 根约 8KB。README 明确「ALWAYS use summarytrue」。去重与截断data_get_pine_lines返回去重后的价位集合而不是每个 line 对象约 1-3KBdata_get_pine_labels默认每指标上限 50 条、只取文本价格data_get_pine_boxes只返回{high, low}区间。在 src/core/stream.js 的fetchLines里可以看到具体实现遍历图形集合用seen哈希表对价格去重后再降序排序。study_filter 定向读取所有 pine 图形工具都接受study_filter参数按指标名子串过滤避免全量扫描。实体 ID 复用chart_get_state只在开始时调用一次之后用拿到的 entity ID 直接引用不重复调用。用截图代替大数据集需要视觉上下文时优先capture_screenshot——返回的只是本地文件路径约 300B而非图像二进制图像由 AI 侧直接读取文件。这些规则不仅写在 README 里还被固化进了 MCP 服务器的 instructions 字段src/server.js 的注册描述和 CLAUDE.md 的「Context Management Rules」等于把「省 token」编码进了工具契约本身。四、流式监控poll-and-diff只在变化时发声实时监控是另一个 Token 成本陷阱。如果每秒把整张图的状态推给模型上下文会迅速失控。项目的解法是「轮询 去重」以固定间隔报价 300ms、K 线 500ms、表格 2s通过 CDP 抓取状态用JSON.stringify生成哈希与上次比较只在数据变化时输出一行 JSONLsrc/core/stream.js 的pollLoop。输出的每一行还附带_ts时间戳和_stream标签方便下游脚本按行解析。这套机制同时服务于两个场景CLI 侧tv stream quote | jq .close可以充当轻量行情监控管道对 LLM Agent 而言流式输出本身就是「按需订阅」——变化才推送静止即静默从根本上避免把无变化的状态反复塞进对话上下文。五、能力边界为什么它是「研究工具」而非「交易机器人」拆解到最后必须说清这个项目的边界因为这与桥接方案同源它操控的是你本机的 TradingView Desktop因此不联网、不上传、不绕付费墙、不执行真实交易。README 的警告栏与免责声明README.md逐条列明了禁止事项不得分发转售行情数据、不得绕过订阅限制、不得用提取的数据做自动化交易决策、不得连接 TradingView 服务器。REPLAY 模式中的replay_trade交易的是回放数据而非真实订单。它访问的是未公开的内部接口任何 TradingView 更新都可能使其失效——README 给出的务实建议是如果稳定性重要固定 Desktop 版本。这恰恰是它作为开源研究项目的价值所在把「LLM Agent 如何操作有状态的桌面金融应用」这个开放问题落地成了一段可运行、可审计、可复现的工程代码。AI「看见」图表本质上不是让模型理解像素而是通过一条受控的本地通道把图表的内部状态翻译成结构化的、可推理的文字世界——CDP 是通道84 个工具是语义层上下文压缩与流式去重则是让这条通道在经济上可持续的工程保障。三者合起来才构成完整的答案。【免费下载链接】tradingview-mcpAI-assisted TradingView chart analysis — connect Claude Code to your TradingView Desktop for personal workflow automation项目地址: https://gitcode.com/GitHub_Trending/tra/tradingview-mcp创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

读懂 MEX 的核心思想:把 Git 变成 AI 助手共享记忆的中枢(图解架构)

读懂 MEX 的核心思想:把 Git 变成 AI 助手共享记忆的中枢(图解架构)

【免费下载链接】mex Team memory for engineers and their AI agents. Lives in your repo. Shared through Git. 项目地址: https://gitcode.com/gh_mirrors/mex2/mex 点击查看 免费下载 MEX 是一款开源的"团队记忆"工具,面向工程师与他们的…

2026/10/10 16:16:29 阅读更多 →
SpringBoot饮品DIY定制系统设计与实现——毕业设计完整项目复盘

SpringBoot饮品DIY定制系统设计与实现——毕业设计完整项目复盘

每年毕业设计选题季,我看到太多同学在SpringBoot和“管理系统”之间反复纠结,最后交出一个连自己都不想打开的学生管理系统。今天我把之前完整做过的一个项目复盘出来——基于SpringBoot的饮品DIY制作系统,也就是个性化奶茶定制与订单管理平台…

2026/10/10 16:15:28 阅读更多 →
解码Doc:酷儿亲密关系的叙事分析与解读方法

解码Doc:酷儿亲密关系的叙事分析与解读方法

第一次看到这个标题时,我停在“peculiar”这个词上很久。Doc、Deciphering、Queer Intimacy,三个词单拎出来都很常见,拼到一起却产生了一种奇异的张力。你可能和我一样,第一反应是:Doc是谁?为什么他的亲密关…

2026/10/10 16:15:28 阅读更多 →

最新新闻

GPU算力怎么选?从并行计算到AI大模型实战指南

GPU算力怎么选?从并行计算到AI大模型实战指南

今年明显感觉身边聊GPU算力的人变多了。以前大家问显卡,翻来覆去就是“能不能流畅玩XX游戏”“帧率多少”,现在画风完全不一样了,开口就是“这卡能跑多少B参数的模型”“显存够不够微调”“深度学习吃不吃得消”。说白了,不管游戏…

2026/10/10 21:45:34 阅读更多 →
人脸识别门禁考勤系统毕设实战:OpenCV+MTCNN+FaceNet全解析

人脸识别门禁考勤系统毕设实战:OpenCV+MTCNN+FaceNet全解析

简介:一套完整的人脸识别系统毕业设计资料包,面向计算机视觉、图像处理与模式识别方向的本专科学生,尤其适合需要完成从算法原理到工程实现全流程毕业设计的读者。压缩包共80个文件,约2.18MB,以C源码为主,包…

2026/10/10 21:45:34 阅读更多 →
Agent Router 免费接入 codex、claude 后,如何把 API Key 配置到 CC Switch

Agent Router 免费接入 codex、claude 后,如何把 API Key 配置到 CC Switch

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 21:45:34 阅读更多 →
Operator 之后,开源社区半年追平 OpenAI:『看屏操作』CUA 开源化全面复盘

Operator 之后,开源社区半年追平 OpenAI:『看屏操作』CUA 开源化全面复盘

Operator 之后,开源社区半年追平 OpenAI:『看屏操作』CUA 开源化全面复盘 【免费下载链接】cua Scale computer-use 2.0 with open-source drivers, cross-OS fleets, and benchmarks for training, evaluation, and data generation. 项目地址: https…

2026/10/10 21:45:34 阅读更多 →
红黑树原理与实现:从2-3-4树到插入删除,对比B+树

红黑树原理与实现:从2-3-4树到插入删除,对比B+树

红黑树这名字起得挺贴切,它确实是一门“平衡的艺术”。但这门艺术折磨过的人也不少——网上关于红黑树的博客一搜一大把,有人上来就甩五个性质,有人画各种旋转图,你从头看到尾,脑子说懂了,手一写代码就懵。…

2026/10/10 21:45:34 阅读更多 →
ComfyUI 零插件跑通 H3:文生视频、图生视频、首尾帧一条龙实战

ComfyUI 零插件跑通 H3:文生视频、图生视频、首尾帧一条龙实战

ComfyUI 零插件跑通 H3:文生视频、图生视频、首尾帧一条龙实战 【免费下载链接】Minimax-h3_Singularity 项目地址: https://ai.gitcode.com/hf_mirrors/WarmBloodAban/Minimax-h3_Singularity MiniMax H3 开源后迅速成为开源社区关注度最高的视频生成模型&…

2026/10/10 21:44:33 阅读更多 →

日新闻

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

卫星轨道分类全解析:从LEO到GEO的选型逻辑与工程实践

1. 从“卫星轨道分类”这个标题说起:为什么值得花时间搞懂第一次接触“卫星轨道分类”这个概念,很多人会觉得它离自己很远——不就是天上的星星怎么转吗?但如果你正在做航天任务规划、遥感数据接收、星座设计,甚至只是准备一场航天…

2026/10/10 0:00:39 阅读更多 →
Spring AOP 核心原理与实战:从概念到日志切面落地

Spring AOP 核心原理与实战:从概念到日志切面落地

1. 从一个真实痛点说起:为什么你的代码里到处都是重复逻辑刚入行那会儿,我写过一个用户管理模块,注册、登录、改密码、注销四个接口。每个接口里都塞了几乎一样的日志打印、参数校验、事务开启和提交。当时觉得没什么,能跑就行。直…

2026/10/10 0:00:40 阅读更多 →
Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

Python招聘数据采集与分析可视化:从采集清洗到薪资技能城市可视化全链路

简介:这是一套面向计算机相关专业学生与项目实战学习者的Python数据采集与分析可视化完整项目,以Boss直聘岗位数据为对象,适合用作毕业设计、课程设计或期末大作业。资源包共38个文件,约246KB,以13个py源码文件为核心&…

2026/10/10 0:00:40 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:25 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 1:36:08 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 11:14:58 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 5:23:50 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/10 10:38:42 阅读更多 →