在 Pine Script(TradingView 的脚本语言)中,函数和变量的作用域是不同的。函数是用于执行特定任务的代码块,而变量是用于存储数据的。要将一个函数的结果转换为全局变量,你需要在脚本的全局作用域中声明该变量,并在适当的位置调用函数来赋值。
以下是一个示例,展示了如何将函数的结果存储到全局变量中:
假设我们有一个简单的函数 calculateMovingAverage
,它计算给定长度的简单移动平均线(SMA)。我们希望将这个函数的结果存储到一个全局变量中,以便在脚本的其他部分使用。
//@version=4
study("Example Script", shorttitle="Example", overlay=true)
// 定义一个计算简单移动平均线的函数
calculateMovingAverage(src, length) =>
sma(src, length)
// 调用函数并绘制结果
plot(calculateMovingAverage(close, 14), title="SMA 14", color=color.blue)
//@version=4
study("Example Script", shorttitle="Example", overlay=true)
// 定义一个计算简单移动平均线的函数
calculateMovingAverage(src, length) =>
sma(src, length)
// 在全局作用域中声明一个变量
var float sma14 = na
// 在脚本的主逻辑中调用函数并赋值给全局变量
sma14 := calculateMovingAverage(close, 14)
// 使用全局变量绘制结果
plot(sma14, title="SMA 14", color=color.blue)
calculateMovingAverage
的函数,它接受两个参数 src
和 length
,并返回简单移动平均线(SMA)。var
关键字声明了一个名为 sma14
的变量,并初始化为 na
(表示未定义)。calculateMovingAverage
函数,并将其结果赋值给全局变量 sma14
。使用 :=
操作符来更新变量的值。plot
函数绘制全局变量 sma14
的值。 var
关键字声明的变量只会在脚本第一次运行时初始化一次。后续的脚本运行会保留变量的值。:=
操作符来更新变量的值,而不是 =
。:=
操作符用于在脚本的每次执行中更新变量的值。领取专属 10元无门槛券
手把手带您无忧上云