You need to enable JavaScript to run this app. TradingView Pine Script 三指标触发timestamp delta判定与信号触发实现
优惠活动
大模型
产品
解决方案
定价
更多

TradingView Pine Script 三指标触发timestamp delta判定与信号触发实现

Pine Script 多指标触发逻辑整合开发可行性说明

核心问题明确答复

  • 针对问题A:完全支持将timestamp赋值给自定义变量
    Pine Script中所有时间戳本质是整型Unix时间值,只需用var关键字声明三个持久化的自定义整型变量,即可在对应指标的触发分支内,将当前K线的时间戳(通过time内置函数获取)赋值给关联变量。同一指标连续触发时,代码会逐次覆盖变量中存储的旧时间值,完全匹配“持续更新为最新触发时间”的预设逻辑。
  • 针对问题B:完全支持计算三个timestamp的时间delta、并按预设阈值触发信号
    时间戳本身是连续可计算的整型数值,两个时间戳做差即可得到二者的时间间隔,将差值换算为对应单位后就能和预设的X小时阈值做比较。实际判断时不需要两两计算差值,只需算出三个时间戳的最大值与最小值的差,当跨度小于等于X小时对应的毫秒数时,即可满足“任意两个触发时间间隔在指定范围内”的要求。

简化实现参考代码

// 声明持久化存储三个指标触发时间的变量
var int t1 = 0
var int t2 = 0
var int t3 = 0
// 配置输入:最大允许的触发时间间隔
interval_hours = input.float(title="触发最大间隔(小时)", defval=2, step=0.5)
threshold_ms = interval_hours * 3600 * 1000

// 替换为三个指标自身的实际触发逻辑
cond1 = <第一个指标的触发条件>
cond2 = <第二个指标的触发条件>
cond3 = <第三个指标的触发条件>

// 指标触发时更新对应时间戳
if cond1
    t1 := time
if cond2
    t2 := time
if cond3
    t3 := time

// 计算三个时间的跨度范围
max_t = math.max(t1, math.max(t2, t3))
min_t = math.min(t1, math.min(t2, t3))

// 满足触发条件时输出标记信号
// 前置判断:三个指标都已至少触发过一次,避免初始值误触发
is_valid_signal = t1 > 0 and t2 > 0 and t3 > 0 and (max_t - min_t <= threshold_ms)
plotshape(is_valid_signal, title="整合触发标记", location=location.belowbar, style=shape.labelup, color=color.red, size=size.small)

开发注意事项

  • 注意时间单位匹配:time函数返回的是毫秒级Unix时间,计算差值、换算阈值时要保持单位统一,避免和秒级时间戳计算出现量级错误
  • 可根据需求补充去重逻辑:如果不希望同一时间窗口内反复输出重复信号,可在触发一次信号后,将三个时间变量重置为初始值,等待下一轮触发满足条件后再出提示
  • 原独立指标的展示曲线不需要保留时,直接注释掉原代码中的plot、plotshape类绘图语句即可,不需要改动触发逻辑本身。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.02 20:54:03