公共函数

来自tradeStar帮助系统
(版本间的差异)
跳转到: 导航, 搜索
(函数内部变量)
(函数编译)
第95行: 第95行:
 
  end
 
  end
  
==函数编译==
+
==公共函数编译==
 +
在公共函数被改变后,不但公共函数需要编译,使用了它的公式也需要重新编译。
 +
 
 +
系统会分析使用这个函数的公式的整个依赖链条。
 +
 
 +
有依赖关系的公式会自动列出,供您重新编译。

2013年6月19日 (三) 12:11的版本

目录

概述

所谓函数,是一些会反复使用到的功能,封装而成的一段代码。

函数有三种类型:内置函数、局部函数和公共函数

内置函数是最常用的函数,本软件中有很多内置函数,例如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 );

这样的函数我们称为“局部函数”。

第二种,把函数独立出来,单独成为一个公式

 FuncExample.jpg

这样的函数,在公式里不需要额外的声明就可以直接使用,跟ma等内置函数一样,我们称为“公共函数”。

适用范围

局部函数和公共函数仅工作于逐根模式下。

函数参数

调用函数时,可以通过参数给函数传入和传出值。 参数类型可以是:

 numericSimple 单值
 numericSeries 序列
 numericRef 引用参数

numericRef类型的参数可以在函数内赋值,并且把值带到主程序中去。

当参数类型是numericRef时,传入参数时必须使用序列型(不可以是numericSimple)。

例如,以下的例子是不正确的
func testFunc
input:
  numericRef n;
begin 
  n = 1;
end;

//主程序
variable:
  numericSimple x(0);
testFunc(x);

函数内部变量

在函数中定义的变量只是在函数体内使用。 但是这些变量的值会一直保存,在下根k线到来时,这些变量依然保持上一根k线结算的结果。

函数返回

函数能够返回值给调用者。 语法是:

 return x;

例如:

function func
begin
  return 1;
end


直接给函数名赋值也能达到相同的目的 例如:

function func
begin
  func = 1;
end

公共函数编译

在公共函数被改变后,不但公共函数需要编译,使用了它的公式也需要重新编译。

系统会分析使用这个函数的公式的整个依赖链条。

有依赖关系的公式会自动列出,供您重新编译。

个人工具
名字空间

变换
操作
导航
工具箱