外汇EA编程入门:函数定义与调用详解
在编程中,函数是一个具备特定功能的程序块,我们可以在程序的各个位置调用它。一个函数通常由返回类型、函数名称以及函数参数组成。需要注意的是,函数的参数数量最多不能超过64个。
例如,下面是一个实现加法功能的简单函数:
double Add(double 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时,交易平台会首先自动运行init()函数,且仅运行一次。通常这个函数用于数据的初始化设置。需要注意的是,应尽量避免在init函数内部调用start函数。
deinit():当结束运行EA时,交易平台会自动调用这个函数,我们一般会用它来进行一些数据的清理工作。
start():每当交易平台收到一个报价时,就会执行一次start函数。因此,start函数是最为关键的,我们的交易策略主要编写在这个函数中。如果当前start函数尚未执行完毕,而新的报价已经到达,交易平台不会再次调用start函数。也就是说,只有在start函数未被运行且收到新报价的情况下,它才会被触发执行。
