tradingview-mcp读图状态完全指南:chart_get_state一次拿到全部指标ID
【免费下载链接】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
tradingview-mcp是一款把 Claude Code 连接到本地 TradingView Desktop 的 MCP 桥梁工具,让 AI 助手获得"读图的眼睛"和"操作的手"。而chart_get_state是它最关键的第一个工具:一次调用,就能拿到当前图表的品种、周期、图表类型,以及所有已加载指标的名称和实体 ID(entity ID)。本文将带你从零理解这个工具的返回值、ID 的用途和最佳实践。
一、30 秒认识 tradingview-mcp 📈
tradingview-mcp 通过 Chrome DevTools Protocol(CDP)与本机正在运行的 TradingView Desktop 通信,提供 84 个 MCP 工具 + 30 个tvCLI 命令,覆盖:
- Pine Script 开发:注入代码、编译、读错误
- 图表导航:换品种、换周期、缩放时间范围
- 指标数据读取:RSI、MACD、布林带等数值
- 回放练习、绘图、告警管理、截图
整体架构非常清晰:
Claude Code ←→ MCP Server (stdio) ←→ CDP (端口 9222) ←→ TradingView Desktop核心源码入口在 src/server.js,图表控制逻辑在 src/core/chart.js。
二、为什么第一步永远是 chart_get_state?
AI 要操作图表上的任何一个指标(改参数、删掉它、读它的输出),都不能只靠"名字"——TradingView 内部每个指标实体都有一个会话内唯一的entity ID,删除或设置参数都必须凭 ID 定位。
chart_get_state正是 ID 的唯一来源。项目内置的 AI 决策树(见 CLAUDE.md)明确规定:
- 会话开始只调用一次
chart_get_state获取实体 ID,之后直接引用——不要反复重复调用。
调用后你会得到一份紧凑的状态快照(典型输出仅 ~500 字节):
| 字段 | 含义 | 示例 |
|---|---|---|
symbol | 当前图表品种 | BTCUSD、ES1! |
resolution | 当前周期 | 15、D、W |
chartType | K线类型编号 | 1= Candles |
studies | 全部指标列表,每项含id和name | [{id: "abc123", name: "RSI"}, ...] |
这就是"一次拿到全部指标 ID"的含义——不需要逐个指标去问,一张图表挂了什么、叫什么、ID 是多少,一次全知道。
三、拿到指标 ID 之后能做什么?
1️⃣ 精确删除指定指标
chart_manage_indicator的remove操作强制要求entity_id参数,源码里的报错信息写得直白(src/core/chart.js):
entity_id required for remove action. Use chart_get_state to find study IDs.
也就是说:想删哪个 RSI?先chart_get_state查它的 ID,再交给 AI 删除。
2️⃣ 精准修改指标参数
修改指标输入(如把 EMA 长度改成 200)、切换指标显隐,同样依赖chart_get_state返回的 ID。相关定义见 src/tools/indicators.js——两处参数描述都写着"Entity ID of the study (from chart_get_state)"。
3️⃣ 用 study_filter 只读目标指标
自定义 Pine 指标画出来的线、标签、表格,需要用data_get_pine_lines/data_get_pine_labels/data_get_pine_tables等工具读取。加一个study_filter: "Profiler"参数,就能只扫描名为 Profiler 的那个指标,省上下文、少噪音。
4️⃣ 判断图表上"有什么"
data_get_ohlcv只给你价格数据,quote_get只给你最新价——唯有chart_get_state告诉你图表上挂了哪些分析工具。它是"我的图表上有什么?"这一类问题的标准答案起点(完整决策表见 src/server.js 中的工具选择指南)。
四、推荐工作流:三步完成图表分析 🎯
项目内置的 chart-analysis 技能(skills/chart-analysis/SKILL.md)给出了标准流程,最简版是:
| 步骤 | 工具 | 拿到的东西 |
|---|---|---|
| ① 查状态 | chart_get_state | 品种、周期、指标名 + ID |
| ② 读数 | data_get_study_values | 所有指标的当前数值(RSI/MACD/BB…) |
| ③ 报价 | quote_get | 最新价、OHLC、成交量 |
三步合计上下文占用约 1–2KB,而项目官方对比:典型"分析我的图表"流程总上下文约5–10KB,而不是 80KB(参见 README.md 的 Context Management 一节)。
五、命令行用户:tv state
不用 Claude Code?每个 MCP 工具都有对应的tvCLI 命令。chart_get_state对应的是tv state,输出纯 JSON,可直接管道给jq:
tv state # → {"success":true,"symbol":"BTCUSD","resolution":"15","chartType":1,"studies":[...]}命令注册源码在 src/cli/commands/chart.js,与 MCP 工具共用同一套核心逻辑core.getState()。
六、新手避坑清单 ✅
- 一次会话只调一次:ID 取出来存着复用即可,反复调用纯属浪费上下文。
- ID 不要跨会话缓存:entity ID 是会话级的,重启 TradingView 后会变化(CLAUDE.md 明确警告don't cache across sessions)。
- 加指标要用全名:加指标时写
"Relative Strength Index"而不是"RSI";但查状态时读到的就是全名,删指标时照抄 ID 即可。 - 自定义指标必须可见:Pine 绘图数据工具只能读图表上可见的指标输出。
- 先连接再读图:TradingView 需以
--remote-debugging-port=9222启动(各平台启动脚本见 scripts/launch_tv_debug_linux.sh、scripts/launch_tv_debug_mac.sh),并先用tv_health_check验证连接。 - 稳定性提示:工具走的是 TradingView 内部未公开接口,版本升级可能失效,建议固定 Desktop 版本。
七、小结
chart_get_state是 tradingview-mcp 读图工作流的"总开关":
- ✅ 一次调用拿全品种 + 周期 + 图表类型 + 所有指标 ID
- ✅ ID 是删指标、改参数、按名过滤的通行证
- ✅ 输出紧凑(~500B),对 AI 上下文极其友好
- ✅ MCP 工具与
tv state命令两种用法,结果一致
想深入源码,从 src/core/chart.js 的getState函数读起,再配合 CLAUDE.md 的完整决策树,你就掌握了 tradingview-mcp 的读图核心。
【免费下载链接】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),仅供参考