TradingView PineScript:如何实现近5天信号扫描而非按K线计数?
Pine Script 实现基于时间的近N天交叉信号扫描
核心思路
放弃按K线数量计数的方式,通过时间戳计算确定回溯范围,直接扫描指定天数内是否出现过交叉信号。
修改后的完整代码及说明
// 1. 单独提取交叉条件,方便后续复用 isCross = ta.crossover(line1, line2) or ta.crossunder(line1, line2) // 2. 设置回溯天数,可按需修改为2、5或其他数值 lookbackDays = 5 // 计算N天前的时间戳(1天=86400000毫秒) lookbackStart = time - lookbackDays * 86400000 // 3. 检查近N天内是否出现过交叉信号 // ta.any()会判断指定时间区间内,交叉条件是否至少成立一次 hasRecentCross = ta.any(isCross, time >= lookbackStart) // 4. 最终颜色逻辑:近N天有交叉显示lime,否则orange crossingrule = hasRecentCross ? color.lime : color.orange
关键细节
- 用
time(当前K线的起始时间戳)计算回溯范围,不受K线周期限制(不管是1分钟、1小时还是日线,都能准确覆盖近N天的时间); - 如果需要基于UTC时间计算,把
time替换为time_utc即可; ta.any()函数会遍历满足time >= lookbackStart的所有K线,只要其中有一次交叉发生,就会返回true。
内容的提问来源于stack exchange,提问作者Bhry Ozkn
相关产品推荐
相关产品推荐

