- MCP 服务
- AI 应用
- 人工智能
- 金融科技
- CLI
【免费下载链接】tradingview-mcp
AI-assisted TradingView chart analysis — connect Claude Code to your TradingView Desktop for personal workflow automation
本指南围绕 agents/performance-analyst.md 这一 Agent 定义展开,讲解如何借助 tradingview-mcp 的 MCP 工具,在回测完成后自动采集 TradingView 策略测试器的全部绩效数据、按四个维度评估策略质量,并输出结构化分析报告。读完本文,你将掌握 performance-analyst 的数据采集管线、评估框架与报告模板,并了解其底层在 src/core/data.js 中如何实现“自动打开面板、自动取消隐藏策略、等待报告计算”等关键机制。
performance-analyst 是什么:一个专攻回测评审的 Agent
performance-analyst是仓库 agents/ 目录下唯一的 Agent 定义文件,其 frontmatter 明确了它的定位与运行配置:
--- name: performance-analyst description: Trading strategy performance analyst. Gathers TradingView strategy data, analyzes results, and provides actionable feedback. Use when reviewing backtest results. model: sonnet tools: - "*" ---- name:Agent 的标识符,用于在 Agent 编排系统中被引用;
- description:决定了系统在什么场景下选中它——即“审查回测结果(reviewing backtest results)”时;
- model: sonnet:指定该 Agent 默认使用 Anthropic 的 sonnet 级模型,在分析吞吐与成本之间取平衡;
- tools: "*":允许 Agent 使用仓库注册的全部 MCP 工具(src/tools/ 下所有工具注册模块),但 performance-analyst 的核心工作流只依赖其中 5 个数据/截图工具。
该 Agent 的工作职责是:收集 TradingView 上全部可用的策略绩效数据,给出深入分析。它与 skills/strategy-report/SKILL.md(策略绩效报告技能)形成互补——Agent 负责“如何分析”,skill 负责“如何产出报告”,两者共享同一套数据工具与指标口径。
数据采集:五步完成绩效数据取证
performance-analyst 的采集流程在文档中固定为 5 个工具调用,下面逐一结合源码说明其参数、返回值与底层行为。
1. data_get_strategy_results —— 获取整体指标
定义于 src/tools/data.js,核心实现为 src/core/data.js 的getStrategyResults()。该工具无需参数,返回metrics对象,字段与 TradingView Strategy Tester 的 “Key stats” 一一对应:
| 字段 | 含义 |
|---|---|
net_profit/net_profit_percent | 净利润 / 净值百分比 |
gross_profit/gross_loss | 毛利润 / 毛亏损 |
profit_factor | 盈利因子 |
max_drawdown/max_drawdown_percent | 最大回撤(金额 / 百分比) |
total_trades | 总交易次数(赢 + 亏) |
winning_trades/losing_trades | 盈利 / 亏损交易数 |
percent_profitable | 胜率 |
avg_trade | 平均每笔盈亏 |
largest_win/largest_loss | 最大单笔盈利 / 亏损 |
commission_paid | 已付手续费 |
sharpe_ratio/sortino_ratio | 夏普 / 索提诺比率 |
buy_hold_return | 买入持有基准收益 |
open_pl | 当前浮动盈亏 |
返回结构还附带strategy(策略名)、currency(币种)、source(恒为internal_api)。若图上有多个策略,只有被 Strategy Tester 选中的那个reportData非空,因此底层会优先选择“报告已计算”的策略(见findStrategy()的实现注释)。
2. data_get_trades —— 获取交易明细
定义于 src/tools/data.js,核心实现为getTrades()(src/core/data.js)。参数max_trades控制返回笔数,默认 20、上限 20(常量MAX_TRADES = 20)。
底层通过strat.ordersData()读取订单流,总是返回最近(tail)的订单——因为交易者最关心的是最新一段交易。每个交易字段做了可读化映射:
type:订单类型(tp);side:buy/sell(由o.b判定);entry、price、qty:入场标识、价格、数量;time_index:K 线时间索引。
3. data_get_equity —— 获取资金曲线
定义于 src/tools/data.js,核心实现为getEquity()(src/core/data.js)。优先读取reportData中的equity/equityChart曲线;若该版本未直接暴露逐根 K 线资金曲线,则返回buyHold基准点数并提示改用data_get_strategy_results获取汇总盈亏。
4. chart_get_state —— 获取图表上下文
定义于 src/tools/chart.js 的getState()(src/core/chart.js),返回:
symbol:当前交易品种;resolution:当前周期;chartType:图表类型(数字编号,Candles=1、Line=2 等,见 src/core/chart.js 的类型映射);studies:当前图表上全部指标/策略的{ id, name }列表。
它让分析结果能附带“该策略在什么品种、什么周期上跑出来的”这一必要上下文。
5. capture_screenshot —— 采集图表与测试器截图
定义于 src/tools/capture.js,核心实现为captureScreenshot()(src/core/capture.js)。三个关键参数:
region:full(整页,默认)、chart(仅图表画布)、strategy_tester(仅策略测试器面板,通过[data-name="backtesting"]或[class*="strategyReport"]定位);method:cdp(默认,通过 CDP 的Page.captureScreenshot截取并落盘 PNG)或api(触发 TradingView 内置takeScreenshot());wait_for_render:设为true时先等待图表画布稳定再截图,避免在chart_set_symbol/chart_set_timeframe之后截到陈旧画面。
截图统一保存到仓库根目录下的screenshots/目录,文件名形如tv_<region>_<时间戳>.png。分析时建议按 strategy-report skill 的步骤各截一张:region="chart"用于看策略叠加形态,region="strategy_tester"用于留证绩效数字。
CLI 等价路径:不使用 Agent 时,同样的数据可通过 src/cli/commands/data.js 获得,例如
tv data strategy、tv data trades -n 10、tv data equity,以及tv ohlcv -s、tv values、tv quote <symbol>。
分析框架:四个维度审视策略
采集完成后,performance-analyst 按以下四维框架评估策略(文档原文定义):
- Profitability(盈利能力):净利、盈利因子(Profit Factor)、平均每笔盈亏——回答“这个策略到底赚不赚钱”;
- Consistency(一致性):胜率、最大连亏次数、资金曲线平滑度——回答“赚钱是不是稳定、可持续”;
- Risk(风险):最大回撤、最差单笔交易、风险调整后收益(夏普/索提诺)——回答“为赚这些钱承担了多大风险”;
- Edge Quality(优势质量):优势是稳健的还是脆弱的?比如“高胜率但单笔盈利极小”或“低胜率但单笔盈利极大”的形态差异,直接决定了策略对滑点、参数微调的敏感度。
可结合 skills/strategy-report/SKILL.md 中沉淀的判读基准作为量化锚点:盈利因子以> 1.5为健康;回撤> 20%视为过高;盈利因子< 1.2时策略可能需要进行根本性调整;交易笔数过少时建议拉长回看区间或放宽入场条件。
结构化报告:四个必备板块
performance-analyst 的输出被固定为结构化报告,四个板块齐全才算一次完整评审:
- Summary:2~3 句话的总览,先给结论;
- Key metrics table:指标表格(可直接采用上文 metrics 字段表);
- Strengths and weaknesses:优劣势清单;
- Specific, actionable recommendations:可执行的改进建议,而不是空泛评价。
完整模板可参考 strategy-report skill 中给出的示例骨架(## Strategy Report: [Strategy Name]加上 Symbol/Timeframe/Period 头信息),Agent 版本与之兼容,只是强调“建议必须具体可执行”。
底层原理:面板自动打开与隐藏策略自动解锁
performance-analyst 能“拿来即用”的关键,在于策略读取工具内置了三层自动修复逻辑(ensureStrategyTesterReady(),src/core/data.js):
- 自动打开 Strategy Tester 面板:TradingView 在面板未打开前从不计算策略报告。底层通过
window.TradingView.bottomWidgetBar.showWidget('backtesting')自动呼出面板——这也与ui_open_panel strategy-tester(src/tools/ui.js)能力一致; - 自动取消隐藏策略:对图例中被“隐藏(crossed-out eye)”的策略,TradingView 同样不计算报告,且隐藏策略与“面板未打开”在数据上无法区分。底层
unhideStrategies()(src/core/data.js)会遍历全部策略数据源,把properties().visible === false的策略恢复可见,并在返回结果中通过unhidden_strategies字段告知 Agent 发生了什么; - 轮询等待报告就绪:打开面板后最多等待 6 秒,每 500ms 轮询
reportData.performance是否已填充,直到ready/no-strategy才返回,避免读到空报告。
策略的识别也并非简单的“非价格研究即策略”:早期实现曾因is_price_study判断失误把所有策略误排除(对应 issue #48/#173/#181),现改为依据metaInfo().isTVScriptStrategy || is_strategy判定,并回退到“暴露reportData/ordersData的任何数据源”,详见 src/core/data.js 的注释。
这些行为均有测试佐证:tests/e2e.test.js 验证了data_get_strategy_results的面板依赖性与面板检测逻辑;tests/pine_analyze.test.js 则从另一侧确保策略脚本(含strategy()声明检查)在上图前就被正确校验。
落地实践建议
- 触发时机:在回测跑完、Strategy Tester 面板可见之后调用 performance-analyst,效果最佳;即使面板关闭或策略被隐藏,底层也会自动处理;
- 取证留档:务必执行两次
capture_screenshot(chart与strategy_tester),让报告中的数字有截图佐证; - 上下文精简:若图表上有大量历史数据,
data_get_ohlcv的summary=true可只取统计摘要,节省 Agent 上下文(见 src/tools/data.js),把更多上下文留给绩效分析本身; - 组合使用:需要更细粒度交易拆解(多空分别表现、持仓时间)时,可结合 skills/strategy-report/SKILL.md 的 Trade Analysis 步骤,对
data_get_trades返回的明细做二次统计。
至此,一条“回测 → 采集 → 四维评估 → 结构化报告 → 改进建议”的完整策略评审流水线即可由 performance-analyst 自动完成,而所有数据都直接来自真实的 TradingView Strategy Tester,非估算或模拟。
- MCP 服务
- AI 应用
- 人工智能
- 金融科技
- CLI
【免费下载链接】tradingview-mcp
AI-assisted TradingView chart analysis — connect Claude Code to your TradingView Desktop for personal workflow automation
相关推荐
tradingview-mcp 研究笔记:LLM Agent 与 TradingView 实时图表之间的接口层设计
tradingview mcp 研究笔记:LLM Agent 与 TradingView 实时图表之间的接口层设计 本文基于仓库中的 RESEARCH.md h
MCP 服务AI 应用人工智能金融科技CLIUnityGLTF交互性革命:Visual Scripting图形导出完全指南
UnityGLTF交互性革命:Visual Scripting图形导出完全指南 UnityGLTF是一款强大的Runtime glTF 2.0加载器,为Unit
3D渲染图形学TradingView策略优化插件的深度解析与应用指南
TradingView策略优化插件的深度解析与应用指南 交易策略开发的痛点与挑战 在量化交易领域,策略回测和参数优化一直是技术门槛较高的环节。传统的手动测试方式
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考