Pine语言入门(十一)函数创建与三元条件运算符?:
时间:2020-11-16 来源:区块链网络 作者:金金
今天,讨论下创建函数,并简要讨论什么时候使用函数比较好。会详细解释函数的每一个参数。 什么是函数,应该何时使用? 函数是Pine语言脚本代码的一部分,可以将其组合在一起,并且可以简单的调用,而无需再次重写所有内容。假设有20行代码来进行复杂的计算,而你想稍后再次进行计算,而不是复制和粘贴20行代码,则可以通过将代码转换为函数并简单地调用它来在1行中完成。 Pine里,Tradingview的开发人员创建了丰富的内置函数,方便使用者。看下最常用的一些例子: plot():我们通过调用plot()函数来显示所有指标脚本。该函数获取最终值并将其放置在图表上。 函数的术语和注释 参数:参数是函数的输入。我们可以使用参数为函数提供一些要处理的内容或对计算进行更改,而无需创建另一个单独的函数。 关键字参数:关键字参数与参数几乎相同。不同之处在于,你专门告诉函数该参数的作用。 返回值:当我们调用一个函数时,我们通常希望从中得到一些东西。是计算结果还是其他结果。当我们谈论返回时,这意味着从函数返回数字,字符串(文本)或列表并将其存储在变量中。例如,x = sma(close,7)是将7日收盘价的移动平均值SMA值从函数返回并存储在变量x中 。 创建一个函数 在pine脚本中创建函数时,需要执行以下操作: 给它起个名字:可以是你想要的任何名称,但是建议使用描述函数功能的名称。 声明参数:与调用函数时提交参数和关键字参数的方式相同。我们只需在方括号之间写下参数的名称。然后,在下面的代码中,我们决定如何处理赋予该变量的数据。 =>在行尾添加pine脚本函数语法:这使编辑器知道你在声明函数。 缩写函数的代码: 现在必须缩写函数的所有代码,以便编辑器知道它是函数的一部分,并可以告诉函数结束的位置。要缩进,可以按键盘上的Tab键或按空格键4次。 返回值:这是函数的输出,即计算的结果。在pine脚本中,可以通过在最后一行上写入变量或变量列表来返回它们。 实际例子 在此示例中,我们将创建一个简单的函数,该函数将依据传递给它的字符串,返回跟随的内置变量:Open(开盘)、high(最高)、low(最低)和close(收盘价)。当创建指标或策略并希望能够更改指标/策略使用的价格数据时,这很有用。如果你在脚本中有多个输入,这就更重要了,因为可以多次使用同一函数。
在上面的代码中,我们只是将字符串传递给函数,并使用 三元条件运算符(混淆?) 为x赋值,具体取决于参数是否与函数str中的字符串匹配。最后,我们返回X。 要注意,由于需要较长的行,例子中使用行连续将行分成几行。如果愿意,可以将语句写成一长行。 把函数放在完整的一个指标中 下面示出了如何将函数与输入结合以上并用它们来创建双HMA(代码HULL Moving Average)指标。
运行上面的代码,选择用于计算的shuju 输入源,可以在图表中添加两个HMA。 三元运算符 刚才说到了三元运算符,延伸一下,这是一个逻辑运算。 我们采用三个变量,查看一个变量,然后根据第一个变量的结果分配其余两个变量中的一个。例如下面的语句:
如果变量1为True,则将变量2分配给X,否则将变量3分配给x。 即如果变量1成立,就把变量2 赋值给X,如果变量1是假的,就把变量3赋值给x。可以用“?”与“:”一直往下循环。 用Python语言表达,是这样的:
举个例子 该脚本将简单地将星期五的条形颜色更改为蓝色。
分解一下: x:是将保存我们一系列正确/错误数据的变量。 dayofweek:是一个内置变量,根据它是星期几返回1-6。 x = dayofweek == 5:对每个单个条执行一次检查以测试是否dayofweek 等于5。如果是,则存储true值;否则,存储false。 barcolor():内置功能可更改图表上条形的颜色。 barcolor(x ? blue:gray):检查x是否为真,如果是,则分配蓝色,如果分配为假灰色。 实际上,我们可以将整个条件写成barcolor(dayofweek == 5 ? blue:gray)。但是,如果我们将逻辑分解成上面的小步骤,就会更容易理解逻辑。 |