EA编程教程:函数定义与调用详解
在编程中,函数是一段具有特定功能的代码块,我们可以在程序的多个位置调用它。一个函数通常由返回类型、函数名和参数列表构成,其中参数的数量不能超过64个。
例如,我们可以定义一个实现加法运算的函数:
double Add(doub柯尔凯思le a, double b)
{
return (a + b);
}
解析这个函数:首先,它的返回类型是double;其次,函数名为Add;最后,它包含两个double类型的参数。
另外,有些函数可能不需要返回值,例如一个用于打印信息的函数:
void DoThis(string s)
{
Print(s);
}
这里,void表示函数没有返回值;函数名为DoThis;参数是一个string类型的变量。
接下来,我们看看如何调用这些函数:
int start()
{
double c = 0;
c = Add(1, 2); //调用Add函数,c的结果为3.0
Print(c);
DoThis("打印内容");
return(0);
}
在EA编程中,系统定义了几个特殊的函数。当我们创建一个新的EA时,会自动包含三个函数:int init(),int deinit(),和int start()。这些函数的功能如下:
init():当EA被加载时,MT4会先自动运行init()函数,它只执行一次,通常用于初始化数据。需要注意的是,应尽量避免在init()函数中调用start()函数。
deinit():当EA运行结束时,MT4会自动调用此函数,一般用来清理数据或释放资源。
start():每当MT4收到一个报价时,就会执行start()函数。这是最重要的函数,我们的交易策略主要写在这里。如果start()尚未执行完毕,而新的报价已经到来,MT4不会再次调用start(),只有在start()空闲且收到新报价时才会运行。