公共函数
来自tradeStar帮助系统
目录 |
概述
所谓函数,是一些会反复使用到的功能,封装而成的一段代码。
函数有三种类型:内置函数、局部函数和公共函数
内置函数是最常用的函数,本软件中有很多内置函数,例如ma、hhv、buy、sell等等。
当内置函数不够用,除了等待软件升级新增所需函数,还有一个途径,就是通过公式语言自行编写局部函数或公共函数。
局部函数和公共函数
通过公式语言编写的函数有两种存在形式。
第一种,内嵌在其他公式中。
例1:内嵌在其他公式中的函数 //以下函数把上次传入的点和这次传入的点用线连起来 function drawL input: numericSimple var1; variable: numericSimple d0(0),t0(0),v0(0); begin if( d0!=0 and date>2013 )then begin id = tl_new( d0, t0, v0, date, time , var1); end; d0 = date; t0 = time; v0 = var1; end //主程序体 //每隔10根k线,就在收盘价处连一条线 #run_by_bar #MainChart #nodefaultoutput if( barpos mod 10 =0 )then drawL( close );
这样的函数我们称为“局部函数”。
第二种,把函数独立出来,单独成为一个公式
这样的函数,在公式里不需要额外的声明就可以直接使用,跟ma等内置函数一样,我们称为“公共函数”。
适用范围
局部函数和公共函数仅工作于逐根模式下。
函数参数
调用函数时,可以通过参数给函数传入和传出值。 参数类型可以是:
numericSimple 单值 numericSeries 序列 numericRef 引用参数
numericRef类型的参数可以在函数内赋值,并且把值带到主程序中去。
当参数类型是numericRef时,传入参数时必须使用序列型(不可以是numericSimple)。
例如,以下的例子是不正确的 func testFunc input: numericRef n; begin n = 1; end; //主程序 variable: numericSimple x(0); testFunc(x);
函数内部变量
数据回溯
函数返回
函数能够返回值给调用者。 语法是:
return x;
例如:
function func begin return 1; end
直接给函数名赋值也能达到相同的目的
例如:
function func begin func = 1; end