公共函数
来自tradeStar帮助系统
(版本间的差异)
(→函数返回) |
(→函数参数) |
||
第46行: | 第46行: | ||
==函数参数== | ==函数参数== | ||
− | + | 调用函数时,可以通过参数给函数传入和传出值。 | |
+ | 参数类型可以是: | ||
+ | numericSimple 单值 | ||
+ | numericSeries 序列 | ||
+ | numericRef 引用参数 | ||
+ | |||
+ | numericRef类型的参数可以在函数内赋值,并且把值带到主程序中去。 | ||
+ | |||
+ | 当参数类型是numericRef时,传入参数时必须使用序列型(不可以是numericSimple)。 | ||
+ | 例如,以下的例子是不正确的 | ||
+ | func testFunc | ||
+ | input: | ||
+ | numericRef n; | ||
+ | begin | ||
+ | n = 1; | ||
+ | end; | ||
+ | |||
+ | //主程序 | ||
+ | variable: | ||
+ | numericSimple x(0); | ||
+ | testFunc(x); | ||
==函数内部变量== | ==函数内部变量== |
2013年6月19日 (三) 11:55的版本
目录 |
概述
所谓函数,是一些会反复使用到的功能,封装而成的一段代码。
本软件中有很多内置函数,例如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