@milesdeutscher: 如何用Vibe Code通过TradingView MCP和Claude Fable 5创建自定义交易指标。我完全不精通技术,而且我…
摘要
一份关于如何使用TradingView MCP和Claude Code在Pine Script中创建自定义交易指标的指南,无需技术技能。
查看缓存全文
缓存时间: 2026/07/15 03:43
如何用vibe code编写自定义交易指标——搭配TradingView MCP + Claude Fable 5。我完全不懂技术,但成功用TradingView MCP创建了极其有效的市场指标。每个交易员都应该设置这个。时间线上还没有其他人提到过。建议收藏:
设置要求:
- Claude Code
- TradingView桌面应用
- Node.js v18+
第1步:安装TradingView MCP
打开Claude Code并运行以下提示:
"Install the TradingView MCP server https://github.com/tradesdontlie/tradingview-mcp...."
第2步:用自然语言向Fable(或Opus)描述你的指标
创建一个名为“Vibe-Coding Indicators”的新文件夹,并在Claude Code中打开。然后用你向其他交易员解释的方式描述你的策略。不要考虑代码——只考虑条件。使用以下结构:
"I'm building a trading indicator for TradingView in Pine Script V6. I want a buy signal that fires when [insert your conditions]."
(你甚至可以请Fable为你研究)
第3步:部署到TradingView
复制Claude生成的Pine Script代码。在TradingView中:
- 点击顶部菜单的“指标”
- 转到“我的脚本” → “新脚本”
- 从第1行开始粘贴代码
- 点击“添加到图表”
你的指标现已生效。
高级提示:
- 先在较高时间框架上测试(HTF信号比LTF更清晰)
- 添加警报:
"Set an alert anytime [x] happens." - 回测它:
"Turn my indicator into a backtestable strategy." - 如果遇到错误,用Opus + High Effort调试
这是完全的改变游戏规则。收藏本文,今天就开始打造你的第一个指标。
tradesdontlie/tradingview-mcp
来源:https://github.com/tradesdontlie/tradingview-mcp
TradingView MCP Bridge
个人AI助手,用于你的TradingView桌面图表。通过Chrome DevTools协议将Claude Code连接到本地运行的TradingView应用,实现AI辅助图表分析、Pine Script开发和工作流程自动化。
此工具与TradingView Inc.无关,未经其认可或关联。 它通过Chrome DevTools协议与你本地运行的TradingView桌面应用交互。使用前请阅读免责声明。
需要有效的TradingView订阅。 此工具不会绕过或规避任何TradingView付费墙或访问控制。它读取并控制你机器上已运行的TradingView桌面应用。
所有数据处理均在本地机器上完成。 此工具不会将任何TradingView数据传输、存储或重新分发给外部。
此工具通过Electron调试接口访问未公开的TradingView内部API。这些API可能在TradingView的任意更新中更改或失效,恕不通知。如果稳定性对你重要,请固定TradingView桌面版本。
工作原理(以及为何安全运行)
此工具不会连接到TradingView的服务器、修改任何TradingView文件或拦截任何网络流量。它仅通过Chrome DevTools协议(CDP)与你本地运行的TradingView桌面实例进行通信——这是Google所有Chromium/Electron应用(包括VS Code、Slack、Discord)内置的标准调试接口。
调试端口默认禁用,必须由你使用标准Chromium标志(--remote-debugging-port=9222)显式启用。没有你刻意的这一步,什么都不会发生。
此工具不会做的事情
- 连接到TradingView的服务器或API
- 存储、传输或重新分发任何市场数据
- 在没有有效TradingView订阅和已安装桌面应用的情况下工作
- 绕过任何TradingView付费墙或访问限制
- 执行真实交易(仅图表交互)
- 在TradingView更改其内部Electron结构后仍能工作
研究背景
本项目探索一个开放研究问题:基于LLM的代理如何与专业交易界面交互,从而支持人类决策? 具体研究:
- 结构化的工具API(MCP)如何桥接LLM和有状态的桌面金融应用
- 当代理在实时图表数据上运行时,会产生哪些延迟、上下文和可靠性约束
- 代理如何处理模糊的金融UI状态(例如解释Pine Script输出、读取指标表格)
- 自然语言是否是图表导航和Pine Script开发的有效界面
- LLM代理在实时数据环境中的失败模式
这不是交易机器人。它是一个接口层,使交易应用对LLM代理可读,允许研究人员和开发者研究金融工作流中的人机协作。参见RESEARCH.md了解未解决问题、发现和相关工作。
先决条件
- TradingView桌面应用(付费订阅以获取实时数据)
- Node.js 18+
- 支持MCP的Claude Code(用于MCP工具)或任何终端(用于CLI)
- macOS、Windows或Linux
功能
让你的AI助手拥有自己图表的“眼睛”和“手”:
- Pine Script开发——在AI协助下编写、注入、编译、调试和迭代脚本
- 图表导航——更改交易品种、时间框架、缩放至日期、添加/移除指标
- 可视化分析——读取图表的指标值、价格水平和标注
- 在图表上绘图——趋势线、水平线、矩形、文字标注
- 管理警报——创建、列出和删除价格警报
- 复盘练习——逐步浏览历史K线,练习入场/出场
- 截图——捕获图表状态供AI视觉分析
- 多窗格布局——设置2x2、3x1等网格,每个窗格不同交易品种
- 监控你的图表——从本地运行的图表流式传输JSONL,用于本地监控脚本
- CLI访问——每个MCP工具也是
tvCLI命令,支持管道并输出JSON - 启动TradingView——自动检测并从任何平台以调试模式启动
使用Claude Code安装
将以下内容粘贴到Claude Code中,剩下的它会处理:
安装TradingView MCP服务器。克隆https://github.com/tradesdontlie/tradingview-mcp.git,运行npm install,将其添加到我的MCP配置 ~/.claude/.mcp.json 中,并以调试端口启动TradingView。然后使用tv_health_check验证连接。
或按照下面的手动步骤操作。
快速开始
1. 安装
git clone https://github.com/tradesdontlie/tradingview-mcp.git
cd tradingview-mcp
npm install
2. 启动带CDP的TradingView
TradingView桌面必须以启用Chrome DevTools协议的状态运行,端口9222。
Mac:
./scripts/launch_tv_debug_mac.sh
Windows:
scripts\launch_tv_debug.bat
Linux:
./scripts/launch_tv_debug_linux.sh
或手动在任何平台启动:
/path/to/TradingView --remote-debugging-port=9222
或使用MCP工具(自动检测你的安装):
“Use tv_launch to start TradingView in debug mode”
3. 添加到Claude Code
将其添加到你的Claude Code MCP配置(~/.claude/.mcp.json或项目.mcp.json):
{
"mcpServers": {
"tradingview": {
"command": "node",
"args": ["/path/to/tradingview-mcp/src/server.js"]
}
}
}
将/path/to/tradingview-mcp替换为你的实际路径。
4. 验证
询问Claude:
“Use tv_health_check to verify TradingView is connected”
CLI
每个MCP工具也可以作为tv CLI命令使用。所有输出均为JSON,方便通过jq进行管道处理。
# 全局安装(可选)
npm link
# 或直接运行
node src/cli/index.js
快速示例
tv status # 检查连接
tv quote # 当前价格
tv symbol AAPL # 更改交易品种
tv ohlcv --summary # 价格摘要
tv screenshot -r chart # 捕获图表截图
tv pine compile # 编译Pine Script
tv pane layout 2x2 # 4图表网格
tv pane symbol 1 ES1! # 设置窗格交易品种
tv stream quote | jq '.close' # 监控价格变化
所有命令
tv status / launch / state / symbol / timeframe / type / info / search
tv quote / ohlcv / values
tv data lines/labels/tables/boxes/strategy/trades/equity/depth/indicator
tv pine get/set/compile/analyze/check/save/new/open/list/errors/console
tv draw shape/list/get/remove/clear
tv alert list/create/delete
tv watchlist get/add
tv indicator add/remove/toggle/set/get
tv layout list/switch
tv pane list/layout/focus/symbol
tv tab list/new/close/switch
tv replay start/step/stop/status/autoplay/trade
tv stream quote/bars/values/lines/labels/tables/all
tv ui click/keyboard/hover/scroll/find/eval/type/panel/fullscreen/mouse
tv screenshot / discover / ui-state / range / scroll
流式传输
tv stream 命令通过Chrome DevTools协议定期轮询你本地运行的TradingView桌面实例。不会连接TradingView的服务器。所有数据留在你的机器上。
无论数据源如何,以编程方式消费TradingView数据可能与他们的使用条款冲突。你全权负责确保你的使用符合规定。
tv stream quote # 价格跳动监控
tv stream bars # 逐K线更新
tv stream values # 指标值监控
tv stream lines --filter "NY Levels" # 价格水平监控
tv stream tables --filter Profiler # 表格数据监控
tv stream all # 一次性监控所有窗格(多交易品种)
Claude如何知道使用哪个工具
Claude在项目中工作时会自动读取CLAUDE.md。它包含一个完整的决策树:
| 你说… | Claude使用… |
|---|---|
| “我图表上有什么?” | chart_get_state → data_get_study_values → quote_get |
| “显示了哪些水平?” | data_get_pine_lines → data_get_pine_labels |
| “读取会话表格” | data_get_pine_tables with study_filter |
| “给我一个完整分析” | quote_get → data_get_study_values → data_get_pine_lines → data_get_pine_labels → data_get_pine_tables → data_get_ohlcv (summary) → capture_screenshot |
| “切换到AAPL日线” | chart_set_symbol → chart_set_timeframe |
| “编写一个Pine Script用于…” | pine_set_source → pine_smart_compile → pine_get_errors |
| “从3月1日开始复盘” | replay_start → replay_step → replay_trade |
| “设置4图表网格” | pane_set_layout → pane_set_symbol for each pane |
| “在24500处画一条水平线” | draw_shape (horizontal_line) |
| “截个图” | capture_screenshot |
工具参考(78个MCP工具)
图表读取
| 工具 | 何时使用 | 输出大小 |
|---|---|---|
chart_get_state | 第一次调用——获取交易品种、时间框架、所有指标名称和ID | ~500B |
data_get_study_values | 读取当前所有指标的RSI、MACD、布林带、EMA值 | ~500B |
quote_get | 获取最新价格、OHLC、成交量 | ~200B |
data_get_ohlcv | 获取价格K线。使用 summary: true 获取紧凑统计 | 500B(摘要) / 8KB(100根K线) |
自定义指标数据(Pine绘图)
读取任何可见Pine指标的 line.new()、label.new()、table.new()、box.new() 输出。
| 工具 | 何时使用 | 输出大小 |
|---|---|---|
data_get_pine_lines | 读取水平价格水平(支撑/阻力、会话水平) | ~1-3KB |
data_get_pine_labels | 读取文本标注和价格(“PDH 24550”, “Bias Long”) | ~2-5KB |
data_get_pine_tables | 读取数据表格(会话统计、分析仪表盘) | ~1-4KB |
data_get_pine_boxes | 读取价格区域/范围作为{高, 低}对 | ~1-2KB |
始终使用 study_filter 来定位特定指标:study_filter: "Profiler"。
图表控制
| 工具 | 功能 |
|---|---|
chart_set_symbol | 更改代码(BTCUSD, AAPL, ES1!, NYMEX:CL1!) |
chart_set_timeframe | 更改分辨率(1, 5, 15, 60, D, W, M) |
chart_set_type | 更改样式(K线, 平均K线, 线图, 面积图, 砖形图) |
chart_manage_indicator | 添加/移除指标。使用全名:“Relative Strength Index” 而非 “RSI” |
chart_scroll_to_date | 跳转到日期(ISO格式:“2025-01-15”) |
chart_set_visible_range | 缩放到精确范围(Unix时间戳) |
symbol_info / symbol_search | 交易品种元数据和搜索 |
indicator_set_inputs / indicator_toggle_visibility | 更改指标设置、显示/隐藏 |
多窗格布局
| 工具 | 功能 |
|---|---|
pane_list | 列出所有窗格及其交易品种和活动状态 |
pane_set_layout | 更改网格:s, 2h, 2v, 2x2, 4, 6, 8 |
pane_focus | 聚焦指定索引的窗格 |
pane_set_symbol | 设置任意窗格的交易品种 |
标签管理
| 工具 | 功能 |
|---|---|
tab_list | 列出打开的图表标签 |
tab_new / tab_close | 打开/关闭标签 |
tab_switch | 按索引切换到某个标签 |
Pine Script开发
| 工具 | 步骤 |
|---|---|
pine_set_source | 1. 将代码注入编辑器 |
pine_smart_compile | 2. 自动检测并编译,检查错误 |
pine_get_errors | 3. 如有编译错误则读取 |
pine_get_console | 4. 读取log.info()输出 |
pine_save | 5. 保存到TradingView云 |
pine_get_source | 读取当前脚本(警告:复杂脚本可能超过200KB) |
pine_new | 创建空白指标/策略/库 |
pine_open / pine_list_scripts | 打开或列出已保存的脚本 |
pine_analyze | 离线静态分析(无需图表) |
pine_check | 服务端编译检查(无需图表) |
复盘模式
| 工具 | 步骤 |
|---|---|
replay_start | 在某个日期进入复盘 |
replay_step | 前进一根K线 |
replay_autoplay | 自动前进(以毫秒为单位设置速度) |
replay_trade | 买入/卖出/平仓 |
replay_status | 检查持仓、盈亏、日期 |
replay_stop | 返回实时 |
绘图、警报、UI自动化
| 工具 | 功能 |
|---|---|
draw_shape | 绘制水平线、趋势线、矩形、文字 |
draw_list / draw_remove_one / draw_clear | 管理绘图 |
alert_create / alert_list / alert_delete | 管理价格警报 |
capture_screenshot | 截图(区域:全屏、图表、策略测试器) |
batch_run | 跨多个交易品种/时间框架执行操作 |
watchlist_get / watchlist_add | 读取/修改观察列表 |
layout_list / layout_switch | 管理已保存的布局 |
ui_open_panel / ui_click / ui_evaluate | UI自动化 |
tv_launch / tv_health_check / tv_discover | 连接管理 |
上下文管理
默认情况下,工具返回紧凑输出,以尽量减少上下文使用。对于一个典型的“分析我的图表”工作流,总上下文约为5-10KB,而不是约80KB。
| 特性 | 如何节省上下文 |
|---|---|
| Pine线条 | 仅返回去重后的价格水平,而非每个线条对象 |
| Pine标注 | 每个研究最多50个,仅包含文本+价格 |
| Pine表格 | 预格式化的行字符串,无单元格元数据 |
| Pine方框 | 仅返回去重后的{高, 低}区域 |
| OHLCV摘要模式 | 仅返回统计数据和最近5根K线,而非所有K线 |
| 指标输入 | 自动过滤加密/编码的blob |
verbose: true | 在需要时传递给任何pine工具,可获取带有ID/颜色的原始数据 |
study_filter | 定位一个指标,而非扫描所有指标 |
在你的系统上找到TradingView
启动脚本和tv_launch会自动检测TradingView。如果自动检测失败:
| 平台 | 常见位置 |
|---|---|
| Mac | /Applications/TradingView.app/Contents/MacOS/TradingView |
| Windows | %LOCALAPPDATA%\TradingView\TradingView.exe, %PROGRAMFILES%\WindowsApps\TradingView*\TradingView.exe |
| Linux | /opt/TradingView/tradingview, ~/.local/share/TradingView/TradingView, /snap/tradingview/current/tradingview |
关键标志:--remote-debugging-port=9222
测试
# 需要TradingView运行时带有 --remote-debugging-port=9222
npm test
29个测试覆盖:Pine Script静态分析、服务端编译、CLI路由。
架构
相似文章
tradesdontlie/tradingview-mcp
一种通过Chrome DevTools协议将Claude Code连接到TradingView桌面的工具,实现AI辅助图表分析、Pine Script开发和工作流程自动化。所有数据处理均在本地进行,需要有效的TradingView订阅。
@Saccc_c: Claude Code + TradingView = 最牛逼的交易看盘组合 TradingView 是美股、crypto 投资者最常用的看盘工具,而现在它可以通过MCP方式完全接入 Claude Code 不到5min配置完毕,你就可以…
本文介绍了一个名为TradingView MCP Bridge的开源工具,它通过MCP协议将Claude Code与本地运行的TradingView Desktop连接,使得AI能够实时读取图表、开发Pine Script策略、进行历史复盘等,形成一个强大的交易看盘组合。
@svpino: Claude Code + MCP 确实是我用过的最好的自动化平台。以下是我用来自动化任务的一个技能…
Santiago 称赞 Claude Code 和 MCP 是最好的自动化平台,并分享了他用来自动化任务的一个技能。
@shmidtqq: https://x.com/shmidtqq/status/2074177517150224402
一份关于使用 Claude AI 通过 Interactive Brokers API 自动进行股票交易的指南,每30分钟循环运行一次。内容涵盖设置、安装和用于模拟交易的策略执行。
@milesdeutscher: Claude Code 现在可以秒级连接金融数据集。输入提示即可进行金融研究、获取公司数据、访问超过17,000只股票等。
本文介绍了一个新的 MCP 服务器,它允许 Claude Code 和其他 AI 客户端在数秒内连接金融数据集,通过 OAuth 或 API 密钥认证提供股票价格、SEC 文件等数据的访问。