TradingView 策略测试器怎么看:每个指标的含义
在 TradingView 上把 strategy 类型的脚本加到图表,下方就会打开「策略测试器」(Strategy Tester)。它把脚本的规则套在图表上的历史 K 线上重放一遍,用一组数字、一张交易清单和一条资金曲线告诉你结果。本文逐项解释这些数字的含义,指出哪些设置会不声不响地抬高结果,并说明怎样比较两个策略才算公平。
概览页的六个数字
概览(Overview)页有资金曲线、回撤曲线和一行核心指标。每个指标回答不同的问题,单看任何一个都会误判。
| 指标 | 衡量什么 | 它看不出什么 |
|---|---|---|
| 净利润(Net profit) | 已平仓盈利减亏损,再扣掉你设定的手续费 | 靠一笔运气还是多笔积累 |
| 总交易数(Total closed trades) | 完成了多少次进出 | 样本是否足够 |
| 胜率(Percent profitable) | 已平仓交易中盈利的比例 | 赢多少、亏多少 |
| 盈利因子(Profit factor) | 总盈利 ÷ 总亏损 | 比值背后有多少笔交易 |
| 最大回撤(Max drawdown) | 资金从高点到随后低点的最大跌幅 | 以后会不会更糟 |
| 平均每笔(Avg trade) | 净利润 ÷ 交易数 | 最好和最差一笔差距多大 |
净利润同时以「属性」(Properties)页初始资金的百分比显示,改一下初始资金,策略没变,百分比却变了。最后一根 K 线上未平仓的盈亏单独列出,不是最终数字。最大回撤按包含未平仓头寸的权益计算,所以可能大于任何一笔已平仓亏损;回撤与仓位的关系见最大回撤是什么。
绩效摘要与交易清单
绩效摘要(Performance summary)把几乎每个指标拆成全部、多头、空头三列。整体看起来均衡的策略,可能所有利润都来自多头、空头一直在失血,这既说明规则有偏,也说明测试期间可能偏向上涨。这一页还有总盈利、总亏损、最大单笔盈亏、每笔平均持仓 K 线数和手续费总额。
交易清单(List of trades)是所有摘要数字的原材料:进出场信号名称、时间、价格、数量、盈亏、累计盈亏,以及该笔交易期间的最大浮盈和浮亏。三个习惯值得养成:
- 按盈亏排序,去掉最上面两三笔。结果变平,说明策略靠的是少数极端值。
- 点击某一行跳到图表上那笔交易,看那个价位、那个时间是否真的成交得了。
- 扫一眼日期。 长期没有交易或集中在某个月,比任何比率都更能说明测试期间的性质。
为什么只看胜率会被误导
举一个假设的例子:某策略十次赢九次,赢时赚 1,输的那次亏 15,十笔下来是 +9 和 −15,净亏损。另一策略二十次只赢七次,赢时赚 3、输时亏 1,结果是 +21 和 −13,净盈利。胜率低得多的那个反而赚钱。
盈利因子部分解决了这个问题:总盈利除以总亏损,大于 1 表示赚的总额超过亏的总额,1.5 表示每亏 1 就赚回 1.5。但它不反映样本大小,12 笔交易算出的 3,可信度不如 400 笔算出的 1.4。平均每笔(每笔交易的期望值)把胜率和盈亏幅度合成一个数字,第一眼看它最合适,但务必拿它和一笔交易的成本相比。
手续费与滑点:默认为零会抬高一切
除非作者在代码里设定,否则属性页的手续费和滑点默认都是 0,意味着每笔交易都恰好按信号价格成交、没有任何费用,而真实市场里这从不发生。
- 手续费可以按百分比、每笔订单固定金额或每张合约金额设置。填你实际交易市场的吃单手续费,进场和出场各收一次。
- 滑点以最小跳动单位(tick)计,每次市价性质的成交都往对你不利的方向加。短周期的加密货币永续合约应填非零值,流动性差的市场应填更大的值。
成本每一笔都重复,而优势未必,所以交易频繁、只求小幅波动的策略受影响最大。最快的检验是填入现实成本,看资金曲线的形状是否保持。如果变平或向下,这个策略从来没有优势,它赚的只是「没有手续费」这个假设。这项检查同样列在回测结果怎么看里。
重绘与前视:不是设置、而是计算在骗人
- 前视(lookahead)。 请求更高周期数据的脚本,视写法不同,可能在高周期 K 线收盘之前就读到了收盘价。回测时这个值早已知道,实盘时却不知道,于是测出一份「预知未来」的成绩。
- 逐 tick 重算。 这类策略实盘时可以在 K 线中途进出场,但回测的历史部分只看到开高低收四个价格,实盘和回测于是成了两套系统。
- 成交顺序假设。 在历史 K 线上,测试器只能猜先到高点还是先到低点。止损和目标价落在同一根 K 线里时,两者看起来都能触及,而默认假设可能偏向策略。
三种情况的检验方法相同:在实时图表上观察几天,把新产生的交易与之后测试器显示的结果对照。如果交易事后会变,那份回测描述的就不是你实际会做的交易。
K 线放大镜与深度回测
两者都在较高档的方案中提供,具体档位以 TradingView 方案页面为准。K 线放大镜(Bar magnifier) 用更低周期的数据在每根 K 线内部撮合订单,而不是只用开高低收四个点,结果通常略差一些、也更接近真实。深度回测(Deep backtesting) 用比图表已加载更长的历史运行策略,对短周期尤其重要;该模式下部分功能表现不同,结果应单独标注。
怎样公平地比较两个策略
只有规则以外的一切都相同,比较才公平:
- 相同的品种、周期和日期范围。
- 相同的初始资金和下单方式。用固定数量或固定金额,避免按权益百分比下单,后者会复利放大,谁早期走运谁占便宜。
- 相同的手续费和滑点。
- 相同的成交设置:K 线放大镜和深度回测要么都开,要么都关。
然后不只比净利润,还要比交易数、相对于资金的最大回撤、盈利因子、平均每笔与每笔成本之比,以及各自在上涨、下跌、横盘阶段的表现,具体见牛市、横盘与熊市。净利润较小但回撤也较小的那个,往往才是你真能拿得住的策略。
读卖家贴出的测试器截图也是同样顺序:先看属性页数值,再看交易数,再看回撤,最后才看净利润。Pullwave 在业绩页面公开了测试器设置(合约回测含手续费、滑点和资金费率)以及每一笔交易,这些检查可以自己动手做。
常见问题
Q. 盈利因子多少算好?
大于 1 表示总盈利超过总亏损。某个数值好不好,取决于背后的交易笔数和计入的成本:填入现实成本后、几百笔交易算出的 1.3,比成本为零、十五笔交易算出的 4 更有参考价值。
Q. 实盘和策略测试器对不上,怎么回事?
常见原因是手续费和滑点为零、逐 tick 重算、高周期前视,以及 K 线内成交顺序的假设。填入现实成本,确认信号在收盘时才确定,再把几天的实盘结果和测试器对照之后再信它。
Q. 策略测试器会在交易所下单吗?
不会。它只是在 TradingView 内部用历史 K 线模拟交易,不连接任何交易所账户,真实订单由你自己下。
提示:本文为教育性质的一般信息,不构成投资建议。回测结果仅反映过去,不代表未来收益。合约可能被强平,本金可能亏损。请从小额开始,并遵守所在地法律法规。