如何准确获取Strategy Tester中每笔交易对应的Profit百分比变动数值
TradingView策略测试器Profit百分比数值提取方案
原有代码基于相邻仓位变动时点的权益差值计算百分比,存在两个核心问题:
- 计算基准错误:Strategy Tester中Profit百分比以单笔交易的开仓保证金为基准,而非上一笔交易结束后的总权益
- 逻辑受干扰:连续反手交易、部分平仓场景下的仓位变动会打乱valuewhen的取值对应关系,导致盈亏和开仓基准匹配错误
官方定义的单笔交易Profit百分比计算规则:
Profit即单笔交易的盈利额及该笔交易的盈亏百分比,计算公式为:(单笔交易净利润 / 该笔交易开仓时占用的初始保证金) * 100
修正后可完全匹配官方数值的代码如下:
// 检测交易平仓信号 is_closed = strategy.closedtrades > strategy.closedtrades[1] // 取最近一笔平仓交易的净利润、开仓保证金 trade_profit = strategy.closedtrades.profit(strategy.closedtrades - 1) trade_entry_margin = strategy.closedtrades.margin(strategy.closedtrades - 1) // 计算官方标准Profit百分比 trade_pct = na if is_closed trade_pct := (trade_profit / trade_entry_margin) * 100 // 输出数值 plot(trade_pct, style=plot.style_columns, color=trade_pct >= 0 ? color.green : color.red)
使用注意事项:
- 需确保脚本的回测设置(手续费比例、滑点、保证金模式)和Strategy Tester的配置完全一致,否则会出现数值偏差
- 若你的策略使用了金字塔加仓、部分平仓逻辑,可通过调整
strategy.closedtrades的索引参数提取对应交易的数值
内容的提问来源于stack exchange,提问作者Drewdavid
相关产品推荐
相关产品推荐

