为什么在 pine 脚本中出现 "undeclared identifier" 错误?

Why do I get the "undeclared identifier" error in pine script?

我从 tradingview.com 上的 public 库中复制了以下代码。它似乎是用旧版本的 pine 脚本编写的。我目前使用的是第 4 版,我觉得错误是因为我从内部调用函数 smma 作为递归函数,但我不确定如何修复错误。

study("My Strategy", overlay=true)

//SUITABLE FOR INTRADAY IN BANK NIFTY 5MIN 10MIN AND 15MIN APPLICAPABLE IN ANY TIME FRAME
//TEST YOUR STRATEGY
//borrowed this concept from someone else and modified it for our needs
//teach me pine i wanna learn from you =>skgs01@gmail.com
smma(src, length) =>
    smma = na(smma[1]) ? sma(src, length) : (smma[1] * (length - 1) + src) / length
    smma

jawLength = input(13, "Jaw Length")
jawOffset = input(8, "Jaw Offset")

jaw = smma(hl2, jawLength)

plot(jaw, "Jaw", color=color.blue, offset=jawOffset)

Baris Yakut 是对的。你应该在使用它之前声明你的变量。像这样:

//@version=4
study("My Strategy", overlay=true)

//SUITABLE FOR INTRADAY IN BANK NIFTY 5MIN 10MIN AND 15MIN APPLICAPABLE IN ANY TIME FRAME
//TEST YOUR STRATEGY
//borrowed this concept from someone else and modified it for our needs
//teach me pine i wanna learn from you =>skgs01@gmail.com
smma(src, length) =>
    var float smma = na
    smma := na(smma[1]) ? sma(src, length) : (smma[1] * (length - 1) + src) / length
    smma

jawLength = input(13, "Jaw Length")
jawOffset = input(8, "Jaw Offset")

jaw = smma(hl2, jawLength)

plot(jaw, "Jaw", color=color.blue, offset=jawOffset)