首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将pine脚本中的函数转换为全局变量?

在 Pine Script(TradingView 的脚本语言)中,函数和变量的作用域是不同的。函数是用于执行特定任务的代码块,而变量是用于存储数据的。要将一个函数的结果转换为全局变量,你需要在脚本的全局作用域中声明该变量,并在适当的位置调用函数来赋值。

以下是一个示例,展示了如何将函数的结果存储到全局变量中:

示例

假设我们有一个简单的函数 calculateMovingAverage,它计算给定长度的简单移动平均线(SMA)。我们希望将这个函数的结果存储到一个全局变量中,以便在脚本的其他部分使用。

原始函数

代码语言:javascript
复制
//@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)

将函数结果存储到全局变量

代码语言:javascript
复制
//@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)

解释

  1. 定义函数:我们定义了一个名为 calculateMovingAverage 的函数,它接受两个参数 srclength,并返回简单移动平均线(SMA)。
  2. 声明全局变量:在全局作用域中,我们使用 var 关键字声明了一个名为 sma14 的变量,并初始化为 na(表示未定义)。
  3. 调用函数并赋值:在脚本的主逻辑中,我们调用 calculateMovingAverage 函数,并将其结果赋值给全局变量 sma14。使用 := 操作符来更新变量的值。
  4. 使用全局变量:最后,我们使用 plot 函数绘制全局变量 sma14 的值。

注意事项

  • 变量初始化:使用 var 关键字声明的变量只会在脚本第一次运行时初始化一次。后续的脚本运行会保留变量的值。
  • 变量更新:使用 := 操作符来更新变量的值,而不是 =:= 操作符用于在脚本的每次执行中更新变量的值。
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券