You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何计算最大回撤百分比?求助计算策略测试器中的「策略最大回撤百分比」

我来帮你彻底搞懂最大回撤百分比的计算,以及如何在TradingView策略测试器里获取「策略最大回撤百分比(Max Strategy Drawdown %)」。

一、核心概念与计算逻辑

首先得区分绝对回撤相对回撤百分比

  • 绝对回撤:指账户权益从历史最高值到之后最低值的差值,公式是:历史最高权益 - 最高峰值后的最低权益(这也是TradingView官方给出的回撤美元值计算方式)
  • 相对回撤百分比:是绝对回撤值相对于产生回撤前那个历史最高权益的占比,而非初始资金(除非初始资金就是第一个历史峰值)

举个直观的例子:

  • 初始资金100美元,亏到50美元:绝对回撤50美元,相对回撤50%(50/100)
  • 后续盈利到300美元,又回落至200美元:绝对回撤100美元,相对回撤33%(100/300)
  • 整个策略的最大绝对回撤是100美元最大相对回撤是50%

TradingView官方说明:回撤美元值的计算公式为「历史最高权益 - 最高峰值后的最低权益」。而百分比回撤为相对计算:回撤的百分比与绝对值是两个独立追踪的不同指标。

二、TradingView策略中计算最大回撤百分比的代码实现

在Pine Script v5中,TradingView提供了内置变量strategy.max_drawdown来获取策略的最大绝对回撤值(以美元为单位),我们只需要将其除以初始资金再乘以100,就能得到百分比形式的最大回撤:

//@version=5
strategy("Max Drawdown", overlay=false)

// 计算最大回撤百分比:(最大绝对回撤 / 初始资金) * 100
maxDrawdownPercent = (strategy.max_drawdown / strategy.initial_capital) * 100

// 可选:将结果以曲线形式显示在图表下方
plot(maxDrawdownPercent, title="Max Drawdown %", color=color.red, display=display.data_window)

// 示例策略逻辑(双均线交叉)
longCondition = ta.crossover(ta.sma(close, 14), ta.sma(close, 28))
if (longCondition)
    strategy.entry("My Long Entry Id", strategy.long)

shortCondition = ta.crossunder(ta.sma(close, 14), ta.sma(close, 28))
if (shortCondition)
    strategy.entry("My Short Entry Id", strategy.short)

代码关键说明:

  • strategy.max_drawdown:返回策略运行以来的最大绝对回撤金额
  • strategy.initial_capital:获取你在策略设置中输入的初始资金
  • 计算后的maxDrawdownPercent就是你要的「策略最大回撤百分比」,用plot()函数可以直观展示在图表中,方便实时监控

内容的提问来源于stack exchange,提问作者Muhammed Tahreem Alam

火山引擎 最新活动