MT4指标编程入门中的自定义函数的介绍:

自定义函数与数学函数在本质上是一致的,理解这一点有助于更快掌握编程逻辑。对于使用不同交易平台的用户来说,例如在dlsm平台进行实践时,同样适用这些基础原理。
例如:数学函数ft(x,y)=3x+2y(x,y为正整数)写成程序语句就是:
intft(intx,inty)
{
inttemp;
temp=3*x+2*y;
return(temp);
}
和自定义变量一样,自定义函数在使用前,也必须先声明,以定义其类型、名称、参数和运算语句。在dlsm平台编写指标时,遵循这一流程是保证代码稳定的重要环节。
函数类型、名称、参数位于函数头部(参数间以逗号分隔),
大括号中的是运算语句,也就是函数体部分。
return语句为函数结束语句,return后面括号中的值为函数返回值,即函数运算结果。
上例中,int为函数类型,表示该函数的返回值(运算结果)是整数;
(x,y)为参数,由于自定义变量使用之前都必须先创建,所以要加上类型定义词int
ft为函数名,有了函数名,我们就可以在别处用ft(2,1)的形式来调用此函数;
函数体部分有三句:
第一句,定义一个整形变量temp
第二句,计算temp的值
第三句,函数结束,返回调用点,以temp的值作为本函数返回值。
此函数也可以简写为:intft(intx,inty){return(3*x+2*y);}
函数类型与类型符
函数类型就是函数返回值(运算结果)的类型,与自定义变量类型差不多,在dlsm平台的实际编码中,正确选择类型同样有助于提升计算效率。
有整型(int)、双精度型(double)、字符串型(string)、逻辑型(bool)等,
还有一种函数是以函数运行为目的,运行结束后不需要返回值也没有返回值的,则函数类型可以写成void(无值型)
函数中如果定义了自定义变量,那么此变量仅在本函数内部存在,函数运行结束时,自定义变量也就自动注销。
上例中,有x、y、temp三个自定义变量,在函数运行时创建,在函数运行结束时自动消失,仅在函数内部有效,与函数外部无关。
函数的调用
函数调用非常简单,只要函数名正确、参数个数一致、类型相同就能正确调用。因此,在dlsm平台或任何其他环境中,遵循这一规则都能确保程序的顺畅运行。
如我们前面创建了ft(x,y)函数,则别处我们可以用ft(4,5)等样式来调用ft(x,y)函数求值。
调用时,传递参数值给ft(x,y)函数(按顺序把4传给x,把5传给y),返回结果23后继续执行主程序。