龙听期货论坛's Archiver

龙听 发表于 2020-11-29 08:23

EL 保留字和函数 > 函数

关于函数[p=30, 2, left]函数调用是一个 EasyLanguage 字(以紫色显示),在对函数中的基本 EasyLanguage 语句求值后返回一个值(或多个值)。函数语句可以用于计算数学公式或执行任何其他 EasyLanguage 操作。[/p]常见用法[p=30, 2, left]函数将被指定到赋值语句或表达式中的变量。除非以其他方式定义,大多数函数是[url=http://help.tradestationchina.com.cn/10_00/guosen/chs/tsdevhelp/elword/el_definitions/simple_function.htm]简单函数[/url]。[/p][p=30, 2, left]例如:在下面,函数计算 10 条柱状线的平均收盘价格并将返回值赋予一个预先声明的变量:[/p][p=30, 2, left]Value1 = Average(Close, 10);[/p]系列函数[p=30, 2, left]系列函数自动存储自身先前的值并在每条柱状线上执行(即使用于条件语句中)。有关更多信息,请参阅[url=http://help.tradestationchina.com.cn/10_00/guosen/chs/tsdevhelp/elword/el_definitions/series_function.htm]系列函数[/url]。[/p]多输出函数[p=30, 2, left]有些内置函数需要返回多个值,通过使用参数列表中的一个或多个输出参数实现这一点。内置多输出函数对参数的命名通常以“o”开始,表明其是一个用于返回值的输出参数。这些参数也被称为“输入-输出”参数,因为在函数内声明这些参数为“ref”类型的输入(例如 NumericRef、TrueFalseRef 等),允许通过引用将值输出到调用函数的 EasyLanguage 代码中的变量。[/p][p=30, 2, left]例如:下列内置函数查找之前 30 条柱状线中第 2 高的[font=&quot]收盘价[/font]。前面四个参数是输入参数,用于确定 1) 查找什么样的价格,2) 查找范围是多少条柱状线,3) 哪次发生(第 1 次、第 2 次等等),4) 查找最低或最高价格。第五和第六个参数是输出参数。它使用一个输出参数返回第二高的[font=&quot]收盘价[/font]到 [font=&quot]Value2[/font],而第二个输出参数返回发生该值的之前柱状线数到 [font=&quot]Value3[/font]。函数本身返回搜索的状态(1 表示成功,-1 表示发生错误)到 [font=&quot]Value1[/font]。[/p][p=30, 2, left]Var: oExtremeVal(0), oExtremeBar(0);[/p][p=30, 2, left]Value1 = NthExtreme(Close, 30, 2, 1, oExtremeVal, oExtremeBar);[/p][p=30, 2, left]Value2 = oExtremeVal;[/p][p=30, 2, left]Value3 = oExtremeBar;[/p]包裹函数[p=30, 2, left]用户查看内置函数的 EasyLanguage 代码时,可能会发现一个术语“包裹函数”。它是一个单一返回函数,引用多输出函数以获取返回值。调用单一返回“包裹”函数有助于使简化 EasyLanguage 代码,不需要设置输出参数或理解多输出函数。例如, [font=&quot]ADX[/font] 函数返回平均定向波动指标值,该指标值是 [font=&quot]DirMovement[/font] [font=Arial, sans-serif]函数的几个输出参数之一。[/font][/p]

页: [1]