Strategy Tester 是用来验证思路,不是用来寻找「神策略」
Strategy Tester 把策略放到历史图表上运行,回答的是:过去这段数据里,规则模拟下来赚没赚、回撤多深、交易多不多、胜率如何、盈亏结构是否匹配。
官方说明:Pine strategy 可在历史与实时 K 线上模拟交易,进行 backtest 与 forward test,并在 Strategy Tester 展示表现。因此更应问:
- 这套规则过去表现怎样?风险是否可接受?
- 是否只适配某一段行情?手续费与滑点算进去了吗?
- 换品种、换周期后是否仍合理?最大回撤能否承受?
一、TradingView 回测的基本流程
1. 先打开标准图表
选择要测的品种(股票、加密、外汇等)。新手建议先用标准 K 线图;官方提醒,Heikin Ashi、Renko、Kagi、Point and Figure、Range 等非标准图价格具有合成性质,在此类图上回测通常不能代表真实市场条件。
2. 添加 strategy,而不是普通 indicator
通过 Indicators 搜索策略,或在 Technicals → Strategies / Community / My scripts 添加。添加 strategy 后,底部通常会打开 Strategy Tester。
| 策略类型 | 说明 |
|---|---|
| Built-in Strategies | 内置策略,适合入门练习 |
| Community strategies | 社区发布,需自行验证逻辑与成本 |
| My strategies | 自己用 Pine Script 编写的策略 |
3. 打开 Strategy Tester 面板
常见标签包括:
- Overview — 总盈亏、最大权益回撤、交易次数、盈利比例、Profit factor、Buy & Hold 对比等;
- Performance、Trades analysis、Risk/performance ratios — 收益、交易与风险比率细节;
- List of trades — 逐笔记录;
- Properties — 资金、手续费、滑点等假设。
4. 调整策略参数
可改均线长度、止损止盈、RSI 阈值、方向过滤等。不要为让历史曲线最好看而反复调参,否则容易过拟合。
5. 设置手续费、滑点、初始资金与仓位
官方策略属性包括 Initial Capital、Order Size、Pyramiding、Commission、Slippage、Margin、Recalculate、Fill orders 等。不设手续费与滑点,短线策略回测可能明显偏乐观。
6. 阅读完整报告,而不只看净利润
至少同时看:净利润、最大回撤、胜率、交易次数、Profit factor、平均盈亏、Sharpe / Sortino、最大单笔亏损、Buy & Hold 对比、逐笔交易列表。
二、indicator 和 strategy 有什么区别?
indicator:画图、提示、alertcondition,不能在 Strategy Tester 生成完整回测。
strategy:含模拟下单(进场、出场、止损止盈等),使用 strategy() 声明后可调用 strategy.*,在 Tester 展示表现。
| 项目 | indicator | strategy |
|---|---|---|
| 主要用途 | 看图、提示、辅助判断 | 模拟交易、回测规则 |
| 能否模拟订单 | 否 | 是 |
| 能否生成回测报告 | 否 | 是 |
| 常见声明 | indicator() |
strategy() |
若只加了指标而 Tester 无交易,多半不是平台故障,而是脚本本来就不是 strategy。
三、Strategy Tester 回测报告关键指标解释
1. Net Profit / 净利润
所选期间内已平仓交易的累计盈亏(不含未平仓浮动盈亏)。为正表示这段历史总体盈利,为负表示总体亏损。不能单独看净利润——+50% 净利配合 -70% 回撤,对多数人仍难坚持。
2. Gross Profit / Gross Loss
总盈利与总亏损分别加总,帮助理解「赚钱端」与「亏钱端」。
| 策略 A | 策略 B | |
|---|---|---|
| Gross Profit | 10,000 | 50,000 |
| Gross Loss | 8,000 | 48,000 |
| Net Profit | 2,000 | 2,000 |
净利相同,策略 B 的波动与成本压力可能更大。
3. Max Drawdown / 最大回撤
从权益高点回落的最大亏损幅度(官方会在持仓的每根 K 线上计算 Max equity drawdown)。对应真实使用中的心理压力:若你无法接受 30% 回撤,历史 45% 回撤的策略未必适合。
4. Total Trades / 交易次数
已关闭交易总数。过少样本偶然性强;过多则手续费与滑点影响大。需结合策略周期判断,无绝对标准。
5. Percent Profitable / 胜率
盈利笔数 ÷ 总笔数。须与盈亏比一起看:高胜率可能「小赚多次、偶尔大亏」;低胜率也可能靠大盈亏比维持正期望。
6. Profit Factor / 利润因子
Gross Profit ÷ Gross Loss。>1 表示总盈利大于总亏损;=1 大致打平;<1 为亏。样本很少时,几笔大赚可能把 PF 抬得很高。
7. Ratio Avg Win / Avg Loss
平均盈利交易与平均亏损交易之比(Trades analysis 中有 Avg winning / losing trade 等)。须与胜率组合解读。
8. Avg P&L / 平均每笔盈亏
每笔平均赚或亏多少。均值越薄,越要认真设置手续费与滑点,否则实盘易被成本吃掉。
9. Largest Winning / Losing Trade
判断是否依赖少数极端盈利,或最大亏损是否远超平均亏损。
10. Sharpe Ratio / 夏普比率
风险调整后收益视角:不仅看赚多少,也看承担了多少波动。样本短、分布不稳时参考性下降。
11. Sortino Ratio / 索提诺比率
更侧重下行波动;上涨波动较少计入「风险」。仍须结合回撤与逐笔记录。
12. Buy & Hold Return
与「测试期初买入持有」对比。策略赚 30% 而 Buy & Hold 200% 时,策略未必优于简单持有。
13. List of Trades / 逐笔交易列表
显示编号、类型、时间、信号、价格、仓位、净盈亏、run-up、drawdown、累计盈亏等。应抽查:进出场是否合理、是否频繁开平、利润是否集中在少数笔、是否与图表逻辑一致。
四、手续费、滑点、初始资金、仓位为什么重要?
1. 手续费
频率越高影响越大;日线低频与 1 分钟高频不可同日而语。可在 Properties 或 Pine strategy() 参数中设置 Commission。
2. 滑点
模拟成交价与理想价的偏离;波动大、流动性差时更明显。未设滑点且平均每笔盈利很薄时,回测可能过于乐观。
3. 初始资金
Initial Capital 影响仓位尺度、复利与回撤百分比(币种由 Base Currency 决定)。
4. 仓位(Order Size)
| 方式 | 特点 |
|---|---|
| 固定数量 | 不随账户变化 |
| 固定金额 | 每次固定投入资金 |
| 权益百分比 | 复利与回撤会放大 |
| 杠杆 / 保证金 | 衍生品场景,强平风险更高 |
5. Pyramiding / 加仓
控制同向叠加笔数;允许多次加仓可能抬高收益,也明显加深回撤。
五、为什么回测盈利不代表实盘盈利?
- 历史可被「适配」,未来结构可能变化;震荡有效 ≠ 趋势有效。
- 成交是模拟的:点差、深度、延迟、部分成交、拒单、规则差异等实盘因素难以完全复现。
- 成本可能被低估,薄利高频策略尤其敏感。
- 过拟合:参数过细、单品种单时段、换周期即失效。
- 重绘:历史信号可能比实时更「好看」。
- 非标准图表:按合成 OHLC 成交,结果往往不可靠。
六、常见回测误区
- 只看净利润,不看最大回撤;
- 只看胜率,不看盈亏比;
- 交易次数太少就下结论;
- 忽略手续费与滑点;
- 过度优化参数;
- 只测单一品种或单一周期;
- 忽略 Buy & Hold 对比;
- 在非标准图表上相信结果;
- 把社区策略当现成答案。
七、新手正确使用 Strategy Tester 的流程
- 先明确策略逻辑(进出场、方向、止损止盈、过滤、仓位);
- 标准 K 线 + 合理周期;
- 添加 strategy 并确认有交易;
- 设置初始资金、仓位、手续费、滑点、加仓与保证金;
- 先看风险再看收益(回撤 → 次数 → 净利 → PF → 胜率 → 盈亏比 → Sharpe/Sortino → Buy & Hold → 逐笔);
- 抽查 List of trades;
- 分牛熊、震荡、高低波动阶段测试;
- 换品种与周期;
- Paper Trading 或小规模前向观察;
- 记录每次参数修改的原因与结果。
八、实用的回测阅读模板
| 项目 | 记录内容 |
|---|---|
| 品种 / 周期 / 区间 | 如 BTCUSDT、4H、起止日期 |
| 策略版本 | 参数与代码版本 |
| 资金与成本 | 初始资金、仓位方式、手续费、滑点 |
| 核心结果 | 净利%、最大回撤%、交易次数、胜率、PF、平均盈亏比 |
| 风险比率 | Sharpe / Sortino、最大单笔亏损 |
| 对比 | Buy & Hold、是否跑赢持有 |
| 结论 | 继续观察 / 修改 / 放弃 |
结论:Strategy Tester 的价值是发现问题,而不是制造幻想
Strategy Tester 适合快速检验规则在历史数据上的收益、回撤、频率、胜率与风险调整后表现,但不能证明未来一定盈利。专业用法是:验证规则 → 评估风险 → 加入成本 → 跨市场与时段测试 → 模拟与前向观察。
若曲线只在回测里漂亮,却经不起成本、滑点、样本外与实时检验,那更像是好看的历史曲线,而非可靠策略。
FAQ:TradingView Strategy Tester 常见问题
TradingView Strategy Tester 是什么?
测试策略历史表现的工具。添加 strategy 后显示模拟结果,含总盈亏、最大回撤、交易次数、胜率、Profit factor、风险比率与逐笔记录等。
为什么我添加指标后 Strategy Tester 没有结果?
多为 indicator 而非 strategy;只有 strategy() 脚本才会生成回测。
回测里净利润很高,可以直接实盘吗?
不建议。实盘还受滑点、手续费、流动性、延迟、执行与市场结构变化影响。
Strategy Tester 里最重要的指标是什么?
没有单一指标;应综合净利、回撤、次数、胜率、PF、盈亏比、Sharpe/Sortino、Buy & Hold 与逐笔列表。
为什么不建议在 Heikin Ashi 或 Renko 上回测?
合成价格未必代表真实成交;策略按图表 OHLC 模拟,此类结果通常不宜当作真实市场依据。