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

Pine Script v5代码报错:'prev'引用语法错误求助

Pine Script v5 错误解决方案:Extraneous input 'prev'

错误原因

你遇到的语法错误本质是错误使用普通变量prev延续指标历史值,Pine Script中普通变量不会跨K线保留值,且当前逻辑下prev并非你需要的「前一根K线的ts值」,重复计算的代码也加剧了语法解析的混淆。

修正后的代码

//@version=5
strategy("My Strategy", overlay=true)

// 输入参数(可根据需求调整)
multiplier = input.float(1.0, "ATR Multiplier")
atrPeriod = input.int(14, "ATR Calculation Period")
hhvPeriod = input.int(20, "HHV Lookback Period")

// 提前计算重复使用的HHV值,避免冗余计算
hhvValue = ta.highest(high - multiplier * ta.atr(atrPeriod), hhvPeriod)

barsSinceCondition = ta.barssince(close > hhvValue and close > close[1])

// 使用var定义持久化变量,跨K线保留值
var float ts = na
ts := if ta.cum(1) < 16
    close
else if close > hhvValue and close > close[1]
    hhvValue
else
    ts[1] // 引用前一根K线的ts值,实现延续效果

关键修正点

  • 用var float ts = na定义持久化变量,确保ts的值跨K线保留,不会每根K线重新初始化。
  • 用ts :=进行动态赋值,这是Pine Script v5中更新变量值的标准写法。
  • else分支替换为ts[1],获取前一根K线的ts值,这才是你需要的「延续前值」逻辑,替代原错误的prev。
  • 提取重复计算的hhvValue,简化代码同时提升运行效率。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 18:20:24