You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Trading View回测支持添加自定义指标、写入文件及提取特定信号数据吗?

TradingView回测自定义指标展示与数据处理方案

一、能否在回测结果中展示自行计算的指标?

完全可以,而且不需要修改初始资金、交易次数这类默认指标来替代。通过Pine Script的strategy.set_custom_metric()函数,可将自定义统计值直接添加到回测报告的「自定义指标」板块,直观展示结果。

针对你需要统计买入信号发出后收盘价大于开盘价的天数的需求,可通过以下逻辑实现:

  1. 用变量跟踪持仓状态、买入后的天数,以及累计收阳天数
  2. 在持仓期间,每日判断close > open,符合条件则累加统计值
  3. 用strategy.set_custom_metric()将统计结果写入回测报告

代码示例(Pine Script v5)

//@version=5
strategy("买入后收阳天数统计", overlay=true, default_qty_type=strategy.cash, default_qty_value=10000)

// 替换为你自己的买入/卖出信号逻辑(示例用MA金叉死叉)
maFast = ta.sma(close, 5)
maSlow = ta.sma(close, 20)
buySignal = ta.crossover(maFast, maSlow)
sellSignal = ta.crossunder(maFast, maSlow)

// 初始化统计变量
var int totalBullishDays = 0  // 累计所有买入后的收阳天数
var bool inTrade = false       // 是否处于持仓状态
var int tradeCount = 0         // 总交易次数

// 触发买入信号时,重置持仓状态
if (buySignal)
    strategy.entry("多单", strategy.long)
    inTrade := true

// 持仓期间每日统计收阳天数
if (inTrade)
    if (close > open)
        totalBullishDays += 1

// 触发卖出信号时,更新交易次数并重置持仓状态
if (sellSignal)
    strategy.close("多单")
    inTrade := false
    tradeCount += 1

// 将统计值写入回测报告的自定义指标
strategy.set_custom_metric("买入后收阳总天数", totalBullishDays)
// 计算平均每次交易的收阳天数(可选)
avgBullishDays = tradeCount > 0 ? totalBullishDays / tradeCount : 0
strategy.set_custom_metric("单次交易平均收阳天数", avgBullishDays)

// 最后一根K线在图表上显示统计结果(可选)
var label statsLabel = label.new(bar_index, high, "", color=color.navy, textcolor=color.white)
if (barstate.islast)
    label.set_text(statsLabel, str.format("总收阳天数: %d\n平均单次收阳: %.2f", totalBullishDays, avgBullishDays))

运行回测后,在报告的「自定义指标」部分就能看到你统计的数值,完全不需要修改默认指标。

二、能否在回测过程中将数据写入文件?

TradingView的云端运行环境没有本地文件系统权限,不支持直接写入本地文件。但可以通过以下方式导出数据:

  • 手动复制:将统计结果显示在图表的label或table组件中,手动复制保存
  • 外部API转发:通过TradingView的alert功能,将统计数据发送到你自己搭建的简单API服务,再从服务端导出数据(需要额外的外部服务支持)

内容的提问来源于stack exchange,提问作者Paddy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.11 15:10:19