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

Pine Script脚本报错:ta.highest函数length参数为0问题排查

错误原因排查与修复方案

报错根源

你的脚本报错是因为ta.barssince(RSI > 30)会在两种场景下返回0:

  • 当前K线刚好满足RSI > 30时,ta.barssince返回0(表示距离条件成立的K线数为0)
  • 脚本运行后从未出现过RSI > 30的情况,部分版本的Pine Script中该函数会返回0

而ta.highest(high, length)要求length必须大于0,传入0就会触发参数无效的报错。

修复后的脚本

结合你的需求(仅RSI低于30时绘制水平线),调整如下:

//@version=5
indicator("RSI <30 水平线", overlay=true)

RSI = ta.rsi(close, 14)
var float highUsePivot = na  

// 处理barssince返回0的情况,确保length至少为1
Candles = ta.barssince(RSI > 30)
Candles := math.max(Candles, 1)

// 仅当RSI <30时计算最高点,否则设为na不显示
highUsePivot := RSI < 30 ? ta.highest(high, Candles) : na

plot(highUsePivot, color=color.yellow)

关键调整说明

  • 用math.max(Candles, 1)强制将length参数限制为≥1,避免传入0
  • 添加条件判断RSI < 30 ? ... : na,只有当RSI低于30时才计算并显示水平线,符合你的原始需求
  • 补全了Pine Script v5的版本声明和indicator基础配置,避免潜在的兼容问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 18:06:32